// education

객체지향 프로그래밍: 클래스, 객체, 생성자 및 static/final

객체지향 프로그래밍(OOP)은 프로그램의 요소들을 객체(Object) 단위로 모델링하여 유지보수성과 재사용성을 높이는 소프트웨어 설계 기술입니다.


1. 객체지향 기초 용어 사전 (Glossary)


2. 캡슐화 및 static/final 필드가 적용된 클래스 설계 예제

public class BankAccount {
    // 1. static 상수 (은행 이름 공통 공유)
    public static final String BANK_NAME = "DAVHAVE BANK";
    
    // 2. private 필드 캡슐화 (정보 은닉)
    private String accountNumber;
    private String owner;
    private int balance;

    // 3. 생성자 오버로딩 (Constructor Overloading)
    public BankAccount(String accountNumber, String owner) {
        this(accountNumber, owner, 0); // 다른 생성자 호출
    }

    public BankAccount(String accountNumber, String owner, int balance) {
        this.accountNumber = accountNumber;
        this.owner = owner;
        this.balance = balance;
    }

    // 4. 입금/출금 메소드
    public void deposit(int amount) {
        this.balance += amount;
        System.out.println(owner + "님 계좌에 " + amount + "원 입금 완료.");
    }

    public int getBalance() {
        return balance;
    }
}

3. 자주 묻는 질문 (Q&A)

Q. static 메소드 안에서 일반 인스턴스 변수(this.name)를 직접 부를 수 없나요? A. 부를 수 없습니다! static 메소드는 객체가 new 생성되기 전 클래스 로딩 시점에 먼저 메모리에 올라가기 때문에, 아직 객체가 생기지 않았을 수도 있는 인스턴스 멤버에 직접 접근하는 것이 불가능합니다.

← 이전제어문과 반복문 및 배열(Array)과 예외 처리 다음 →상속(Inheritance), 다형성, 추상 클래스 및 인터페이스