반응형
[혼자공부하는자바] chapter 06-5. 인스턴스 멤버와 정적 멤버
인스턴스 멤버 | 정적 멤버 |
객체마다 가지고 있는 멤버 | 클레스에 위치시키고 객체들이 공유하는 멤버 |
인스턴스 멤버와 this
인스턴스 멤버: 객체를 생성한 뒤 사용할 수 있는 필드와 메소드
-> 객체 없이는 사용 불가
this: 객체 내부에서 인스턴스 멤버에 접근하기위해 사용
-> 생성자와 메소드의 매개 변수 이름이 필드와 동일한 경우, 인스턴스 멤버인 필드임을 명시하고자 할 때 사용한다.
정적 멤버와 static
정적 멤버: 클래스에 고정된 멤버, 객체를 생성하지 않고 사용할 수 있는 필드와 메서드
//정적 멤버 선언 방법
public class 클래스 {
//정적 필드
static 타입 필드 [ =초기값];
//정적 메서드
static 리턴 타입 메소드 ( 매개변수선언, ...) { ... }
}
//정적 멤버 사용 방법
클래스.필드;
클래스.메소드( 매개값, ... );
정적 멤버는 클래스 이름과 도트(.) 연산자로 접근할 수 있다.
정적 멤버는 객체 참조 변수로 접근할 수 있는데 이렇게 사용하면 경고 표시가 뜬다.
그러므로 클래스 이름으로 접근하는 것이 가장 좋다.
정적 메소드 선언 시 주의할 점
- 정적 메소드 내부에서 인스턴스 필드나 인스턴스 메소드를 사용할 수 없다.
- 정적 메소드에서 인스턴스 멤버를 사용하고 싶다면 객체를 먼저 생성하고 참조 변수로 접근해야 한다.
싱글톤
전체 프로그램에서 단 하나의 객체만 만들도록 보장해야 할 경우 사용하는 객체
클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야 한다.
//싱글톤 만드는 방법
public class 클래스 {
//정적 필드
private static 클래스 singleton = new 클래스();
//생성자
private 클래스 () { }
//정적 메소드
static 클래스 getInstance() {
return singleton;
}
}
final 필드
final 필드: 초기 값이 저장되면 프로그램 실행 도중에 변경할 수 없는 필드
//final 필드 선언 방법
final 타입 필드[= 초기값];
final 필드의 초기값을 줄 수 있는 방법
- 필드 선언 시 초기값 주기
- 생성자에서 초기값 주기
반응형
'Language > [Java] 혼자 공부하는 자바' 카테고리의 다른 글
[#혼공챌린지] 혼자 공부하는 자바_2주차 기본미션 (0) | 2021.07.19 |
---|---|
[혼자공부하는자바] chapter 07. 상속 (0) | 2021.07.19 |
[혼자공부하는자바] chapter 06-4. 메소드 (0) | 2021.07.19 |
[혼자공부하는자바] chapter 06-3. 생성자 (0) | 2021.07.19 |
[혼자공부하는자바] chapter 06-2. 필드 (0) | 2021.07.19 |