자바는 가비지컬렉터가 있기 때문에 소멸자함수를 사용하지않는다.
동일 클래스 | 동일 패키지 | 다른 패키지의 자식 클래스 | 다른 패키지 | |
---|---|---|---|---|
public | o | o | o | o |
protected | o | o | o | |
default(기본값) | o | o | ||
private | o |
static: 변수에 붙일 시 멤버 변수를 클래스 변수로 선언하는 것이고 클래스로부터 생성되는 모든 객체들이 공유하는 변수가 된다.
class test {
public static int a = 7; // 클래스 변수
public int b = 0; // 인스턴스 변수
public static void A() {
a++; // 클래스 변수로 선언되었으므로 접근 가능
b++; // 인스턴스 변수로 선언되었으므로 접근 불가
system.out.println("Num : " + B());// 일반 메서드로 선언되었으므로 호출 불가
}
public int B() {
return Num;
}
final: 변수에 붙일 시 상수를 의미하고 메서드 앞에 붙이면 Overriding을 금지하며, 클래스 앞에 붙이면 상속을 금지
abstract: 클래스와 메서드 앞에 붙일 수 있고, 메서드 앞에 붙이면 추상 메서드, 클래스 앞에 붙이면 추상 클래스
static 생성시점이 과거 생성되는갯수가 1개 초기화가 초반에 1번뿐
클래스가 객체가 되기전에 객체의 생성과 무관