본문 바로가기

java45

Java_Study 객체지향 프로그래밍 (변수의 초기화) 변수의 초기화 멤버변수와 배열의 초기화는 선택적이지만, 지역변수의 초기화는 필수적이다. 멤버변수의 초기화 방법 명시적 초기화 생성자 초기화 블럭 명시적 초기화 : 변수를 선언과 동시에 초기화 하는 것 초기화 블럭 클래스 초기화 블럭 클래스변수의 복잡한 초기화에 사용 인스턴스 초기화 블럭 인스턴스변수의 복잡한 초기화에 사용 - 클래스 초기화 블럭은 클래스가 메모리에 처음 로딩될 때 한번만 수행 - 인스턴스 초기화 블럭은 생성자와 같이 인스턴스를 생성할 때 마다 수행 - 생성자 보다 인스턴스 초기화 블럭이 먼저 수행 class BlockTest { static { System.out.println("static { }"); } { System.out.println("{ }"); } public BlockTe.. 2022. 7. 1.
Java_Study 객체지향 프로그래밍 (생성자) 생성자란? : 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. : 따라서 인스턴스 변수의 초기화 작업에 주로 사용, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용 * 생성자가 갖는 몇 가지 특징만 제외하면 메서드와 다르지 않음 생성자의 조건 1. 생성자의 이름은 클래스의 이름과 같아야 한다. 2. 생성자는 리턴 값이 없다. 연산자 "new"가 인스턴스를 생성하는 것이지 생성자가 인스턴스를 생성하는 것이 아니다. * 예시코드 Card c = new Card(); /* 1. 연산자 new에 의해서 메모리(heap)에 Card클래스의 인스턴스가 생성된다. 2. 생성자 Card()가 호출되어 수행된다. 3. 연산자 new의 결과로, 생성된 Card인스턴스의 주소가 반환되어 참조변.. 2022. 7. 1.
Java_Study 객체지향 프로그래밍 (오버로딩) 오버로딩 : 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 ( 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다.) 오버로딩의 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. ※ 반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다. 오버로딩 사용하는 이유 : 다른 이름을 가져야 하는 경우 해당 메서드를 일일이 구분해서 기억해야 하는 부담이 생기기 때문에 가변인자와 오버로딩 : 가변인자는 내부적으로 배열을 이용하는 것. ex) static String concatenate (String delim, String ... args) { ..... 2022. 7. 1.
Java_Study 객체지향 프로그래밍 (변수와 메서드) 변수의 종류 변수의 종류 선언위치 생성시기 클래스 변수 클래스영역 클래스가 메모리에 올라갈 때 인스턴스 변수 클래스영역 인스턴스가 생성되었을 때 지역변수 클래스 영역 이외의 영역 변수 선언문이 수행되었을 때 1. 인스턴스 변수 독립적인 저장공간을 가지므로 서로 다른 값을 가질 수 있다. 인스턴스마다 고유한 상태를 유지해야하는 속성의 경우, 인스턴스 변수로 선언 2. 클래스 변수 모든 인스턴스가 공통된 저장공간을 공유하게 된다. 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야 하는 속성의 경우, 클래스 변수 선언 3. 지역변수 메서드 내에서만 사용 가능, 메서드 종료되면 소멸되어 사용불가 인스턴스변수는 인스턴스가 생성될 때 마다 생성되므로 인스턴스마다 각기 다른 값을 유지할 수 있지만, 클래스 변수는.. 2022. 6. 29.