클래스 선언하는 방법
클래스란?
클래스는 객체 지향 프로그래밍에서 사용하는 개념으로,
실세계의 사물이나 개념을 소프트웨어 내에서 모델링하기 위한 설계도이다..
클래스를 통해 객체의 속성(상태)과 행동(메소드)을 정의할 수 있다.
예를 들어, "자동차"를 생각해 보자.
자동차는 색상, 브랜드, 연식 등의 속성을 가지고 있고,
달리기, 멈추기 등의 기능(행동)을 수행할 수 있다.
이를 프로그래밍 세계에서 모델링하려면 "자동차" 클래스를 생성하여
이러한 속성과 행동을 코드로 표현할 수 있다.
class Car {
// 속성(상태) - 필드
String color; // 자동차의 색상
String brand; // 브랜드
int year; // 연식
// 행동(메소드)
void drive() {
System.out.println("자동차가 달립니다.");
}
void stop() {
System.out.println("자동차가 멈춥니다.");
}
}
이 클래스는 "자동차"라는 개념을 표현한 것이다.
클래스 내부에 정의된 color, brand, year는 자동차가 가질 수 있는 속성(상태)를 나타내며,
drive()와 stop() 메소드는 자동차가 수행할 수 있는 행동을 나타낸다.
객체란?
객체는 클래스에 정의된 속성과 메소드를 실제로 가지고 있는 인스턴스이다.
특정 클래스로부터 생성된 객체는 그 클래스의 인스턴스라고 한다.
Java에서 객체를 선언하고 생성하는 기본적인 구문은 다음과 같다.
ClassName objectName = new ClassName();
- ClassName: 객체를 생성할 클래스의 이름
- objectName: 생성할 객체의 이름. 변수명 규칙을 따다.
- new: 객체를 생성하기 위한 자바 키워드
- ClassName(): 클래스의 생성자를 호출한다. 생성자는 객체가 생성될 때 초기화를 담당한다(아래에 추가 설명).
※ 초기화(Initialization)란 변수나 객체가 최초로 사용되기 전에 그들에게 특정 값을 할당하는 과정을 말합니다
이제 Car 클래스를 기반으로 객체를 선언하고 생성해 보자.
public class Main {
public static void main(String[] args) {
// Car 객체를 선언하고 생성
Car myCar = new Car();
// 객체의 필드(상태)에 값을 할당
myCar.color = "Red";
myCar.year = 2020;
// 객체의 메소드(행동) 호출
myCar.displayInfo(); // 출력: Color: Red, Year: 2020
}
}
위 예시에서 Car myCar = new Car();는 Car 클래스의 인스턴스를 생성하고,
이를 myCar라는 이름의 객체로 참조한다.
그 후 myCar 객체의 color와 year 필드에 값을 할당하고,
displayInfo() 메소드를 호출하여 객체의 정보를 출력한다.
생성자란?
클래스로부터 객체를 생성할 때 자동으로 호출되는 특별한 유형의 메소드이다.
생성자의 주된 목적은 객체를 초기화하는 것,
즉 객체의 상태를 설정하는 데 필요한 코드를 실행하는 것이다.
생성자는 클래스 이름과 같은 이름을 가지며, 반환 유형을 지정하지 않는다.
Car 클래스 기반으로 설명하면
class Car {
String color; // 자동차의 색상
int year; // 제조 연도
// 생성자
Car(String c, int y) {
color = c; // 객체의 색상 필드를 초기화
year = y; // 객체의 제조 연도 필드를 초기화
}
}
이 예에서 Car 클래스에는
각 객체의 color와 year가 초기화된다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 직렬화(Serialization)란? (0) | 2024.07.12 |
---|