디폴트 생성자
객체가 생성될 때 가장 먼저 호출되는 생성자로, 만약 개발자가 명시하지 않아도 컴파일 시점에 자동 생성된다
Object obj = new Object();
// 다음과 같이 디폴트 생성자가 없는 경우
public class Object(){
}
// 컴파일 시점에 컴파일러가 아래와 같이 생성자를 자동으로 생성한다
public Object(){
}
사용자 정의 생성자
디폴트 생성자 외에 특정 목적에 의해서 개발자가 만든 생성자로, 매개변수에 차이가 있다
사용자 정의 생성자를 하나라도 만들면 디폴트생성자는 사라진다 - 중요!!!!!!
Object obj = new Object("John", 10);
public Object(string name, int age){
str = name;
i = age;
}
소멸자
객체가 GC에 의해서 메모리에서 제거될 때 finalize() 메서드가 호출된다
Object obj;
obj = new Object();
obj = new Object(); // 기존의 레퍼런스를 끊고 새롭게 연결
// 가급적 GC가 빨리 작동하도록 요청
// java에서는 개발자가 메모리를 직접 관리하지 않기 때문에 사용하는 경우는 드물다
System.gc();
// 아래 메서드를 호출한다
@Override
protected void finalize() throws THrowable{
super.finalize();
}
this
현재 객체를 가리킬 때 this를 사용한다
Dog dog1 = new Dog("dogg", 1);
dog1.getInfo();
public class Dog{
public string name;
public int age;
public Dog(string n, int a){
this.name = n;
this.age = a;
}
public void getInfo(){
System.out.println(name +" "+ age);
}
}
--- result ---
dogg 1
'Study > Java' 카테고리의 다른 글
[Java] 상속, Object & Super 클래스 (0) | 2020.07.03 |
---|---|
[Java] 패키지와 static, 패키지 은닉 (0) | 2020.07.02 |
[Java] 메서드, 오버로딩, 오버라이딩 (0) | 2020.07.01 |
[Java] 클래스와 객체의 생성 (0) | 2020.07.01 |
[Java] 배열 & 조건문 & 반복문 (0) | 2020.07.01 |
댓글