필드 선언

 이번에는 클래스의 구성요소 중 필드에 대해서 알아보도록 하겠습니다. 필드란 쉽게 말해서 객체의 속성을 정의하는 공간이라고 할 수 있습니다. 예를 들어 휴대폰을 객체로 가정한다면 고유한 값을 가지는 제조사, 크기, 모델이름 등등이 고유 데이터에 해당하고 배터리 상태, 통신사 등등은 상태 데이터에 해당한다고 할 수 있습니다. 그리고 휴대폰에 블루투스로 이어폰, 워치 등등이 추가된다면 이는 휴대폰과 다른 객체이므로 다른 클래스가 선언 되어야 합니다. 위의 속성들을 클래스에 필드로 선언한다면 아래와 같이 될 수 있습니다.

public class Phone {
	String maker;
    int display_size;
    String model_number;
    
    int battery;
    String carrier;
    
    Earphone earphone;
    Watch watch;
}

 필드를 선언하는 위치는 어디가 되든 상관없습니다. 하지만 생성자와 메소드 중괄호 내부의 블록에는 선언될 수 없습니다. 만약 이들 중 한곳에 선언했다면 그것은 필드가 아닌 로컬 변수가 돼버립니다. 필드 선언 방법은 변수의 선언 방법과 같다고 볼 수 있습니다. 만약 초기값이 주어지지 않으면 객체 생성 시에 자동으로 초기화가 진행됩니다.

 

 필드 사용

 필드를 사용한다는 것은 필드값을 읽고, 변경하는 행위를 말합니다. 클래스 내부에서 생성자나 메소드가 필드를 사용할 경우 변수를 사용하듯이 사용하면 되지만 클래스 외부에서 사용할 경우에는 우선 해당 클래스로부터 객체를 생성한 뒤 필드에 접근해야 합니다. 그 이유는 해당 객체가 존재하지 않으면 필드 또한 존재하지 않기 때문입니다.

 

 클래스 외부에서 해당 객체의 필드에 접근하려고 할 때에는 도트(.)를 이용해서 접근할 수 있습니다. 아래의 예시에서 살펴보도록 하겠습니다.

 

-Person 클래스

void method(){
	Phone myPhone=new Phone();
    myPhone.battery=75;
}

-Phone 클래스

int battery;

Phone(){
	battery=0;
}

void method(){
	battery=50;
}

 위의 예시에서는 클래스 내부에서는 변수처럼 사용할 수 있지만 클래스의 외부에서는 도트(.) 연산자를 통해 접근하는 것을 확인할 수 있습니다.

'프로그래밍 > JAVA' 카테고리의 다른 글

객체 생성 & 클래스 변수  (0) 2021.04.29
클래스 선언  (0) 2021.04.29
객체 지향 프로그래밍  (0) 2021.03.16
자바 배열  (0) 2019.04.25
자바 메서드 - 문제  (0) 2019.04.22

+ Recent posts