23.04.19 JAVA

천용·2023년 4월 19일
0

JAVA

목록 보기
11/23

정적멤버 (static)

  • 객체와 상관없는 멤버, 클래스 코드 (메소드 영역)에 위치
    • 정적 필드 및 상수: 객체 없이 클래스만으로도 사용 가능한 필드
    • 정적 메소드: 객체가 없이 클래스만으로도 호출 가능한 메소드
  • 클래스에 고정된 멤버로서 객체 생성하지 않고 사용할 수 있는 필드와 메소드
  • 객체를 여러개 생성을 해도 static 지역함수는 1개이다.
  • 외부에서 static변수를 부르는 함수는 static이여야한다.
  • a.method()를 class.method()로 객체를 생성을 하지않고도 호출 가능
  • 메소드 블록에 인스턴스 필드 또는 인스턴스 메소드를 사용할 경우-> 인스턴스 메소드로 선언 그렇지 않을 경우-> 정적 메소드로 선언

    public class Calculator {
        String color;										// 인스턴스 필드
        void setColor(String color) { this.color = color; } // 인스턴스 메소드
        static int plus(int x, int y) { return x + y; }		// 정적 메소드
        static int minus(int x, int y) { return x - y; }	// 정적 메소드
    }

싱글톤 (singleton)

  • 전체 프로그램에서 단 하나의 객체만 만들도록 보장하는 코딩 기법

  • 싱글톤 작성 방법

    • 클래스 외부에서 new 연산자 통해 생성자 호출하는 것 불가하도록 private 접근 제한자 사용

    • 자신의 타입인 정적 필드 선언 후 자신의 객체 생성해 초기화

    • 외부에서 호출할 수 있는 getInstance() 선언

    • 정적 필드에서 참조하는 자신의 객체 리턴

      public class 클래스 {	
      	//정적 필드
      	private static 클래스 singleton = new 클래스();
      
      	//생성자
      	private 클래스() {}
      
      	//정적 메소드
      	static 클래스 getInstance() {
      		return singleton;
      	}
      }

profile
성장하는 개발자가 되자

0개의 댓글