필드
객체의 고유 데이터, 객체가 가져야 할 부품, 객체의 현재 상태 데이터를 저장하는 곳
필드 선언
- {} 블록에 존재
- 위치는 상관 없음
- 단, 생성자와 메소드 중괄호 {} 내부에는 선언 될 수 없음
- 생성자와 메소드 중괄호 블록 내부에 선언된 것은 모두 로컬 변수
- 타입 필드 [=초깃값];
- 선언형태는 변수와 피슷하지만 필드는 변수가 아님
- 초기값이 저장되지 않은 필드는 객체 생성 시 자동으로 기본 초기값으로 설정됨
- 참조 타입은 객체를 참조하고 있지 않은 상태인 null로 초기화
필드 사용
- 필드값을 읽고 변경하는 작업
- 클래스 내부의 생성자나 메소드에서 사용할 경우 필드 이름으로 일고 변경하면 됨
- 클래스 외부에서 사용할 경우 우선적으로 클래스로부터 객체를 생성한 뒤 필드를 사용
- 필드가 객체에 소속된 데이터이므로 객체가 있어야 필드도 존재함
- 변수가 객체를 참조하게 되면 도트(.) 연산자를 사용해서 필드에 접근
- 도트(.)연산자는 객체 접근 연산자
확인 문제
- 필드는 메소드에서 사용할 수 있다. (o)
- 필드는 클래스 블록 어디서든 선언할 수 있다(생성자, 메소드 내부 제외) (o)
- 필드는 객체 외부에서 접근할 수 없다. (x)
- 필드는 초기값을 주지 않더라도 기본값으로 자동 초기화 된다. (o)
Member Class 선언하기
public class Member {
String name;
String id;
String password;
int age;
public static void main(String[] args) {
Member member = new Member();
member.name = "최하얀";
member.age =23;
System.out.println("이름: "+member.name);
System.out.println("나이: "+member.age);
}
}
'Java > 혼자 공부하는 자바' 카테고리의 다른 글
혼자공부하는자바 6-6 패키지와 접근 제한자 (0) | 2022.11.28 |
---|---|
혼자공부하는자바 6-5 인스턴스 멤버와 정적 멤버 (0) | 2022.11.28 |
혼자공부하는자바 ch 6-4 메소드 (0) | 2022.11.25 |
혼자공부하는자바 ch 6-3 생성자 (0) | 2022.11.25 |
혼자공부하는자바 ch 6-1 객체 지향 프로그래밍 (1) | 2022.11.22 |