1) 속성 : 멤버변수, 특성, 필드, 상태
2) 기능 ) 메서드, 함수, 행위
1) 클래스명 변수명;
클래스 객체 참조하기 위한 참조변수 선언
메모리에 참조변수 T를 위한 공간이 마련되는 것
아직 인스턴스 생성은 X
2) 변수명 = new 클래스명ㄴ
=> 1) 에서 선언한 참조변수가 2)에서 만들어진 인스턴스를 가리키는 구조
인스턴스는 참조 변수를 통해서만 다룰 수 있고,
참조변수의 타입은 인스턴스 타입과 일치해야해
변수의 종류
1) 클래스변수 - 멤버 변수, static 붙음
2) 인스턴스 변수 - 멤버 변수, statis 안 붙음
3) 지역변수 - 멤버 변수 제외한 나머지 변수
1) 클래스 변수 :
- 인스턴스 마다 독립 공간 갖는 인스턴스 변수와는 달리 클래스 변수는 모든 인스턴스가 공통된 저장 공간 가지게 된다. 따라서 모두 공통된 값을 갖는 것이지
- 따라서 인스턴스 생성하지 않고바로 클래스에 접근해서 사용이 가능
2) 인스턴스 변수 :
- 클래스 영역 선언, 클래스의 인스턴스 생성 시 만들어짐
- 독립적인 저장공간 가져서 서로 다른 값 가지기 가능
3) 지역변수
- 메서드 내에서 선언 , 메서드 내에서만 사용 가능, 메서드 종료 시 함께 소멸
메서드 사용 이유?
1)높은 재사용성
2) 중복 코드 제거
3) 프로그램 구조화
반환타입 메서드 이름 (타입 변수명, 타입 변수명 ... => 매개변수 선언 ) {
구현 몸통}
1) 인자 : 메서드 호출할 때 괄호 안에 지정해준 값들
2) 매개변수 : 함수에 있던 들어와야 할 아이들
1) METHOD AREA
2) CALL STACK
- 메서드가 호출되면 수행에 필요한 만큼의 메모리를 스택에 할당
- 메서드가 수행 마치면 사용했던 메모리 반환, 스택 제거
- 호출스택의 제일 위에 있는 메서드가 현재 실행 중인 메서드
- 아래에 있는 메서드가 바로 위의 메서드를 호출한 메서드
3) HEAP
매개변수 타입이 기본형
일 때는 기본형 값 복사
매개변수 타입이 참조형
이면 인스턴스 주소 복사
기본형 선언 => 단순 저장 값 읽어옴 (그 주소에서 값만 델꼬 오는 것)
참조형 선언 => 값 변경 가능 (주소 자체를 불러오는 것, 주소 아니깐 주소 안에 살고있는 원본을 바꿀 수 있음)
기본형 매개변수 : 변수의 값 읽기만 가능
참조형 매개변수 : 변수의 값 읽고 변경 가능
인스턴스 메서드는 인스턴스 변수와 관련된 작업을 하는, 메소드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메서드
인스턴스와 관계없는 (인스턴스 변수와 인스턴스 메서드 사용 않는) 메서드를 클래스 메서드(STATIC 메서드)로 정의
- 클래스 멤버 변수 중 모든 인스턴스에 공통 값 유지해야 하는지 살펴보고 있으면 STATIC 붙여주기
- 작성 메서드 중에서 인스턴스 변수나 인스턴스 메서드 사용 않는 메서드에 STATIC 붙일 것 고려