class

2023. 1. 26. 16:20ㆍjava

ν΄λž˜μŠ€μ™€ 객체의 의미λ₯Ό 잘 μ•Œμ•„μ•Ό 함!

 

ex) μžλ°”λ‘œ μžλ™μ°¨λ₯Ό λ§Œλ“ λ‹€κ³  μƒκ°ν•˜μž.

μžλ°”λŠ” λΆ€ν’ˆλ“€μ„ λ¨Όμ € λ§Œλ“€μ–΄ 놓고 λΆ€ν’ˆλ“€μ„ κ°€μ Έμ™€μ„œ μžλ™μ°¨λ‘œ λ§Œλ“ λ‹€.

λΆ€ν’ˆμ„ λ§Œλ“€κΈ° μœ„ν•œ 타이어(λΆ€ν’ˆ)의 섀계도λ₯Ό 클래슀라고 μƒκ°ν•˜κ³ 

(클래슀λ₯Ό ν•˜λ‚˜ λ§Œλ“€μ–΄λ‘λ©΄ κ·Έ 클래슀λ₯Ό μ΄μš©ν•˜μ—¬ 객체 ν•„μš”ν•œ 만큼 λ§Œλ“€ 수 μžˆλ‹€.)

κ·Έ λΆ€ν’ˆλ“€λ‘œ λ§Œλ“  μžλ™μ°¨λ₯Ό 객체라고 이해 ν•˜μž.

 

β˜…β˜… 객체 = 섀계도λ₯Ό 톡해 λ‚˜μ˜¨ 싀체 

κ°μ²΄λŠ” 데이터와 κΈ°λŠ₯을 λ³€μˆ˜μ™€ λ©”μ†Œλ“œλ‘œ κ΅¬ν˜„ν•œ 것.

 

β˜…β˜… ν΄λž˜μŠ€λŠ” (μ‚¬μš©μž μ •μ˜) μžλ£Œν˜•μ΄λ‹€.

클래슀λͺ… λŒ€λ¬Έμžλ‘œ!!  νŒ¨ν‚€μ§€κ°€ λ‹€λ₯΄λ©΄ 클래슀λͺ… 쀑볡 κ°€λŠ₯

car;   >  λ³€μˆ˜λͺ…

car();  >  λ©”μ†Œλ“œ

Car;   >  클래슀

 

class(섀계도)λ₯Ό κ΅¬μ„±ν•˜λŠ” μš”μ†Œ.

1.λ³€μˆ˜

2.λ©”μ†Œλ“œμ˜ μ„ μ–Έ

3.μƒμ„±μž

 

μ—°μŠ΅

μžλ™μ°¨λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ class(섀계도)

public class Car {
    //데이터인 μ°¨λŸ‰λͺ…, μ œμ‘°μ‚¬, 가격 >> λ³€μˆ˜(의미 λΆ€μ—¬ν•˜κΈ°)둜
    String carName;  //λ©€λ²„λ³€μˆ˜, ν•„λ“œ (λ©”μΈλ©”μ†Œλ“œ 밖에 μžˆλŠ” λ³€μˆ˜λ₯Ό λΆ€λ₯΄λŠ” 말)
    String brand;
    int price;

    //μ‹œλ™ μΌœλŠ” κΈ°λŠ₯, μ „μ§„ κΈ°λŠ₯, 멈좀 κΈ°λŠ₯ >> λ©”μ†Œλ“œλ‘œ
    public void powerOn() {  //static이 λΉ μ§€λŠ” 이유 : 메인 λ©”μ†Œλ“œμ—μ„œ μ‚¬μš© μ•ˆν•΄μ„œ
        System.out.println("μ‹œλ™μ„ μΌ­λ‹ˆλ‹€.");
    }
    public void moveCar() {
        System.out.println("μ „μ§„ν•©λ‹ˆλ‹€.");
    }
    public void stopCar() {
        System.out.println("멈μΆ₯λ‹ˆλ‹€.");
    }

}

메인 λ©”μ†Œλ“œκ°€ μ—†κΈ° λ•Œλ¬Έμ— μ‹€ν–‰ μ•ˆ λ¨!

 

λ³€μˆ˜μ˜ μ’…λ₯˜

λ©€λ²„λ³€μˆ˜(=ν•„λ“œ,속성(μ–΄νŠΈλ¦¬λ·°νŠΈ)) : 클래슀 μ•ˆμ—μ„œ μ„ μ–Έλœ λ³€μˆ˜, *μ΄ˆκΈ°ν™” ν•˜μ§€ μ•Šμ•„λ„ μ‚¬μš© κ°€λŠ₯

int λ©€λ²„λ³€μˆ˜ > μ΄ˆκΈ°ν™” ν•˜μ§€ μ•ŠμœΌλ©΄ κΈ°λ³Έκ°’ 0 double > 0.0 

μ§€μ—­λ³€μˆ˜ : λ©”μ†Œλ“œ μ•ˆμ—μ„œ μ„ μ–Έλœ λ³€μˆ˜,  *μ΄ˆκΈ°ν™” ν•„μˆ˜

