개발/Java

Java에서의 클래스(Class): 이해와 활용

ju_ni_ 2023. 7. 17. 14:49
반응형

오늘은 자바에서 핵심적인 요소인 클래스(Class)에 대해 알아보려 합니다. 클래스는 서로 관련된 변수와 메소드를 묶어놓은 ''이라고 볼 수 있습니다. 객체지향 프로그래밍의 기본 요소로, 이 클래스의 개념을 이해하는 것은 자바를 학습하는 데 있어서 필수적인 과정입니다.

 

클래스란?

클래스는 서로 관련있는 변수와 메소드를 묶어 놓은 추상적인 틀입니다. 여러 변수들과 메소드들을 한 번에 관리할 수 있습니다. 예를 들어, '자동차'라는 클래스를 선언하면, 이 클래스 내부에는 '색상', '브랜드', '가격' 등의 변수와 '시동 켜기', '시동 끄기', '클락션 울리기' 등의 메소드가 포함될 수 있습니다.

 

클래스의 목적

클래스의 목적은 공통 요소를 매번 선언하는 작업을 줄이기 위함입니다. 클래스를 통해 한 번에 필드를 선언하고, 클래스를 사용할 때마다 클래스 타입의 객체를 사용할 수 있습니다. 따라서 하나의 클래스 타입으로 여러 개의 "객체"를 생성할 수 있습니다. 이는 제품 설계도(Class)에서 제품(객체)을 만드는 과정과 비슷하다고 볼 수 있습니다.

 

클래스의 선언

다른 클래스 외부에서 선언합니다. 클래스는 필드(변수선언, 메소드선언)를 포함하며, 실행문은 적을 수 없습니다. 클래스 선언의 기본 형태는 아래와 같습니다.

class ClassName {
    // 변수 선언
    // 메소드 선언
}

 

클래스 사용 (객체 생성과 사용)

클래스는 추상적인 틀이기 때문에 먼저 객체를 만들어서 구체화해야 합니다. 객체 생성을 통해 클래스 내부에 있는 변수와 메소드를 사용할 수 있습니다. 아래는 객체 생성과 사용의 기본적인 형태입니다.

ClassName objectName = new ClassName(); // 객체 생성
objectName.variable;                    // 변수 사용
objectName.method();                    // 메소드 사용

 

생성자

생성자는 new 연산자를 통해서 객체를 생성할 때 반드시 호출되는 일종의 메소드입니다. 객체 생성 시 객체(인스턴스 변수)를 초기화하기 위해 사용됩니다. 아래는 생성자의 기본 형태입니다.

class ClassName {
    ClassName() { // 생성자
        // 객체 생성 시 수행할 코드
        // 주로 객체의 변수를 초기화하는 코드
    }
}

생성자의 이름은 클래스 이름과 동일해야 하고, 반환 타입이 없습니다. 하나의 클래스는 반드시 하나 이상의 생성자를 가지고 있어야 합니다. 만약 생성자를 만들지 않았을 경우, 컴파일러가 자동으로 "기본 생성자"를 만들어 줍니다.

 

클래스의 활용

class Car {
    // 클래스 변수들
    String brand;
    String color;
    int price;

    Car() { // 기본 생성자
        // this 키워드를 이용하여 클래스의 변수에 접근하고 초기값 설정
        this.brand = "Unknown";
        this.color = "Unknown";
        this.price = 0;
    }

    Car(String brand, String color, int price) { // 매개변수를 가진 생성자
        // this 키워드를 이용하여 클래스의 변수에 접근하고 매개변수로 받은 값으로 초기화
        this.brand = brand;
        this.color = color;
        this.price = price;
    }

    // 클래스의 메소드들
    void startEngine() {
        // brand 변수를 이용한 메소드
        System.out.println(this.brand + "의 엔진이 켜집니다.");
    }

    void stopEngine() {
        // brand 변수를 이용한 메소드
        System.out.println(this.brand + "의 엔진이 꺼집니다.");
    }
}

public class Main {
    public static void main(String[] args) {
        // Car 클래스로부터 myCar 객체를 생성하고 초기화
        Car myCar = new Car("Hyundai", "Red", 20000);
        myCar.startEngine();  // myCar 객체의 startEngine 메소드를 호출
        System.out.println(myCar.brand);  // myCar 객체의 brand 변수를 출력
    }
}

출력 결과

Hyundai의 엔진이 켜집니다.
Hyundai

 

이처럼 자바의 클래스는 객체지향 프로그래밍의 핵심적인 요소입니다. 클래스를 이해하고 활용하면, 코드의 재사용성을 높이고 유지 보수를 편리하게 할 수 있습니다. 다음에는 클래스와 관련된 다른 주제들, 예를 들면 상속, 다형성 등에 대해 다루도록 하겠습니다.

반응형

'개발 > Java' 카테고리의 다른 글

Java에서의 클래스 상속  (0) 2023.07.18
Java에서의 변수 유형 및 static 키워드  (0) 2023.07.17
Java에서의 메소드(Method): 이해와 활용  (0) 2023.07.13
Java에서의 배열: 활용  (0) 2023.07.13
Java에서의 배열: 기초  (0) 2023.07.13