자바

JAVA 자바 클래스의 필드

알통몬_ 2017. 3. 12. 19:17
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

필드: 객체 고유의 데이터, 객체가 가져야 할 부품, 객체의 현재 상태 데이터를 저장하는 곳

자동차를 예로 들면 제작회사, 모델, 색깔, 최고 속도는 고유 데이터에 해당하고, 

현재 속도, 엔진 회전 수는 상태 데이터에 해당합니다. 차체, 엔진, 타이어는 부품에 해당.


자동차 객체                                    자동차 클래스

[고유데이터]                              public class Car{

제작회사                                            String company;

모델                                                 String model;

색깔                                                 String color;

최고 속도                                           int maxSpeed;


[상태]

현재 속도                                           int speed;

엔진 회전 수                                       int rpm;


[부품]

차체                                               Body body;

엔진                                               Engine engine;

타이어                                            Tire tire;


필드 선언 : 클래스의 중괄호{ }블록 어디서든지 존재

생성자 선언과 메서드 선언 앞과 뒤 어떤 곳에서도 필드 선언이 가능합니다. 

생성자와 메서드 중괄호 블록 내부에는 선언될 수 없다. 

생성자와 메서드 중괄호 블록 내부에 선언된 것은 로컬 변수.

필드를 클래스 멤버 변수라고 부르기도 함.

타입 필드 [= 초기값];

타입에는 기본타입과 참조타입 모두 올 수 있습니다. 

초기값은 필드 선언 시 주어질 수도 있고 생략될 수도 있습니다.

ex)

String company = "naver";

String model = "blog";

int hit = " 1000";

int maxHit ;


필드 사용 : 필드 값을 읽고 변경하는 작업

 클래스 내부의 생성자나 메서드에서 사용할 경우 단순히 필드 이름으로 읽고 변경하면 되지만, 

클래스 외부에서 사용할 경우 우선적으로 클래스로부터 객체를 생성한 뒤 필드를 사용해야 합니다.

필드는 객체에 소속된 데이터 이므로 객체가 존재하지 않으면 필드도 존재하지 않기 때문. 

필드는 생성자와 메서드 내에서 값 변경이 가능합니다.

사용방법은 변수와 동일

차이점 : 변수는 자신인 선언된 생성자 또는 메서드 블록 내에서만 사용

          필드는 생성자와 모든 메서드에서 사용이 가능합니다.


필드 사용 예제)

예제1)

 public class Car {

//필드

String company = "현대자동차";

String model = "그랜저";

String color = "검정";

int maxSpeed = 350;

int speed;

}

예제2)
public class CarExample {
public static void main(String[] args) {
//객체 생성
Car myCar = new Car();
//필드 값 읽기
System.out.println("제작회사: " + myCar.company);
System.out.println("모델명: " + myCar.model);
System.out.println("색깔: " + myCar.color);
System.out.println("최고속도: " + myCar.maxSpeed);
System.out.println("현재속도: " + myCar.speed);
//필드 값 변경
myCar.speed = 60;
System.out.println("수정된 속도: " + myCar.speed);
}
}

필드 타입별 초기값 예제)
예제1)
public class FieldInitValue {
//필드
byte byteField;
short shortField;
int intField;
long longField;
boolean booleanField;
char charField;
float floatField;
double doubleField;
int[]  arrField;
String referenceField;
}
예제2)
public class FieldInitValueExample {
public static void main(String[] args) {
FieldInitValue fiv = new FieldInitValue();
System.out.println("byteField: " + fiv.byteField);
System.out.println("shortField: " + fiv.shortField);
System.out.println("intField: " + fiv.intField);
System.out.println("longField: " + fiv.longField);
System.out.println("booleanField: " + fiv.booleanField);
System.out.println("charField: " + fiv.charField);
System.out.println("floatField: " + fiv.floatField);
System.out.println("doubleField: " + fiv.doubleField);
System.out.println("arrField: " + fiv.arrField);
System.out.println("referenceField: " + fiv.referenceField);
}
}


반응형