클래스와 객체_java사전교육 13~16

두윤기·2022년 12월 20일

13. 클래스와 객체 5

> this

  • 자신의 메모리를 가리킴
public Person(String name, int age){
	this.name = name;
    this.age = age;
}

! note: 위 코드에서 this를 생략하게 되면 name이나 age는 parameter로 사용되는 name과 age로 인식

  • 생성자에서 다른 생성자를 호출(매개변수의 개수와 type에 맞는 생성자를 호출)

  • 자신의 주소를 반환



14. 클래스와 객체 6

> 객체간의 협력

  • 학생이 버스나 지하철을 가는 상황을 객체 지향으로 프로그래밍



15. 클래스와 객체 7

> static variable(class variable)

  • 여러 개의 instance가 같은 메모리 값을 공유하기 위해 사용
  • instance가 생성될 때마다 다른 memory를 가지는 것이 아니라 프로그램이 메모리에 load(적재) 될 때, data영역 memory에 static 변수도 할당(상수, literal, static, ...)
  • class 이름으로 직접 참조(class variable cf.member variable)
    ex) Student.serialNum
  • 메모리 사용
    • 데이터 영역: static(class) variable
    • stack memory: local variable
    • heap memory: instance variable

> static method(class method)

  • method에 static keyword를 사용하여 구현
  • 주로 static 변수를 위한 기능 제공
  • static method에서 instance variable 사용 X
    static은 class로 접근 할 수 있는데, instance가 생성되기도 전에 static method를 호출하면 instance variable이 존재하지 않음.
  • static method도 instance 생성과 관계 없이 class 이름으로 직접 호출

> 변수의 유효범위




16. 클래스와 객체 8

> static 응용: singleton 패턴

  • 전 시스템에 단 하나의 instance만 존재하도록 구현하는 방식
  • singleton pattern code structure
profile
programmerD

0개의 댓글