this 예약어
- 생성된 인스턴스 자신을 가르키는 역할
- 생성자에서 다른 새엉자를 호출할 때 사용
Person( ) {
this ("이름 없음" , 1); //밑에 있는 Person ( String name, int age) 호출
}
Person ( String name, int age) {
this.name = name;
this.age = age;
}
- 다른 생성자 호출시 호출하는 코드 이전에 다른코드 삽입 할 수 없다.
Person( ) {
this( "이름 없음", 1); // 여기로 이동하면 오류 안남
this.name = "noname";
}
- 자신의 주소를 반환할 때 사용
객체간 협력
- 코딩예제로 해결 ( 학생, 버스, 지하철, 택시)
static 변수
- 클래스에서 공통으로 사용하는 변수
- 클래스 내부에 선언하지만, 다른 멤버변수처럼 인스턴스가 생성될 떄마다 새로 생성되는 변수가 아님
- 인스턴스 생성과 무관하게 먼저 생성하고 그 값을 모든 인스턴스가 공유
- 인스턴스가 아닌 클래스 이름으로도 참조하여 사용 가능.
System.out.println(studentLee.serialNum);
System.oyt.println(Student1.serialNum);
// 두개의 값은 같다.
클래스 메서드
- static 메서드 또한 static 변수처럼 인스턴스 참조 변수가 아닌 클래스 이름으로 호출하여 사용 가능
- 클래스 메서드 내부에서는 지역변수, 클래스변수 사용가능
- BUT!! 인스턴스 변수 사용 불가!!
- BUT!! 일반 메서드에서는 클래스 변수 사용 가능
※ 위 예제에는 세가지 변수가 존재
- 지역변수 ( int i ) - 메서드 호출시 생성되고 메서드가 끝나면 사라짐
- static변수 ( serialNum )
- 멤버변수 ( studentName ) - 인스턴스가 생성될 때 만들어지는 변수로 사용 불가!
지역번수
- 함수나 메서드 안에서만 사용할 수 있는 변수
- 함수나 메서드 안에서 선언하기 때문에 함수 밖에서 사용하지 못한다.
- 다른 함수에서 사용할 수 없다.
- 함수 호출시 생성되고 함수가 끝나면 소멀
- 스택메모리에 저장
멤버변수
- 클래스 안에서 사용 할 수 있는 변수
- 클래스의 어느 메서드에서나 사용 가능
- 인스턴스가 생성될 때 생성
- 가비지 컬렉터(G.C.)가 메모리를 수거 할 떄 소멸
- 힙 메모리에 저장
ststic변수
- 여러 인스턴스에 공동으로 사용 할 수 있는 변수
- private가 아니라면 클래스 외부에서도 객체 생성과 무관하게 사용 가능
- 프로그램 시작시 상수와 함께 생성
- 프로그램 종료시 메모리를 해제 할 때 소멸
- 데이터 영역 메모리에 저장
싱글톤 패턴
- 인스턴스를 단 하나만 생성하는 패턴
- 실제로 많이 사용함
- 생성자를 반드시 명시적으로 만들고 private로 지정해야 함
- ex) 회사와 직원이 있을 경우, 회사는 하나의 고정적인 인스턴스!!
디자인 패턴
- 객체 지향 프로그램에서 어떻게 구현해야 더 유연하고 재활용성이 높은 프로그램을 만들 수 있는지를 정리한 내용
728x90
반응형
'Language > Java' 카테고리의 다른 글
'Do it 자바프로그래밍 입문' 8장 정리 (0) | 2022.09.19 |
---|---|
'Do it 자바프로그래밍 입문' 7장 정리 (0) | 2022.09.12 |
'Do it 자바프로그래밍 입문' 5장 정리 (0) | 2022.09.06 |
'Do it 자바프로그래밍 입문' 4장 정리 (0) | 2022.09.03 |
'Do it 자바프로그래밍 입문' 3장 정리 (0) | 2022.09.01 |
댓글