본문 바로가기
IT/자바 Java

자바 OOP 기초 . 클래스와 객체의 세계로

by SidePower 2024. 11. 23.

 

자바의 객체지향 프로그래밍에 대해 알아볼 거예요! 

 

객체지향은 프로그래밍의 중요한 패러다임 중 하나로,

여러분이 현실 세계의 개념을 코드로 표현할 수 있도록 해줘요.

예를 들어, 은행 계좌를 클래스로 만들어 입출금 기능을 구현해볼 거예요.

그 과정에서 클래스, 객체, 생성자, 상속, 다형성의 개념도 배워볼 거랍니다!

 

클래스와 객체란?

클래스는 객체를 만들기 위한 설계도예요.

객체는 이 설계도를 바탕으로 만들어진 실제 물건과 같아요.

예를 들어, 은행 계좌가 클래스라면, 여러분이 만든 각 계좌가 객체가 되는 거죠.

public class BankAccount {
    // 필드 (속성)
    private String owner;
    private double balance;

    // 생성자 (객체 생성 시 호출)
    public BankAccount(String owner, double initialBalance) {
        this.owner = owner;
        this.balance = initialBalance;
    }

    // 메서드 (기능)
    public void deposit(double amount) {
        balance += amount;
    }

    public void withdraw(double amount) {
        if (balance >= amount) {
            balance -= amount;
        } else {
            System.out.println("잔액이 부족합니다.");
        }
    }

    public double getBalance() {
        return balance;
    }
}

BankAccount 클래스는 계좌 소유자와 잔액을 관리하는 객체를 만들 수 있게 해줘요.

생성자를 통해 객체 생성 시 초기 값(소유자와 잔액)을 설정합니다.

 

객체 생성과 사용하기

public class Main {
    public static void main(String[] args) {
        // BankAccount 객체 생성
        BankAccount myAccount = new BankAccount("Alice", 1000.0);

        // 입금과 출금 수행
        myAccount.deposit(500);
        myAccount.withdraw(200);
        
        // 잔액 확인
        System.out.println("잔액: " + myAccount.getBalance());
    }
}

이 코드는 Alice의 은행 계좌를 만들고, 500원을 입금한 후 200원을 출금해요.

그리고 최종 잔액을 출력하죠.

객체지향 프로그래밍의 클래스와 메서드를 이해하는 첫 단계로 아주 좋은 예제랍니다!

 

상속과 다형성

상속(Inheritance)은 기존 클래스를 확장해 새로운 클래스를 만드는 것을 말해요.

은행 계좌를 확장해 적금 계좌를 만들 수 있어요.

public class SavingsAccount extends BankAccount {
    private double interestRate;

    public SavingsAccount(String owner, double initialBalance, double interestRate) {
        super(owner, initialBalance); // 부모 클래스 생성자 호출
        this.interestRate = interestRate;
    }

    public void applyInterest() {
        double interest = getBalance() * interestRate;
        deposit(interest);
    }
}

SavingsAccountBankAccount를 상속해 적금 계좌의 기능을 추가했어요.

super() 키워드로 부모 클래스의 생성자를 호출합니다.

다형성(Polymorphism) 활용하기

다형성은 여러 객체가 동일한 메서드를 다르게 구현할 수 있게 해줘요.

예를 들어, 다양한 종류의 계좌가 있지만, 모두 withdraw() 메서드를 가진다고 생각해 볼게요.

public class Main {
    public static void main(String[] args) {
        BankAccount account1 = new BankAccount("Bob", 1000);
        SavingsAccount account2 = new SavingsAccount("Alice", 5000, 0.02);

        account1.withdraw(100);
        account2.withdraw(100);

        account2.applyInterest(); // 이자 적용
    }
}

여기서 SavingsAccount는 applyInterest() 메서드를 통해 적금 계좌만의 기능을 수행할 수 있어요.

이런 게 바로 다형성의 매력입니다!

 

정리

자바의 객체지향 프로그래밍(OOP)의 기본 개념인

클래스, 객체, 생성자, 상속, 다형성을 배웠어요. 
이제 여러분도 은행 계좌 프로그램을 통해 객체지향 개념을 직접 체험해 봤으니,

더 큰 프로그램도 스스로 설계할 수 있을 거예요!

 

객체지향을 제대로 이해하면

프로그램이 더 유지보수하기 쉽고 재사용 가능해지니 꼭 복습해 보세요.

반응형

댓글