'this()'에 해당되는 글 1건

반응형

※ 생성자의 개념

 : 생성자는 객체가 생성될 때 초기화를 위해 실행되는 메소드이다. 조금 더 자세히 설명하자면 하나의 객체가 생성이 될 때 필드들의 메모리 공간이 할당되지만 값을 가지지는 못한 상태인데 이 생성자를 호출하여 필드들의 값을 설정해주는 것이다.


생성자의 정의와 호출

 - 생성자는 객체가 생성되는 순간에 자동으로 호출된다.

 - 생성자의 이름은 클래스의 이름과 동일하다.

 - 생성자는 오버로딩(overloading)이 가능하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class rootable {
    int id;
    public rootable(int x) {        // 생성자 이름은 클래스 이름과 동일
        this.id = x;
    }
    public rootable() {            // 생성자는 리턴 타입 없음
        this.id = 0;
    }
 
    public static void main(String[] args) {
        rootable ob1 = new rootable(3);    // new를 통해 객체를 생성할 때만 생성자가 호출됨.
        rootable ob2 = new rootable();    
        rootable i;
    }
} 
cs


※ 기본 생성자

 : 기본 생성자(default constructor)란 인자도 없고 실행 내용도 없이 단순 리턴하는 생성자이다.

 : 이 기본 생성자를 디폴트 생성자라고도 한다.

1
2
3
public class rootable{
    public rootable() { } // 기본 생성자 
}
cs


 - 객체가 생성될 때에는 생성자가 호출되어야 하기 때문에 클래스에는 최소한 하나의 생성자가 선언되어야 한다. 이러한 이유 때문에 만약 개발자가 따로 생성자를 선언해주지 않았다면 컴파일러가 기본 생성자를 자동으로 생성해준다.

 - 하지만 기본 생성자가 항상 자동으로 생성되는 것은 아니다. 만약 개발자가 하나라도 생성자를 선언하였을 경우에는 컴파일러가 기본 생성자를 만들지 않기 때문에 기본 생성자 호출 시에는 컴파일 에러가 발생된다.


※ this()

 : this()는 한 클래스 내에서 한 생성자에서 다른 생성자를 호출할 때 사용하는 자바 코드


 - 주요 특징 3가지

 1) this()는 생성자 코드에서만 사용할 수 있다.  → 생성자가 아닌 일반 메서드에서는 this() 사용 불가

 2) this()는 동일한 클래스 내의 다른 생성자를 호출할 때 사용한다.

 3) this()는 반드시 생성자의 첫 번째 문장에서 사용되어야 한다. ← 첫 번째 문장이 아니면 컴파일 오류 발생


객체의 소멸

 : 자바에는 new를 통해 객체를 생성하고, 생성 시 호출되는 생성자를 정의할 수는 있지만 이와 반대로 객체를 소멸시키고, 소멸될 때 호출되는 소멸자 메소드라는 것은 JAVA에 존재하지 않는다.

 → 객체의 소멸은 개발자가 따로 작성할 필요 없이 자바 가상 머신(JVM)의 가비지 컬렉터(garbage collector)에 의해 적절한 시점에 자동으로 수집되어 가용 메모리에 리턴된다.

반응형

'Develope > Java' 카테고리의 다른 글

접근 지정자  (0) 2020.05.10
가비지와 가비지 컬렉션  (0) 2020.05.10
메소드 오버로딩과 this  (0) 2020.05.06
JAVA 5일차  (0) 2020.04.12
JAVA 4일차  (0) 2020.04.01
블로그 이미지

rootable

,