관리 메뉴

ruriruriya

[Java] μžλ°” 클래슀, 객체, μΈμŠ€ν„΄μŠ€μ˜ κ°œλ… λ³Έλ¬Έ

πŸͺJava

[Java] μžλ°” 클래슀, 객체, μΈμŠ€ν„΄μŠ€μ˜ κ°œλ…

루리야ㅑ 2024. 2. 22. 09:53
λ°˜μ‘ν˜•

μžλ°”(Java)μ—μ„œ 클래슀(Class)λŠ” 객체(Object)λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•œ ν‹€ λ˜λŠ” 섀계도닀.

ν΄λž˜μŠ€λŠ” 객체가 κ°€μ Έμ•Ό ν•  속성(Attribute)κ³Ό λ©”μ„œλ“œ(Method)λ₯Ό μ •μ˜ν•œλ‹€.
속성은 객체의 μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λ©°, λ©”μ„œλ“œλŠ” 객체가 μˆ˜ν–‰ν•  수 μžˆλŠ” λ™μž‘μ„ μ •μ˜ν•œλ‹€.
μ΄λŸ¬ν•œ 클래슀의 μ •μ˜λ₯Ό λ°”νƒ•μœΌλ‘œ μ‹€μ œλ‘œ λ©”λͺ¨λ¦¬μ— ν• λ‹Ήλ˜μ–΄ μ‚¬μš©λ  λ•Œ 그것이 객체이닀.


예λ₯Ό λ“€μ–΄, μžλ™μ°¨λ₯Ό 클래슀둜 λΉ„μœ ν•΄λ³΄μž.
μžλ™μ°¨ ν΄λž˜μŠ€λŠ” λΈŒλžœλ“œ, 색상, 속도 λ“±κ³Ό 같은 속성을 가지며 μ£Όν–‰, 멈좀, 속도 λ³€κ²½ λ“±κ³Ό 같은 λ©”μ„œλ“œλ₯Ό κ°€μ§ˆ 수 μžˆλ‹€.

이 클래슀λ₯Ό λ°”νƒ•μœΌλ‘œ μƒμ„±λœ μ‹€μ œ μžλ™μ°¨ 객체듀은 각각 λ‹€λ₯Έ λΈŒλžœλ“œ, 색상, 속도λ₯Ό κ°€μ§€κ²Œ λœλ‹€.


그리고 객체(Object)와 μΈμŠ€ν„΄μŠ€(Instance)의 μ°¨μ΄λŠ” 맀우 λ―Έλ¬˜ν•˜μ§€λ§Œ, κ°μ²΄λŠ” 클래슀의 μΈμŠ€ν„΄μŠ€μ΄λ‹€.
κ°μ²΄λŠ” ν΄λž˜μŠ€μ—μ„œ μƒμ„±λœ μ‹€μ²΄ν™”λœ(Instance) 개체λ₯Ό μ˜λ―Έν•˜λ©°,
각각의 κ°μ²΄λŠ” 독립적인 λ©”λͺ¨λ¦¬ 곡간을 가지고 μžˆλ‹€.
μ΄λŸ¬ν•œ 객체 쀑 νŠΉμ •ν•œ 객체λ₯Ό ν•΄λ‹Ή 클래슀의 μΈμŠ€ν„΄μŠ€λΌκ³  ν•œλ‹€.

 

// μžλ™μ°¨ 클래슀 μ •μ˜
public class Car {
    // 속성(멀버 λ³€μˆ˜)
    String brand;
    String color;
    int speed;

    // λ©”μ„œλ“œ
    public void accelerate() {
        speed += 10;
    }

    public void brake() {
        speed -= 10;
    }

    public void display() {
        System.out.println("λΈŒλžœλ“œ: " + brand + ", 색상: " + color + ", 속도: " + speed);
    }
}

// 메인 클래슀
public class Main {
    public static void main(String[] args) {
        // Car 클래슀의 객체 생성
        Car car1 = new Car();
        Car car2 = new Car();

        // 객체의 속성 μ„€μ •
        car1.brand = "Toyota";
        car1.color = "Red";
        car1.speed = 60;

        car2.brand = "BMW";
        car2.color = "Blue";
        car2.speed = 80;

        // 객체의 λ©”μ„œλ“œ 호좜
        car1.accelerate();
        car2.brake();

        // 객체의 μƒνƒœ 좜λ ₯
        car1.display(); // λΈŒλžœλ“œ: Toyota, 색상: Red, 속도: 70
        car2.display(); // λΈŒλžœλ“œ: BMW, 색상: Blue, 속도: 70
    }
}

 

μœ„μ˜ μ½”λ“œμ—μ„œ Car 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ car1κ³Ό car2λΌλŠ” 객체λ₯Ό μƒμ„±ν•˜κ³ ,
이 κ°μ²΄λ“€μ˜ 속성을 μ„€μ •ν•˜κ³  λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•œ ν›„ μƒνƒœλ₯Ό 좜λ ₯ν•˜κ³  μžˆλ‹€.

μ΄λ•Œ car1κ³Ό car2λŠ” Car 클래슀의 μΈμŠ€ν„΄μŠ€μ΄λ‹€.

ν΄λž˜μŠ€μ—μ„œ μƒμ„±λœ μ‹€μ²΄ν™”λœ κ²ƒμ΄λ―€λ‘œ 이듀은 λͺ¨λ‘ 클래슀의 객체이닀.
ν•˜μ§€λ§Œ "μΈμŠ€ν„΄μŠ€"λΌλŠ” μš©μ–΄λŠ” 이듀을 νŠΉμ • 클래슀의 μ˜ˆμ‹œλ‘œ 가리킬 λ•Œ μ‚¬μš©λœλ‹€.

λ°˜μ‘ν˜•