• 객체 : 속성(변수) + 기능(메서드) 모든 인스턴스를 대표하는 일반적 용어
  • 인스턴스 : 특정 클래스로부터 생성된 객체

 

클래스 변수와 인스턴스 변수

class MyVariables {
    int iv; // 인스턴스 변수
    static int cv; // 클래스 변수
    void method(){
        int lv = 0; // 지역 변수
    }   
}

인스턴스 변수 : 인스턴트가 생성 되었을 때 생성

클래스 변수 : 클래스가 메모리(RAM)에 로딩될 때 생성

지역 변수 : 메서드가 실행될 때 생성되었다가 종료시 자동으로 제거, 사용하기 전에 반드시 초기화해야 한다.

 

➡️ 인스턴스 변수는 인스턴트가 생성될 때 마다 생성되므로 인스턴스마다 다른 값을 가지지만, 클래스 변수는 모든 인스턴스가 하나의 저장공간을 공유하므로, 항상 공통된 값을 갖는다.

 

 

기본형 매개변수와 참조형 매개변수

기본형 매개변수 : read만 할 수 있고 write 불가능

참조형 매개변수 :  read & write 가능

 

 

static 메서드와 인스턴스 메서드

static 메서드

  • 객체 생성 없이 클래스이름.메서드이름()으로 호출  예) Math.random()
  • 인스턴스 멤버와 관련없는 작업을 하는 메서드로 메서드 내에 인스턴스 변수나 메서드 사용 불가능 ➡️ 즉, 인스턴스 멤버(iv, im)를 사용하지 않는 메서드에 static을 붙인다!

 

static은 언제 붙여야 할까?

  1. 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통으로 사용하는 것에 static을 붙인다.
  2. 클래스 변수(static 변수)는 인스턴스를 생성하지 않아도 사용할 수 있다.
  3. 클래스 메서드는(static 메서드)는 인스턴스 변수를 사용할 수 없다. 고로, 메서드 내에서 인스턴스 변수를 사용하지 않는다면 static을 붙이는 것을 고려한다.

 

 

 

 

 

 

'TIL > WEEK2' 카테고리의 다른 글

JAVA3 객체지향 프로그래밍2  (0) 2023.05.26
JAVA 2주차 배열과 컬렉션  (0) 2023.05.24
JAVA 2주차 조건문과 반복문  (0) 2023.05.23
JAVA 1주차  (0) 2023.05.22

+ Recent posts