Day9-2. 230510
필드
필드란?
객체의 고유 데이터, 객체가 가져야 할 부품, 객체의 현재 상태 데이터를 저장하는 곳.
필드 선언
- 클래스 중괄호 {} 블록 어디서든 존재 가능
- 생성자 선언과 메소드 선언의 앞과 뒤 어떤 곳에서도 필드 선언 가능,
생성자와 메소드 중괄호 {} 블록 내부에서는 선언될 수 없음
- 생성자와 메소드 중괄호 블록 내부에 선언된 것은 모두 로컬 변수가 됨.
타입 필드 [ = 초기값 ];
- 타입은 필드에 저장할 데이터의 종류를 결정
- 타입에는 기본 타입(byte, short, int, long, float, double, boolea)과 참조 타입(배열, 열거, 인터페이스)이 모두 올 수 있음.
- 초기값이 지정되지 않은 필드는 객체 생성 시 자동으로 기본 초기값을 설정됨.
필드 사용
- 필드값을 읽고 변경하는 작업.
- 클래스 내부의 생성자나 메소드에서 사용할 경우 단순히 필드 이름으로 읽고 변경하면 되지만,
클래스 외부에서 사용할 경우 우선적으로 클래스로부터 객체를 생성한 뒤 필드를 사용해야 함.
-> 필드가 객체에 소속된 데이터이므로 객체가 존재하지 않으면 필드도 존재하지 않기 때문
- Car 클래스의 speed 필드는 생성자와 메소드에서 변경 가능.
- 사용 방법은 변수와 동일.
변수는 자신이 선언된 생성자 또는 메소드 블록 내부에서만 사용할 수 있지만
필드는 생성자와 모든 메소드에서 사용 가능함.
외부 Person 클래스에서 Car클래스의 speed 필드값 사용하려면 다음과 같이 Car객체 우선 생성해야 함.
Car myCar = new Car();
- myCar 변수가 Car 객체를 참조하게 되면 도트(.) 연산자를 사용해서 speed 필드에 접근할 수 있음.
- 도트(.) 연산자는 객체 접근 연산자로 객체가 가지고 있는 필드나 메소드를 사용하고자 할 때 사용됨.
myCar.speed = 60;
Car 객체의 speed 필드값을 60으로 변경.
'개발 수업 > JAVA' 카테고리의 다른 글
[Java] 클래스/메소드(method)(메소드 선언,리턴문) (0) | 2023.05.11 |
---|---|
[Java] 클래스/메소드(Method) (0) | 2023.05.10 |
[Java] 클래스/객체 지향 프로그래밍 (0) | 2023.05.10 |
[Java] 배열 복사(얕은 복사,깊은 복사), Object 클래스 (0) | 2023.05.09 |
[Java] 참조 타입과 참조 변수,배열 (0) | 2023.05.08 |