IMG-LOGO
공지사항 :

자바 클래스(Class)

lmkfox - 2025-06-13 06:50:32 8 Views 0 Comment

1. 클래스란?

클래스는 객체의 상태(필드)와 동작(메서드)을 정의한 청사진입니다. 클래스는 객체를 만들기 위한 틀이며, 실제 실행 가능한 실체는 객체(인스턴스)입니다.


2. 클래스의 기본 구조

public class 클래스이름 {
    // 필드 (속성, 변수)
    타입 변수명;

    // 생성자 (객체 생성 시 호출되는 특별한 메서드)
    클래스이름() {
        // 초기화 코드
    }

    // 메서드 (행동)
    반환타입 메서드이름() {
        // 실행 코드
    }
}


3. 간단한 클래스 예제

예: 자동차(Car) 클래스 정의

public class Car {
    // 필드 (속성)
    String color;
    int speed;

    // 생성자
    Car(String c, int s) {
        color = c;
        speed = s;
    }

    // 메서드
    void drive() {
        System.out.println(color + " 자동차가 " + speed + "km/h로 달립니다.");
    }
}

메인 클래스에서 사용

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

        // 메서드 호출
        myCar.drive();  // 출력: 빨간 자동차가 120km/h로 달립니다.
    }
}


4. 접근 제어자

클래스의 멤버(필드, 메서드)는 접근 제어자로 외부에서의 접근을 제한할 수 있습니다.

접근 제어자

설명

public

어디서든 접근 가능

private

해당 클래스 내에서만 접근 가능

protected

같은 패키지 또는 상속 클래스에서 가능

(default)

같은 패키지에서만 접근 가능

예:

public class Person {
    private String name;

    public void setName(String n) {
        name = n;
    }

    public String getName() {
        return name;
    }
}


5. 상속 (Inheritance)

한 클래스가 다른 클래스를 확장할 수 있습니다.

class Animal {
    void sound() {
        System.out.println("동물이 소리를 냅니다.");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("멍멍!");
    }
}

// 사용
public class Main {
    public static void main(String[] args) {
        Dog d = new Dog();
        d.sound(); // 부모 메서드
        d.bark();  // 자식 메서드
    }
}


6. 정적 멤버 (

static

)

클래스 전체에서 공유되는 필드나 메서드

public class MathUtil {
    static int square(int x) {
        return x * x;
    }
}

// 사용
int result = MathUtil.square(5);  // 25


7. 클래스 간 관계

관계

설명

예제

상속

A extends B

Dog extends Animal

포함

클래스 안에 다른 클래스 포함

Car 안에 Engine 포함

인터페이스

다중 구현 가능 (implements)

Runnable, Comparable 등


댓글