// education

객체지향 프로그래밍 기초: 클래스, 객체, 메소드

객체지향 프로그래밍(Object-Oriented Programming)은 현실 세계의 사물과 행동을 **객체(Object)**라는 단위로 모델링하여 프로그램을 만드는 소프트웨어 패러다임입니다.


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


2. 접근 제어자(Access Modifier) 허용 범위 비교

접근 제어자 같은 클래스 같은 패키지 자식 클래스 (다른 패키지) 전체 공개
private
(default)
protected
public

3. 캡슐화가 적용된 자바 클래스 설계 예제

public class Student {
    // 1. private 필드 정보 은닉
    private String name;
    private int studentId;
    private int score;

    // 2. 생성자 (Constructor)
    public Student(String name, int studentId, int score) {
        this.name = name;
        this.studentId = studentId;
        setScore(score); // 검증 로직이 포함된 Setter 호출
    }

    // 3. Getter / Setter 메소드
    public String getName() { return name; }
    public int getScore() { return score; }

    public void setScore(int score) {
        if (score < 0 || score > 100) {
            System.out.println("잘못된 점수 범위입니다. 0점으로 설정합니다.");
            this.score = 0;
        } else {
            this.score = score;
        }
    }

    public void printInfo() {
        System.out.println("학번: " + studentId + " | 이름: " + name + " | 성적: " + score + "점");
    }
}

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

Q. this 키워드는 언제 사용하나요? A. 메소드나 생성자의 매개변수 이름과 클래스의 필드(멤버 변수) 이름이 동일할 때, 자기 자신 객체의 인스턴스 필드임을 명확히 구별 지어 지정하기 위해 사용합니다. (this.name = name;)

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