728x90
반응형
속성(Fields)
속성은 객체의 상태를 표현하고 저장하는 데이터를 담는 공간으로, 클래스 내부에 정의되는 변수들을 의미합니다.
1. 속성(Fields)의 개념
속성은 객체의 특징이나 상태를 나타내는 데이터입니다.
예를 들어, 자동차를 생각해보면 색상, 모델, 속도 등이 해당 객체의 속성에 해당합니다.
속성은 객체의 특징을 나타내기 위해 필요한 데이터를 저장하고 활용하는 데 사용됩니다.
2. 속성(Fields)의 특징
- 속성은 클래스 내부에 선언되며, 해당 클래스의 모든 인스턴스(객체)에서 공유됩니다.
- 클래스 내부에 선언된 변수는 클래스의 속성이 되어, 객체가 생성될 때마다 각각의 객체에 해당 속성이 생성됩니다.
- 속성은 일반적으로 접근 제어자(private, public, protected 등)를 사용하여 외부에서 직접 접근할 수 있는지 여부를 제어합니다. 이를 통해 데이터 은닉과 캡슐화를 실현할 수 있습니다.
- 각 속성은 자료형을 가지며, 해당 자료형에 맞는 데이터를 저장할 수 있습니다.
- 자바에서는 기본 자료형(int, double, boolean 등)과 참조 자료형(String, 객체 등) 모두 속성으로 사용할 수 있습니다.
3. 속성(Fields)의 활용
- 객체의 상태 저장
- 속성은 객체의 상태를 저장하는 데 사용됩니다.
- 객체의 특징과 속성에 따라 필요한 데이터를 정의하여 해당 속성에 값을 저장하고 읽을 수 있습니다.
- 객체 간 데이터 공유
- 클래스의 인스턴스는 해당 클래스의 속성을 공유하므로, 속성을 통해 객체 간 데이터를 전달하고 공유할 수 있습니다.
- 객체의 특징 표현
- 속성은 객체의 특징을 나타내는 데이터로, 객체가 가지는 고유한 특성을 표현할 수 있습니다.
- 이를 활용하여 객체를 식별하고 구별할 수 있습니다.
4. 필드(Fields)와 지역변수(Local Variables)의 차이점
1. 위치
- 필드
- 클래스 내부에 선언되는 변수로, 해당 클래스의 모든 메서드에서 접근 가능합니다.
- 필드는 객체의 상태를 나타내는 데이터를 저장하는 공간입니다.
- 지역변수
- 메서드나 블록 내부에 선언되는 변수로, 선언된 블록 내에서만 접근 가능합니다.
- 지역변수는 해당 블록 내에서만 사용되는 임시적인 데이터를 저장하는데 사용됩니다.
2. 초기화
- 필드
- 필드는 자동으로 초기값으로 설정됩니다.
- 기본값은 해당 자료형의 디폴트 값입니다. 필드를 선언할 때 초기값을 명시적으로 지정할 수도 있습니다.
- 지역변수
- 지역변수는 명시적으로 초기값을 할당하지 않으면 사용하기 전에 반드시 초기화해야 합니다.
- 초기화되지 않은 지역변수를 사용하려고 하면 컴파일 오류가 발생합니다.
3. 접근 범위
- 필드
- 필드에 접근 범위를 제어하기 위해 접근 제어자(private, public, protected 등)를 사용할 수 있습니다.
- 이를 통해 데이터 은닉과 캡슐화를 구현할 수 있습니다.
- 지역변수
- 지역변수는 해당 블록 내에서만 접근 가능하므로, 접근 범위를 제어할 필요가 없습니다.
4. 생명 주기
- 필드
- 필드는 객체가 생성되면서 생성되고, 해당 객체가 소멸할 때까지 유지됩니다.
- 객체의 상태를 나타내는 데이터를 저장하기 위한 영구적인 공간입니다.
- 지역변수
- 지역변수는 해당 블록이 실행되는 동안에만 존재하며, 블록 실행이 끝나면 메모리에서 제거됩니다.
- 임시적인 데이터를 처리하는 용도로 사용됩니다.
5. 초기화 위치
- 필드
- 필드는 클래스의 멤버로 선언되므로, 생성자나 메서드 내부에서 초기화할 수 있습니다.
- 지역변수
- 지역변수는 선언된 블록 내부에서 초기화해야 합니다.
- 블록 내부에서 선언과 동시에 값을 할당하거나, 나중에 사용하기 전에 초기화할 수 있습니다.
6. 요약
- 필드는 클래스 내부에 선언되고, 객체의 상태를 나타내는 데이터를 저장하는 공간입니다. 초기화되며 객체의 생명 주기와 관련이 있습니다.
- 지역변수는 메서드나 블록 내부에 선언되고, 해당 블록 내에서만 사용되는 임시적인 데이터를 저장하는 용도로 사용됩니다. 초기화되어야 하며, 지역변수의 생명 주기는 해당 블록의 실행과 관련이 있습니다.
- 필드는 접근 범위를 제어하여 데이터 은닉과 캡슐화를 구현할 수 있습니다. 지역변수는 블록 내에서만 접근 가능하므로 접근 범위를 제어할 필요가 없습니다.
- 필드는 자동으로 초기값을 가지며, 초기화를 명시적으로 지정할 수도 있습니다. 지역변수는 반드시 초기화해야 하며, 초기화되지 않은 지역변수는 컴파일 오류가 발생합니다.
5. 예제 코드
// 자동차 클래스 예제
public class Car {
// 속성(필드)
private String color; // 색상
private String model; // 모델
private int speed; // 속도
// 속성에 대한 Getter와 Setter 메서드
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
this.speed = speed;
}
// 실행 예제
public static void main(String[] args) {
Car myCar = new Car();
myCar.setColor("Red");
myCar.setModel("Sedan");
myCar.setSpeed(100);
System.out.println("Color: " + myCar.getColor());
System.out.println("Model: " + myCar.getModel());
System.out.println("Speed: " + myCar.getSpeed());
}
}
위 예제 코드는 자동차를 나타내는 Car 클래스를 정의하고, 속성에 대한 Getter와 Setter 메서드를 추가한 예제입니다.
Car 클래스의 속성으로는 색상(color), 모델(model), 속도(speed)가 있으며, 각각의 Getter와 Setter 메서드를 통해 속성에 값을 설정하고 읽을 수 있습니다.
속성은 객체 지향 프로그래밍에서 중요한 개념으로, 객체의 상태를 표현하고 저장하는 데 사용됩니다.
잘못된 정보는 댓글로 알려주시면 감사하겠습니다.
728x90
반응형
'Java' 카테고리의 다른 글
Java - 15. 자바의 클래스(Class) (0) | 2023.07.17 |
---|---|
Java - 14. 자바의 내부 클래스(Inner Class) - 클래스 안에 클래스 (0) | 2023.07.16 |
Java - 12. 자바의 생성자(Constructor) - 객체 초기화 (0) | 2023.07.14 |
Java - 11. 자바의 함수(function)과 메서드(method)와의 차이점 (0) | 2023.07.13 |
Java - 10. 자바의 메서드(method) (0) | 2023.07.12 |