반응형

자바(Java)는 강력하면서도 유연한 프로그래밍 언어로, 객체 지향 프로그래밍 패러다임을 기반으로 합니다. 이번 글에서는 자바의 기본적인 5대 핵심 개념에 대해 알아보고, 각 개념을 예시를 통해 살펴보겠습니다.

클래스와 객체 (Class and Object)

 

자바에서 모든 것은 클래스와 객체로 이루어져 있습니다. 클래스는 객체를 정의하는 틀이며, 객체는 그 클래스의 인스턴스입니다.


// 클래스 정의
class Car {
    String brand;
    int year;

    // 생성자
    public Car(String brand, int year) {
        this.brand = brand;
        this.year = year;
    }

    // 메서드
    public void startEngine() {
        System.out.println("Engine started!");
    }
}

// 객체 생성
Car myCar = new Car("Toyota", 2022);
myCar.startEngine();

 

상속 (Inheritance)

 

상속은 기존 클래스에서 일부 속성이나 메서드를 물려받아 새로운 클래스를 생성하는 개념입니다.

 

// 부모 클래스
class Animal {
    void sound() {
        System.out.println("Animal makes a sound");
    }
}

// 자식 클래스
class Dog extends Animal {
    void bark() {
        System.out.println("Dog barks");
    }
}

// 객체 생성
Dog myDog = new Dog();
myDog.sound();
myDog.bark();

 

다형성 (Polymorphism)

 

다형성은 같은 이름의 메서드가 다른 기능을 하는 것을 의미하며, 오버로딩과 오버라이딩을 통해 구현됩니다.

// 다형성 예시
class Shape {
    void draw() {
        System.out.println("Drawing a shape");
    }
}

class Circle extends Shape {
    void draw() {
        System.out.println("Drawing a circle");
    }
}

class Square extends Shape {
    void draw() {
        System.out.println("Drawing a square");
    }
}

// 다형성 활용
Shape myShape = new Circle();
myShape.draw(); // 다형성에 의해 Circle 클래스의 draw()가 호출됨
캡슐화 (Encapsulation)

 

캡슐화는 데이터와 해당 데이터를 다루는 메서드를 하나로 묶어 클래스를 만드는 것을 의미합니다.

// 캡슐화 예시
class BankAccount {
    private double balance;

    // 입금 메서드
    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
            System.out.println("Deposit successful");
        }
    }

    // 잔액 조회 메서드
    public double getBalance() {
        return balance;
    }
}

// 객체 생성
BankAccount myAccount = new BankAccount();
myAccount.deposit(1000);
System.out.println("Balance: " + myAccount.getBalance());
인터페이스 (Interface)

 

인터페이스는 메서드의 선언만을 갖는 추상화된 형태로, 클래스에서 해당 인터페이스를 구현하여 사용합니다. 

 

// 인터페이스 정의
interface Shape {
    void draw();
}

// 인터페이스 구현
class Circle implements Shape {
    public void draw() {
        System.out.println("Drawing a circle");
    }
}

// 객체 생성
Shape myShape = new Circle();
myShape.draw();

 

자바의 이 다섯 가지 핵심 개념을 이해하면 객체 지향 프로그래밍의 기초를 마련할 수 있습니다. 클래스와 객체, 상속, 다형성, 캡슐화, 그리고 인터페이스는 자바 프로그래머가 강력하고 효율적인 소프트웨어를 개발하는 데 필수적인 요소입니다.

반응형

'언어 공부 > JAVA' 카테고리의 다른 글

JAVA/innerClass  (0) 2022.05.17
JAVA/DTO test code  (0) 2022.05.15
JAVA/상속관계, 포함관계  (0) 2022.05.15
JAVA/CLASS  (0) 2022.05.11
JAVA/생성자  (0) 2022.05.11
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기