λ§€κ°œλ³€μˆ˜ (μ§€μ—­λ³€μˆ˜μ˜ μΌμ’…μž„)

 

 

클래슀λ₯Ό κ°€μ§€κ³  객체λ₯Ό λ§Œλ“€μ–΄λ³΄μž.

객체 μ„ μ–Έ 문법 :

classλͺ… 객체λͺ…;
Car car1;

μ„ μ–Έν•œ 객체λ₯Ό 생성

객체 생성 문법 :

클래슀λͺ… 객체λͺ… = new 클래슀λͺ…();
car1 = new Car();

생성과 μ„ μ–Έ λ™μ‹œμ— κ°€λŠ₯

Car car2 = new Car();

car2 μ°¨λŸ‰μ˜ μ°¨λŸ‰λͺ… 좜λ ₯

객체가 κ°€μ§„ λ³€μˆ˜ ν˜Ήμ€ λ©”μ†Œλ“œ 접근법

문법 : 

객체λͺ….λ³€μˆ˜λͺ…,   객체λͺ….λ©”μ†Œλ“œλͺ…
System.out.println(car2.carName);

 car2의 가격을 1000μ›μœΌλ‘œ λ³€κ²½ν•˜λŠ” μ½”λ“œλ₯Ό λ§Œλ“€μ–΄λ³΄μž.

car2.price = 1000;
        System.out.println(car2.price);

 λ©”μ†Œλ“œλ„ μœ„μ™€ λ§ˆμ°¬κ°€μ§€λ‘œ κ°€λŠ₯함.

public class CarTest2 {
    public static void main(String[] args) {
        //car1 car2λΌλŠ” Car ν΄λž˜μŠ€μ— λŒ€ν•œ 객체 λ‘κ°œλ₯Ό 생성.
        Car car1 = new Car();
        Car car2 = new Car();

        car1.brand = "ν˜„λŒ€";
        System.out.println(car2.brand);  //null λ‚˜μ˜΄
        //객체끼리의 데이터 곡유X

    }
}

 

μ—°μŠ΅

μ‚¬λžŒμ΄λΌλŠ” 객체λ₯Ό λ§Œλ“€μ–΄λ³΄μž.

//μ‚¬λžŒμ€ 이름, λ‚˜μ΄, μ£Όμ†Œ 데이터λ₯Ό 가짐.
public class Person {
    String name;
    int age;
    String add;

    //λ§€κ°œλ³€μˆ˜λ‘œ λ“€μ–΄μ˜¨ κ°’μœΌλ‘œ 이름을 λ³€κ²½ν•˜λŠ” λ©”μ†Œλ“œ
    public void setName(String name1) {
        name = name1;

        }
    //λ§€κ°œλ³€μˆ˜λ‘œ λ“€μ–΄μ˜¨ κ°’μœΌλ‘œ λ‚˜μ΄λ₯Ό λ³€κ²½ν•˜λŠ” λ©”μ†Œλ“œ
    public void setAge(int age1) {
        age = age1;

    }
    //이름, λ‚˜μ΄, μ£Όμ†Œ 정보λ₯Ό λͺ¨λ‘ 좜λ ₯ν•˜λŠ” λ©”μ†Œλ“œ
    public void printPersonInfo() {
        System.out.println("이름 : " + name);
        System.out.println("λ‚˜μ΄ : " + age);
        System.out.println("μ£Όμ†Œ : " + add);
    }
}
public class PersonTest {
    public static void main(String[] args) {
        //Person ν΄λž˜μŠ€μ— λŒ€ν•œ 객체 p1 생성
        Person p1 = new Person();

        //p1의 이름, λ‚˜μ΄ 값을 λ³€κ²½
        p1.name = "홍길동";  //λ³€μˆ˜μ— μ§μ ‘μ μœΌλ‘œ μ ‘κ·Ό
        p1.age = 20;

        //p1 객체의 λͺ¨λ“  정보 좜λ ₯
        System.out.println("이름 : " + p1.name);
        System.out.println("λ‚˜μ΄ : " + p1.age);
        System.out.println("μ£Όμ†Œ : " + p1.add);

        System.out.println();

        //Person ν΄λž˜μŠ€μ— λŒ€ν•œ 객체 p2 생성
        //new : μƒˆλ‘œμš΄ 객체λ₯Ό μƒμ„±ν•΄μ£Όμ„Έμš”.
        Person p2 = new Person();

        //p2 객체의 이름, λ‚˜μ΄λ₯Ό λ³€κ²½
        p2.setName("김길동"); //이름을 λ°”κΏ€ 수 μžˆλŠ” λ©”μ†Œλ“œλ₯Ό λ§Œλ“€μ–΄μ„œ μ ‘κ·Ό
        p2.setAge(20);

        //p2 객체의 λͺ¨λ“  정보 좜λ ₯
        p2.printPersonInfo();  //λ©”μ†Œλ“œ λ§Œλ“€μ–΄μ„œ 호좜
    }
}