Programming Language/JAVA (2) - 혼공자

[Java 혼자 공부하는 자바] 필드

나수비니 2023. 9. 24. 10:30
728x90

필드

  • 핵심 키워드
    • 필드 선언, 필드 사용
  • 핵심 포인트
    • 필드는 객체의 고유 데이터, 부품 객체, 상태 정보를 저장
    • 필드를 선언하고 생성한 뒤 이를 읽고 변경하는 법

 

필드 (Field)

  • 필드란 무엇인가?
    • 클래스에 포함된 변수(Variable)를 의미한다.
  • 클래스 내에서 필드는 선언된 위치에 따라 아래와 같이 구분된다.
    • 클래스 변수 (static variable)
    • 인스턴스 변수 (instance variable)
    • 지역 변수 (local variable)
  • 예시
class Car {
	static int modelOutput; //클래스 변수
	String modelName; //인스턴스 변수

void method**() {
	int something = 10; //지역 변수
	}
}

 

 

package sec02.exam01;

public class Car {
	//Field
	String company = "현대자동차";
	String model = "그랜저";
	String color = "검정";
	int maxSpeed = 350;
	int speed;
	
	}
package sec02.exam01;

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. 클래스 중괄호 { } 블록 어디서든 존재 가능
  2. 생성자, 메소드 중괄호 { } 블록 내부에는 선언될 수 없다.
    1. 생성자와 메소드 중괄호 블록 내부에 선언된 것은 모두 로컬 변수가 된다.
  • 필드 선언법
[접근 제어자(public, private 등)] [static, final 등] 자료형 변수명 [= 초기값];

 

필드 타입별 기본 초기값

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

혼자 보려고 작성했던 거라.. 밑줄은.. 무시..부탁...드려..요

즉,

  • 기본타입
    • 정수타입 필드는 0
    • 실수 타입 필드는 0.0
    • boolean 필드는 false
  • 참조타입
    • 객체를 참조하고 있지 않은 상태인, null로 초기화된다.
  • 코드로 직접 확인해보기
//필드 타입별 기본 초기값
package sec03.exam02;

public class FieldInitValue {

	byte byteField;
	char charField;
	short shortField;
	int intField;
	long longField;
	
	boolean booleanField;
	
	float floatField;
	double doubleField;
	
	int[] arrField;
	String strField;
}
package sec03.exam02;

public class FieldInitValueExample {

	public static void main(String[] args) {
		
		FieldInitValue fiv = new FieldInitValue();
		//fiv는 변수이다.fiv변수는 new FieldInitValue의 번지수를 참조하게 된다.
		System.out.println(fiv.byteField);
		//1. 현재 출력하면 0이 출력된다. 필드에 값을 설정하지 않았기 때문에.
		System.out.println(fiv.charField);
		System.out.println(fiv.shortField);
		System.out.println(fiv.intField);
		System.out.println(fiv.longField);
		System.out.println(fiv.booleanField);
		System.out.println(fiv.floatField);
		System.out.println(fiv.doubleField);
		System.out.println(fiv.arrField);
		System.out.println(fiv.strField);
	}
}