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

[Java] class 선언 방법, class란?

by Tree나무Tree 2024. 2. 14.

 

클래스 선언하는 방법

클래스란?

클래스는 객체 지향 프로그래밍에서 사용하는 개념으로,

실세계의 사물이나 개념을 소프트웨어 내에서 모델링하기 위한 설계도이다..

클래스를 통해 객체의 속성(상태)과 행동(메소드)을 정의할 수 있다.

 

예를 들어, "자동차"를 생각해 보자.

자동차는 색상, 브랜드, 연식 등의 속성을 가지고 있고,

달리기, 멈추기 등의 기능(행동)을 수행할 수 있다.

이를 프로그래밍 세계에서 모델링하려면 "자동차" 클래스를 생성하여

이러한 속성과 행동을 코드로 표현할 수 있다.

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 객체의 coloryear 필드에 값을 할당하고,

displayInfo() 메소드를 호출하여 객체의 정보를 출력한다.

 

 

생성자란?

클래스로부터 객체를 생성할 때 자동으로 호출되는 특별한 유형의 메소드이다.

생성자의 주된 목적은 객체를 초기화하는 것,

즉 객체의 상태를 설정하는 데 필요한 코드를 실행하는 것이다.

생성자는 클래스 이름과 같은 이름을 가지며, 반환 유형을 지정하지 않는다.

 

Car 클래스 기반으로 설명하면

class Car {
    String color; // 자동차의 색상
    int year; // 제조 연도

    // 생성자
    Car(String c, int y) {
        color = c; // 객체의 색상 필드를 초기화
        year = y; // 객체의 제조 연도 필드를 초기화
    }
}

 

이 예에서 Car 클래스에는

Car 객체의 coloryear 필드를 초기화하는 생성자가 있다.
Car 객체를 생성할 때마다 이 생성자가 호출되어

각 객체의 coloryear가 초기화된다.

 

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

[Java] 직렬화(Serialization)란?  (0) 2024.07.12