Java 클래스

this

this.name = name ;

this.name의 name은 인스턴스 필드고 name은 매개변수이다.

this(매개변수, 값 , .. )

클래스의 다른 생성자 호출가능.
중복 코드 제거

static

  • 메소드에 인스턴스 필드를 포함하고 있지 않다면 정적 메소드로 선언한다.
  • 정적 필드, 정적 메소드는 클래스 이름에 도트(.) 연산자를 이용하여 객체 생성없이 바로 사용이 가능하다.

정적 메소드 선언 시 this키워드 없이 정적 필드를 바로 사용 가능하다. 인스턴스 필드를 사용하고 싶다면 메소드 내부에 객체를 생성하고 사용한다.

싱글톤

전체 프로그램에서 어떤 클래스에 대해 단 하나의 객체만 만들게 허용한다면..여기서 생성된 객체를 싱글톤이라고 한다.

  • 생성자에 static을 붙여 외부에서의 호출을 막는다.
    필드에도 static을 붙여 외부에서 변경하지 못 하게 한다.

  • 오직 getInstance( ) 메소드가 외부에서 객체를 사용하는 유일한 방법이다.

싱글톤의 정적 필드 선언, 초기화 방법
클래스 자신의 타입으로 정적 필드를 하나 선언하고, 선언한 그 정적 필드에 자신의 객체를 생성하여 초기화 한다.

public class Singleton {

      private static Singleton singleton = new Singleton();
      //정적 필드

      Singleton() {}
      //정적 생성자

     static Singleton getInstance() {
               return singleton;
          }
}

싱글톤 객체는 단 하나이기 때문에 외부에서 참조하는 싱글톤 객체는 모두 동일하다.

외부 클래스에서 new 연산자 사용없이 도트(.)를 이용해 아래 형식처럼 바로 사용한다.

싱글톤클래스.getInstance()

final 필드

필드 선언시 또는 생성자에서 초기값을 지정하면 그 값이 최종 값이 되는 필드이다.

상수

static final
상수는 객체마다 존재하는게 아니라 클래스에만 존재한다.

접근 제한자

default
같은 패키지에서만

public
모든 패키지에서

protected
같은 패키지 또는 다른 패키지의 자식 클래스에서만 사용 가능

private
내부 클래스 내부에서만

.
.
.
.
.
.
.
.

싱글톤_혼공자 p.279

좋은 웹페이지 즐겨찾기