안녕하세요 알통몬입니다. 공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
객체를 생성하기 위해서는 new 연산자로 생성자를 호출해야 합니다.
생성자를 어디에서나 호출할 수 있는 것은 아닙니다.
생성자라 어떤 접근 제한을 갖느냐에 따라 호출 가능 여부가 결정됩니다.
생성자는 아래와 같이 public, protected, default, private 접근 제한을 가질 수 있습니다.
public class ClassName {
//public 접근 제한
public ClassName(...) { ... }
//protected 접근 제한
protected ClassName(...) { ... }
//default 접근 제한
ClassName(...) { ... }
//private 접근 제한
private ClassName(...) { ... }
}
클래스에 생성자를 선언하지 않았을 때 자동으로 선언되는 기본 생성자는 클래스와 같은 접근 제한을 가집니다.
예제1)
package constructor_access.package1;
public class A {
//필드
A a1 = new A(true);
A a2 = new A(1);
A a3 = new A("문자열");
//생성자
public A(boolean b) {}
A(int b) {}
private A(String s) {}
}
예제2)
package constructor_access.package1;
public class B {
//필드
A a1 = new A(true);
A a2 = new A(1); A클래스와 같은 패키지이므로 default 생성자 호출가능.
//A a3 = new A("문자열"); //private 생성자이므로 접근 불가
}
예제3)
package constructor_access.package2;
import constructor_access.package1.A;
public class C {
//필드
A a1 = new A(true);
//A a2 = new A(1); //다른 패키지이므로 default 생성자 호출 불가.
//A a3 = new A("문자열"); //private 생성자이므로 접근 불가
}
'자바' 카테고리의 다른 글
JAVA 자바 Getter 와 Setter (0) | 2017.03.12 |
---|---|
JAVA 자바 필드 접근 제한과 메서드 접근 제한 (0) | 2017.03.12 |
JAVA 자바 클래스 접근 제한자 (0) | 2017.03.12 |
JAVA 자바 패키지 선언, import 문 , 이클립스에서 패키지 생성과 클래스 생성 (0) | 2017.03.12 |
JAVA 자바 final 필드와 상수 (0) | 2017.03.12 |