[자바(Java)] static 키워드, 인스턴스 (Instance)

방용환·2023년 4월 7일
0
post-thumbnail

1. Static 키워드

1. Static 키워드

  • Static 키워드 : 객체가 아닌 클래스로 접근하기 위한 기능을 제공하는 제한자
    => 클래스 (내부 클래스), 필드, 메소드 작성시 사용

2. 제한자

  • 제한자 (Modifier) : 특별한 기능을 제공(제한)하기 위해 사용하는 키워드
  • Aceess Modifier : private, package, protected, public, static, final, abstarct

3. 정적 필드 (Static Field)

  • 정적 필드 (Static Field) : 클래스를 읽어 메모리(MethodArea)에 저장될 때 생성되는 필드
  • 객체가 생성되기 전에 메모리에 하나만 생성되는 필드
  • 생성자에 초기화 처리하지 않고 직접 초기값을 필드에 저장
  • 클래스로 생성된 모든 객체가 정적 필드 사용 가능
    => 메모리 절약 및 필드값 변경 용이
  • 클래스 외부에서는 객체가 아닌 클래스를 사용하여 접근 가능
public static int sum;
private static int total;

// 초기값 저장 생략 가능
  • 정적 필드는 public 접근 제한자로 설정된 경우 클래스를 이용하여 접근 가능

4. 정적 메소드 (Static Method)

  • 정적 메소드 (Static Method) : this 키워드를 제공하지 않는 메소드
  • this 키워드가 없으므로 인스턴스 필드 및 메소드 접근 불가능
  • 클래스를 사용하여 정적 필드 및 메소드 접근 가능
  • 정적 필드가 private 접근 제한자로 설정된 경우 메소드를 이용하여 접근 가능
    => 정적 메소드는 객체가 아닌 클래스를 이용하여 호출 가능
public static int getTotal () {
	return (Student.)total;
}
public static int setTotal (int total) {
	Student.total = total;
}

2. 인스턴스 (Instance)

1. 인스턴스 (Instance)

  • 인스턴스 (Instance) : 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체

2. 인스턴스 필드 (Instance Field)

  • 인스턴스 필드 (Instance Field) : 객체가 생성될 때 메모리(HeapArea)에 생성되는 필드
private int num;
private String name;
private int kor, eng;

3. 인스턴스 메소드 (Instance Method)

  • 인스턴스 메소드 (Instance Method) : this 키워드가 제공되는 메소드
  • this 키워드를 이용하여 인스턴스 밒드 및 메소드 접근 가능
  • 클래스를 사용하여 정적 필드 및 메소드 접근 가능

0개의 댓글