💡 먼저 보면 좋을 자료
Code States | OOP 기초(1) - 클래스와 객체
클래스에 포함된 변수로 속성을 나타낸다.
인스턴스 변수 & 클래스 변수를 의미
클래스 변수(cv, class variable)
필드 O
static
키워드 O
공통된 저장공간 공유 (모든 인스턴스들이 특정 값을 공유해야하는 경우에 해당 / static 키워드 사용)
인스턴스 생성 없이 사용 가능
인스턴스 변수(iv, instance variable)
필드 O
static
키워드 X
힙 메모리의 독립적인 공간에 저장
지역 변수(lv, local variable)
필드 X
메서드 내에 포함된 모든 변수 (cv, iv 제외하고)
스택 메모리에 저장 (메서드 종료 시 소멸)
저장 위치
필드 변수는 힙 메모리 영역
지역 변수는 스택 메모리 영역
초기화
필드 변수: 강제 초기화 진행 → 힙 메모리에는 빈 공간이 저장될 수 없기 때문
지역 변수: 직접 초기화 해줘야 함 (초기화하지 않을 경우 에러 발생)
키워드 멤버에 사용 → 정적 멤버 (static member)
static 키워드 사용 시 인스턴스 생성 없이 사용 가능
클래스명.멤버명
정적 메서드의 경우 인스턴스 존재 여부가 불확실하기 때문에 인스턴스 변수 또는 인스턴스 메서드를 사용할 수 없음
특정 작업을 수행하는 일련의 명령문들의 집합이며, 기능을 담당한다.
메서드의 구성 요소
시그니처(method signature): 제어자, 반환타입, 메서드명, 매개 변수 등
바디(method body)
메서드 호출
외부: 인스턴스 생성 후 포인트 연산자를 통해 호출
클래스 내부: 객체 생성 없이 호출
하나의 클래스 안에 같은 이름의 메서드를 여러 개 정의하는 것
메서드 오버로딩 성립 조건
같은 이름의 메서드명 사용
매개 변수의 개수와 타입을 다르게 정의