- 객체 : 속성(변수) + 기능(메서드) 모든 인스턴스를 대표하는 일반적 용어
- 인스턴스 : 특정 클래스로부터 생성된 객체
클래스 변수와 인스턴스 변수
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은 언제 붙여야 할까?
- 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통으로 사용하는 것에 static을 붙인다.
- 클래스 변수(static 변수)는 인스턴스를 생성하지 않아도 사용할 수 있다.
- 클래스 메서드는(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 |