Day03
참조변수
- 한 클래스 안에서 다른 클래스를 참조변수로 활용해 사용할 수 있음.
- 오버라이딩
OOP 추가작성
- 클래스, 객체, 인스턴스 의미
- 클래스의 상속
- 다형성
생성자 this(** OOP 부분 참고)
Day04
Static
- 여러 개의 인스턴스가 같은 메모리의 값을 공유하기 위해 사용
(각각의 객체가 생성되면 각각의 Hip영역에 저장)
-
Example studentId instance
1) A.studentId : <- d100
2) B.studentId : <- d200
: 각각의 힙영영 메모리 주소를 가르킨다. -> 인스턴스는 생성될 때 동적 할당.
: new keyword로 객체를 생성 했을때
3) Static variable : 전체 프로그램 자체가 load될때 할당
-> 리터럴, 상수, 스태틱 등이 저장되는 데이터영역
에 저장.
(객체생성 시점과 관계 X) : 객체 생성이 없이도 호출 가능.
Variable(변수)
- local variable
- 선언 위치 : 함수(메서드) 내부에 선언
- 사용 범위 : 함수(메서드) 내부에서만 사용가능
- 저장 위치 : Stack영역
- 생성, 소멸시점 : 함수(메서드) 호출될 때 생성, 함수 종료시 소멸
- instance variable
- 선언 위치 : Class 멤버 변수로 선언
- 사용 범위 : Class 내부에서 사용 (접근제어자에 따라 다름) // private이 아니면 참조 변수로 다른 Class에서 사용 가능
- 저장 위치 : Hip영역
- 생성, 소멸시점 : 객체가 생성될 때 Hip메모리에 생성, GC(garbage collector)가 메모리를 수거할 때 소멸함.
- static variabel
- 선언 위치 : Class 내부에 선언 <static 예약어 사용>
- 사용 범위 : Class 내부에서 사용 (접근제어자에 따라 다름) // private이 아니면 Class이름으로 다른 Class에서 사용 가능
- 저장 위치 : 데이터 영역
- 생성, 소멸시점 : 프로그램이 처음 시작할 때 생성, 프로그램 종료하고 메모리를 해제할 때 소멸
Singleton pattern
- 정의 : 단 하나의 인스턴스만 사용해야 하는 경우
외부에서 같은 인스턴스를 생성하지 못하게 막고(private)
인스턴스를 가져오는 method를 만들어(getInstance)
Static 메모리 영역에서 Instance에 접근만 가능하도록 만드는 것.
자동차회사
가있고
자동차 회사에는 직원들
이 있고
자동차 회사에는 여러 개의 공장들
이 있고
생산된 자동차을 운반하는 운반자들
이 있다.
- [자동차 회사] -> 유일해야 하는 인스턴스.