내가 개발해볼게!!

Do it! 자바 프로그래밍 입문 4일차 본문

Language/Java

Do it! 자바 프로그래밍 입문 4일차

보송송희 2022. 6. 16. 22:40

교재 맨앞쪽 진도표에 나와 있는 15일 코스로 공부하고 있습니다!!

Do it! 자바 프로그래밍 입문 4일차
06장 클래스와 객체 2
- 06-1 this 예약어
- 06-2 객체 간 협력
- 06-3 static 변수
- 06-4 변수 유효 범위
- 06-5 static 응용 - 싱글톤 패턴

  06장 클래스와 객체 2

  • this 예약어에 대해 배웠습니다.

this생성된 인스턴스 스스로를 가리키는 예약어입니다. 

참조 변수 bDay를 출력시켰더니 '클래스 이름@메모리 주소' 문자열 값이 출력되었습니다. 

이 예제에서는 한 파일 내에 'BirthDay', 'ThisExample' 두 개의 클래스가 존재하는데 이럴 경우 public으로 선언된 클래스의 이름과 파일의 이름이 같아야 합니다. 

 

 

line 7에서는 생성자 Person()에서 this를 사용해 다른 생성자 Person(String name, int age)를 호출하고 있습니다. 이때 line 8의 this("이름 없음", 1); 앞에는 다른 코드를 넣을 수 없습니다. line 15에서는 returnItSelf() 함수를 통해, 생성된 클래스 자신의 주소 값을 반환하고 있습니다. return이 포함된 반환형 함수 returnItSelf()를 선언할 때는 클래스형인 Person으로 선언해야 합니다. 

 

  • 객체 간 협력에 대해 배웠습니다.

학생, 버스, 지하철, 택시 객체를 정의한 뒤 TakeTrans.java에서 객체 간 협력 기능을 구현했습니다. 학생이 버스, 지하철, 택시에 타는 것을 각 클래스 내 메서드로 구현했습니다.

 

  • static 변수에 대해 배웠습니다.

static 변수클래스 전반에서 공통적으로 사용되는 변수입니다. 정적 변수라고도 부르는데, 클래스 내에 생성되면 모든 인스턴스가 그 값을 공유합니다. 

만약 static 변수가 private 처리된다면 get() 메서드와 set() 메서드를 통해 외부 클래스에서 변수를 호출해야 합니다.

 

  • 변수 유효 범위에 대해 배웠습니다. 
변수 유형 선언 위치 사용 범위 메모리 생성과 소멸
지역 변수
(로컬 변수)
함수 내부에 선언 함수 내부에서만 사용 스택 함수가 호출될 때 생성되고 함수가 끝나면 소멸
멤버 변수
(인스턴스 변수)
클래스 멤버 변수로 선언 클래스 내부에서 사용하고 private이 아니면 참조 변수로 다른 클래스에서 사용 가능 인스턴스가 생성될 때 힙에 생성되고, 가비지 컬렉터가 메모리를 수거할 때 소멸됨
static 변수
(클래스 변수)
static 예약어를 사용하여 클래스 내부에 선언 클래스 내부에서 사용, private이 아니면 클래스 이름으로 다른 클래스에서 사용 가능 데이터 영역 프로그램이 시작할 때 생성, 프로그램 끝나고 메모리 해제할 때 소멸됨

여기서 가비지 컬렉터는 프로그램이 동적으로 할당한 메모리 영역 중에서 필요 없어진 영역을 해제하는 기능이라고 합니다.

 

  • 싱글톤 패턴에 대해 배웠습니다.

싱글톤 패턴은 객체 지향 프로그램에서 인스턴스를 단 하나만 생성하는 디자인 패턴을 의미합니다.

유일하게 사용할 Company 인스턴스를 생성한 뒤 public get() 메서드를 통해 외부 클래스에서도 인스턴스를 받아와 사용할 수 있게 구현했습니다. CompanyTest.java에서 두 변수를 만들어 getInstance() 메서드를 통해 인스턴스를 받아왔고, 두 변수의 주소 값이 같은 것을 확인했습니다.