본문 바로가기
프로그래밍언어/Java

06-2. 필드

by 스꼬맹이브로 2021. 1. 26.
728x90
반응형
SMALL

필드(field)란?

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

 

ex : 자동차 객체

고유 데이터 : 제작회사, 모델, 색깔, 최고 속도

상태 데이터 : 현재 속도, 엔진 회전 수

부품 : 차체, 엔진, 타이어

→ 이 정보들은 필드로 선언되어야 함

 

<필드 선언>

  • 중괄호{} 블록 어디서든 존재 가능(생성자 선언과 메소드 선언의 앞과 뒤 어떤 곳이든 가능)
  • 생성자와 메소드 중괄호{}
  •  블록 내부에는 선언 불가능

필드 선언 방법

type 필드이름 [ = 초기값 ];

//예시
String company = "기아자동차";
String model = "쏘렌토";
int maxSpeed = 300;
int productionYear;
int currentSpeed;
boolean engineStart;

초기값이 지정되지 않은 필드는 객체 생성 시 자동으로 기본 초기값으로 설정

 

필드타입별 기본 초기값

<필드 사용>

필드를 사용한다는 것 = 필드값을 읽고 변경하는 작업을 한다는 것

  • 클래스 내부의 생성자나 메소드에서 사용할 경우 : 필드 이름을 읽고 변경
  • 클래스 외부에서 사용할 경우 : 클래스로부터 객체를 생성한 뒤 필드 사용

[실습 1]

//Car 클래스 필드 선언

public class Car {
	//필드
	String company = "현대자동차";
	String model = "그랜저";
	String color = "검정";
	int maxSpeed = 350;
	int speed;
}
//외부 클래스에서 Car 필드값 읽기와 변경

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);
	}
}

결과 :

*필드 선언 시 초기값을 주지 않았음에도 0이 저장되어 있는 것을 확인

 

[실습 2]여러 가지 타입의 필드 초기값 확인

//FieldInitValue클래스 필드 선언

public class FieldInitValue {
	//필드
	byte byteField;
	short shortField;
	int intField;
	long longField;
	
	boolean booleanField;
	char charField;	
	
	float floatField;
	double doubleField;
	
	int[]  arrField;
	String referenceField;	
}

 

//각 필드의 초기값 확인

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);
	}
}

결과 :

 

728x90
반응형
LIST

'프로그래밍언어 > Java' 카테고리의 다른 글

06-4 메소드  (0) 2021.02.15
06-3. 생성자  (0) 2021.02.08
06-1. 객체 지향 프로그래밍  (1) 2021.01.25
05-3. 열거 타입  (0) 2021.01.24
05-2. 배열  (0) 2021.01.19