반응형
인스턴스 멤버
- 객체마다 가지고 있는 멤버 => 객체를 생성한 후 사용할 수 있는 필드와 메소드
public class Car {
int gas;
int speed;
void setSpeed(int speed) {
this.speed=speed;
}
}
public class Test {
public static void main(String[] args) {
Car myCar = new Car();
myCar.gas=10;
myCar.setSpeed(60);
//여기선 gas와 setSpeed를 인스턴스 멤버라고 할 수 있음
}
}
this
- 객체 내에서 인스턴스 멤버에 접근하기 위해 사용
Car(String mode){
this.model = model; //car클래스에는 이미 model field가 존재할 경우
}
void setModel(String model){
this.model = model;
}
정적멤버
- 클래스에 고정된 멤버로서 객체 생성하지 않고 사용할 수 있는 필드와 메소드
- 정적 메소드 선언 시 그 내부에 인스턴스 필드 및 메소드와 this 키워드 사용 불가
- 정적멤버 접근시 인스턴스와 다르게 클래스로 접근해야함
public class Cal {
static double pi = 3.14;
static int plus(int x,int y){...}
}
//main 작성 code
double res1 = 10*Cal.pi;
int res2 = Cal.plus(10,5);
싱글톤
- 전체 프로그램에서 단 하나의 객체만 만들도록 보장하는 코딩 기법
* 싱글톤 작성 방법
- 클래스 외부에서 new로 생성자 호출하는 것을 방지하기 위해서 private 변수 사용
- 자신의 타입인 정적 필드 선언 후 자신의 객체 생성해 초기화
- 외부에서 호출할 수 있는 getInstance() 선언
- 정적 필드에서 참조하는 자신의 객체 리턴
public class Test{
private static Test singleton = new Test();
private Test(){}
static Test getInstance(){return singleton;}
}
final 필드
- 초기값이 저장되면 최종값이 되어 프로그램 실행 도중 수정 불가
인스턴스 필드
-> 객체에 한번 초기화된 데이터를 변경 불가로 만들 경우
final 타입 빌드; => final String ssn; //생성자에서 초기화
정적 필드
-> 불변의 값인 상수를 만들 경우
static final 타입 상수 = 초기값; => static final double pi =3.14;
반응형
'Language > Java' 카테고리의 다른 글
Java 상속 (0) | 2022.05.22 |
---|---|
Java 접근 제한자 (0) | 2022.05.13 |
Java 메소드 (0) | 2022.05.09 |
Java 객체와 클래스 (0) | 2022.05.08 |
Java의 배열 (0) | 2022.05.08 |