[Java] Java 클래스와 객체: 객체지향 프로그래밍의 핵심 #11

소개

자바(Java)는 객체지향 프로그래밍(OOP)의 대표적인 언어 중 하나로, Java 클래스와 객체를 기반으로 하는 프로그래밍 패러다임을 제공합니다. 이번 글에서는 자바의 클래스와 객체에 대해 자세히 알아보겠습니다.

[Java] Java 클래스와 객체: 객체지향 프로그래밍의 핵심 #11

객체지향 프로그래밍이란?

객체지향 프로그래밍은 현실 세계의 개념을 코드로 모델링하여 프로그램을 구축하는 패러다임입니다. 여기서 ‘객체’는 실제로 존재하거나 추상적인 것으로, 데이터와 해당 데이터를 처리하는 메서드를 함께 포함합니다.

클래스의 개념

클래스(Class)는 객체를 생성하기 위한 일종의 설계도입니다. 이 설계도에는 객체가 가져야 할 속성(멤버 변수)과 행위(메서드)가 정의되어 있습니다. 클래스는 실제로 메모리에 올라가지 않으며, 객체를 생성할 때 메모리에 할당됩니다.

public class Car {
    // 멤버 변수
    String brand;
    int year;

    // 메서드
    void start() {
        System.out.println("The car is starting.");
    }

    void stop() {
        System.out.println("The car is stopping.");
    }
}

위의 예제에서 Car 클래스는 자동차를 나타내는 클래스입니다. brandyear는 멤버 변수로, start()stop()은 메서드로 정의되어 있습니다.

객체의 생성

클래스를 이용하여 실제로 사용할 수 있는 객체를 생성할 수 있습니다.

public class Main {
    public static void main(String[] args) {
        // Car 객체 생성
        Car myCar = new Car();

        // 객체에 값 할당
        myCar.brand = "Toyota";
        myCar.year = 2022;

        // 객체의 메서드 호출
        myCar.start();
        myCar.stop();
    }
}

위의 예제에서 Car 클래스를 이용하여 myCar라는 객체를 생성하고, 속성에 값을 할당한 후 start()stop() 메서드를 호출하고 있습니다.

상속과 다형성

자바에서는 상속과 다형성을 통해 코드의 재사용성을 높일 수 있습니다. 상속은 기존 클래스를 확장하여 새로운 클래스를 만드는 것이며, 다형성은 같은 메서드를 호출하더라도 다양한 동작을 할 수 있도록 합니다.

public class ElectricCar extends Car {
    // 추가적인 멤버 변수 및 메서드
    boolean isElectric;

    void charge() {
        System.out.println("The electric car is charging.");
    }
}

위의 예제에서 ElectricCar 클래스는 Car 클래스를 상속받아 확장한 예시입니다.

캡슐화와 접근 제어자

캡슐화는 객체의 내부 상태를 외부에서 직접 접근하지 못하도록 숨기는 것을 말합니다. 이를 위해 자바에서는 접근 제어자를 사용합니다.

public class EncapsulationExample {
    private int privateVariable;
    public int publicVariable;

    private void privateMethod() {
        System.out.println("This is a private method.");
    }

    public void publicMethod() {
        System.out.println("This is a public method.");
    }
}

위의 예제에서 privateVariableprivateMethod()는 외부에서 직접 접근할 수 없습니다.

결론 Java 클래스, 객체

자바의 클래스와 객체는 객체지향 프로그래밍의 핵심 요소로, 모듈화와 재사용성을 높이는 데 중요한 역할을 합니다. 클래스를 정의하고 객체를 생성하여 사용함으로써 프로그램의 유지보수성과 확장성을 향상시킬 수 있습니다. 객체지향 프로그래밍의 개념을 잘 이해하고 이를 실제로 활용함으로써 효율적인 자바 프로그래밍을 할 수 있습니다.

[Java] Java 객체지향 프로그래밍 (OOP) 기본 개념
[Java] Java 객체지향 프로그래밍 (OOP) 기본 개념
[Java] Java 상속 (Inheritance)에 대한 이해 #12
[Java] Java 상속 (Inheritance)에 대한 이해 #12

Leave a Comment