반응형
250x250
Notice
Recent Posts
Recent Comments
Link
이롭게 현명하게
[JAVA] 자바 클래스 필드 본문
728x90
반응형
public class ClassName{
//필드 : 객체의 데이터가 저장되는 곳
int fieldName;
//생성자 : 객체 생성 시 초기화 역할 담당
ClassName(){ ... }
//메소드 : 객체의 동작에 해당하는 실행 블록
void methodName() { ... }
}
[필드]
필드 (Field) : 객체의 고유 데이터, 객체가 가져야 할 부품, 객체의 현재 상태 데이터를 저장하는 곳, 클래스 멤버변수라고도한다.
- 클래스 중괄호{} 블록 어디서든 존재할 수 있다.
- 생성자 선언과 메소드 선언의 앞과 뒤 어떤 곳에서도 필드 선언이 가능. 메소드 중괄호 블록 내부에는 선언될 수 없다.
- 생성자와 메소드 중괄호 블록 내부에 선언된 변수 : 로컬 변수
- 필드의 초기값은 필드 선언 시 주어질 수 있고, 생략될 수 있다.
- 초기값이 지정되지 않은 필드들은 객체 생성 시 자동으로 기본 초기값으로 설정된다.
// Car.java
public class Car {
// 고유 데이터 //
String company;
String model;
String Color;
int maxSpeed;
// 상태 //
int speed;
int rpm
// 부품 //
Body body;
Engine engine;
Tire tire;
}
클래스 내부의 생성자나 메소드에서 사용할 경우 단순히 필드 이름으로 읽고 변경하면 된다.
클래스 외부에서 사용할 경우 클래스로부터 객체를 생성한 뒤 필드를 사용해야 한다.
필드는 객체에 소속된 데이터이므로 객체가 존재하지 않으면 필드도 존재하지 않기 때문이다.
// Car.java
public class Car {
// 고유 데이터 //
String company;
String model;
String Color;
int maxSpeed;
// 상태 //
int speed;
// 생성자
Car(){
speed = 0;
}
//메소드
void method(){
speed = 10;
}
}
// Person.java
public class Person {
void method() {
Car mycar = new Car(); // Car 객체 생성
mycar.speed = 80; // Car 클래스에 있는 필드를 사용
}
}
일반 변수와의 차이점은 변수는 자신이 선언된 생성자 또는 메소드 블록 내부에서만 사용할 수 있지만, 필드는 생성자와 모든 메소드에서 사용이 가능하다.
외부 클래스를 사용할 경우에는 외부 클래스의 객체를 먼저 생성해야 한다.
도트( . ) 연산자 : 객체 접근 연산자로 객체가 가지고 있는 필드나 메소드를 사용하고자 할 때 사용된다.
더보기
[예제]
외부 클래스에서 Car 필드값 읽기와 변
// Car.java //
public class Car {
String company = "현대자동차";
String model = "그랜저";
String Color = "검정";
int maxSpeed = 350;
int speed;
}
// Main.java
public class Main {
public static void main(String[] args) {
Car mycar = new Car();
System.out.println(mycar.Color);
System.out.println(mycar.company);
System.out.println(mycar.maxSpeed);
System.out.println(mycar.model);
System.out.println(mycar.speed);
mycar.speed = 60;
System.out.println(mycar.speed);
}
}
잘못된 정보는 댓글에 남겨주시면 감사하겠습니다!😊
댓글과 좋아요는 큰 힘이 됩니다!
더보기
[ 참고자료 ]
728x90
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 자바 클래스 메소드 (0) | 2023.04.18 |
---|---|
[JAVA] 자바 클래스 생성 (0) | 2023.04.14 |
[JAVA] 자바 객체와 클래스 (2) | 2023.04.12 |
[JAVA] 객체 지향 프로그래밍 (0) | 2023.04.11 |
[JAVA] 데이터 타입 분류와 메모리 영역 (0) | 2023.04.10 |
Comments