프로그래밍/Java (49) 썸네일형 리스트형 19.12.22) Java - private constructor 목차 객체를 생성하지 않고 메서드를 사용하는 법 인스턴스 메서드와 클래스 메서드 핵심 private 생성자 메서드를 사용하려면 모든 메서드에 static 키워드가 있어야한다. 객체를 생성하지 않고 메서드를 사용하는 법 생성자는 public과 private 둘 다 사용 가능하다. public 키워드가 있으면 다른 클래스에서 객체를 생성할 수 있다. 하지만 private이면 객체 생성을 할 수 없다. 왜냐면 생성자에 접근할 수 없기 때문이다. 그러면 private 생성자가 있는 객체의 메서드를 사용하려면 어떻게 해야할까? 이 말은 객체를 생성하지 않고 메서드를 어떻게 사용할까?와 같은 말이다. 인스턴스 메서드와 클래스 메서드 메서드는 인스턴스 메서드와 클래스 메서드로 나눠진다. 둘의 차이는 static이 있.. 19.12.22) Java - 메서드 오버로딩(Method Overloading) 목차 메서드 오버로딩(Method Overloading)이란? 이름이 같으면 어떤 함수인지 찾는데 속도가 느리지 않을까?핵심 메서드 오버로딩은 메서드의 이름이 같지만 매개변수의 타입과 개수를 다르게 하는 기능이다. 메서드 오버로딩(Method Overloading)이란? 메서드 오버로딩은 메서드의 이름이 같지만 매개변수의 타입과 개수를 다르게 하는 기능이다. 매개변수의 타입과 개수를 Signature라고 한다. 즉, 이름이 같더라도 매개변수의 Signature가 다르다면 에러가 발생하지 않는다. 그럼 왜 사용할까? 당연히 편리하기 때문이다. 덧셈 기능을 하는 메서드가 있다. 그런데 매개변수의 타입과 개수가 다르다고 메서드의 이름을 다 다르게 하면 생산성이 떨어진다. 그래서 같은 이름을 쓰되, 매개변수의 .. 19.12.22) Java - class, object, instance의 차이 목차 Class Object Instance 그럼 객체가 왜 필요할까?핵심 Class: 객체를 설계하는 도구 Object: 선언된 객체 변수 Instance: 생성되고 값이 있는 객체 객체를 만드는 이유는 다양한 자료형을 한 번에 이동하기 위함이다. Class Java를** 배우면 자주 등장하는 용어가 있다. Class, Object, Instance이다. 이 용어들이 객체와 관련되어 있다는 건 알겠는데, 정확하게 어떤 차이가 있는지 모르는 경우가 있다. 한번 알아보자. 먼저 Class다. Class는 객체를 설계하는 도구이다. 내가 Book이라는 객체를 만드려고 할 때 먼저 BooK이라는 객체의 속성을 설계해야 한다. 아래 코드처럼 public class Book { public String title.. 19.12.19) Java - Calendar 프로젝트 ArrayList 자바에서 제공하는 기본 배열과는 차이가 있다. 크기를 지정할 필요가 없고, add() 통해서 추가하면 동적으로 늘어난다. 선언 방법 ArrayList arrayList = new ArrayList(); arrayList.add(1); // push 기능 arrayList.add(2); arrayList.add(1, 10); // 지정 인덱스에 추가 가능. 한 칸씩 밀린다. for (int i : arrayList) { System.out.println(i) // 1, 10, 2 } HashMap Hash라는 이름이 들어간 자료형은 거의 key와 value쌍으로 이루어져 있다. 파이썬의 dict와 비슷하다. 선언 방법 HashMap map= new HashMap(); map.put("ju.. 19.12.19) Java - 변수와 배열 목차 배열이란? 2차원 배열은 아파트다. 2차원 배열 생성 및 출력 핵심 배열은 여러 개의 변수를 쉽게 이동시키기 위한 자료형이다 배열이란? 만약 정수 5개를 사용해야 한다면 int 변수를 5개를 만들어야 한다. 그런데 이 변수들을 이동시켜야 하는 상황이 발생할 수 있다. 예) 메서드에 인자로 들어갈 때 그럼 이 5개 변수를 하나 하나씩 옮겨야 한다. 이런 불편함을 줄이기 위해 배열을 쓸 수 있다. 배열은 여러 개의 기억공간이 하나로 합쳐진 구조이다. 같은 자료형만 사용할 수 있다. 아까 말한 5개의 정수도 하나의 배열에 넣어두면 이 배열 하나만 들고 다니면 된다.장바구니에 들어간 과일들처럼 여러 개의 변수가 모여있다고 하니 객체랑 비슷하지 않은가? 전에 객체를 덩어리라고 표현했다. 그럼 객체처럼 배열을.. 19.12.19) Java - 기본 자료형과 객체 자료형 목차 기본 자료형과 객체 자료형 객체는 덩어리다 객체는 어떻게 할당하지? 객체의 다른 이름 핵심 class는 새로운 자료형을 만드는(모델링하는) 도구이다 기본 자료형과 객체 자료형 자바에서 제공하는 기본 자료형만 잘 쓰면 되지. 왜 객체 자료형이 필요할까? 그 이유는 기본 자료형만으로는 프로그램을 제대로 만들 수 없기 때문이다. 간단 예를 들면, 정수 1개를 담는 자료형을 선언하세요! 책 1개를 담는 자료형을 선언하세요! 정수는 담을 수 있는데 책은 어떻게 담지? 정수는 int라는 자료형이 있어서 메모리의 크기와 종류를 정할 수 있다. 하지만 책이라는 자료형은 없기 때문에 설계해야 한다. 이때 필요한 도구가 Class이다. 객체란 덩어리다. 책을 담기 위해선 'Book'이라는 자료형이 필요하다. 하지만 .. 19.12.19) Java - 변수와 메서드 목차 메서드 매개변수 전달 기법(parameter passing) 핵심 메서드는 매개변수를 받아 동작한 후 결괏값을 변수처럼 가지고 있는다 메서드 변수는 하나의 데이터를 담고 있다. 2개 이상의 데이터를 담을 땐 그 데이터의 주소를 담지, 데이터를 담는 것이 아니다. 메서드도 비슷한 맥락이다. 인자 값을 받아서 기능을 수행한다. 그다음 결과 값을 메서드 이름에 저장한다. public int sum(int a, int b) { return a + b; } int c = sum(3+5); // 3 + 5의 결과값이 sum에 담기고 그 값이 c에 할당된다. 매개변수 전달 기법(parameter passing) 메서드를 호출할 때 메서드의 선언부로 매개변수를 전달하는 방법은 크게 2가지가 있다. 총 5가지 정도.. 19.12.18) Java - Calendar 프로젝트 삼항 연산자(if) if문을 간결하게 작성할 수 있다. int count = 7; int delim = (count > 6) ? 0 : count; // delim == 0 Double to int int x = (int)Math.floor(year / 4);달력 계산 알고리즘 생각 외로 달력이라는 녀석이 쉽지는 않다는 것을 깨달은 오늘.. 하지만 개념만 이해한다면 충분히 구현할 수 있었다. 피하지 않는다면 시간이 걸리더라도 해낼 수 있다. 개념 - 1년 1월 1일부터 입력받은 현재 년도와 날짜까지 전체 날짜의 수를 구한다. - 윤년 구하는 식 : (year / 4) - (year / 100) + (year / 400) - 윤년일 때는 1일을 추가해야 한다 기준 날짜 (1970.1.1)를 정한 뒤, 기준.. 이전 1 2 3 4 5 6 7 다음