Language/Java

'Do it 자바프로그래밍 입문' 6장 정리

ABCD 2022. 9. 8.

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!! 일반 메서드에서는 클래스 변수 사용 가능

※ 위 예제에는 세가지 변수가 존재

  1. 지역변수 ( int i ) - 메서드 호출시 생성되고 메서드가 끝나면 사라짐
  2. static변수 ( serialNum )
  3. 멤버변수 (  studentName ) - 인스턴스가 생성될 때 만들어지는 변수로 사용 불가!

지역번수

  • 함수나 메서드 안에서만 사용할 수 있는 변수
  • 함수나 메서드 안에서 선언하기 때문에 함수 밖에서 사용하지 못한다.
  • 다른 함수에서 사용할 수 없다.
  • 함수 호출시 생성되고 함수가 끝나면 소멀
  • 스택메모리에 저장

멤버변수

  • 클래스 안에서 사용 할 수 있는 변수
  • 클래스의 어느 메서드에서나 사용 가능
  • 인스턴스가 생성될 때 생성
  • 가비지 컬렉터(G.C.)가 메모리를 수거 할 떄 소멸
  • 힙 메모리에 저장

ststic변수

  • 여러 인스턴스에 공동으로 사용 할 수 있는 변수
  • private가 아니라면 클래스 외부에서도 객체 생성과 무관하게 사용 가능
  • 프로그램 시작시 상수와 함께 생성
  • 프로그램 종료시 메모리를 해제 할 때 소멸
  • 데이터 영역 메모리에 저장


싱글톤 패턴

  • 인스턴스를 단 하나만 생성하는 패턴
  • 실제로 많이 사용함
  • 생성자를 반드시 명시적으로 만들고 private로 지정해야 함
  • ex) 회사와 직원이 있을 경우, 회사는 하나의 고정적인 인스턴스!!

디자인 패턴

  • 객체 지향 프로그램에서 어떻게 구현해야 더 유연하고 재활용성이 높은 프로그램을 만들 수 있는지를 정리한 내용
728x90
반응형

댓글

💲 추천 글