1/28 클래스 변수와 인스턴스 변수

이 글은 2019년 홍익대학교 자바 겨울 특강 수업을 메모한 것이다.

당시에는 에버노트에 메모해놨었기 때문에,

티스토리 블로그를 시작하면서 백업해둔다.


 

package chapter6;
class car {
    //인스턴스 변수
    //객체가 할당되어서 활성화 된다 = 인스턴스화된다
    int speed;
    
    //class 변수
    //객체의 사용과 무관함
    //mmorpg에서 기본 스탯의 수치라고 생각하면 됨. 힐캐한테 전체힐링 받으면 팟인원 전부 hp +20되는
    static int wheel = 4;
    static int door = 4;
    
    //인스턴스 변수
    String carname;
}
public class var_class_instance {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        //class variable 객체생성을 않고도 클래스에 있는 걸 막 끌어다 쓸 수 다. 이미 클래스 자체가 메모리를 가지고 있기 때문
        System.out.println(car.wheel);
        System.out.println(car.door);
        //System.out.println(car.speed);
        
        //instance variable
        car mycar = new car(); //객체 생성
        mycar.speed = 10;
        mycar.carname = "sorento";
        
        car yourcar = new car();
        yourcar.speed = 20;
        yourcar.carname = "BMW";
        
        System.out.println(mycar.carname + "의 속도는 " + mycar.speed + "이고 문과 바퀴의 수는 :"
        + mycar.wheel + "," + mycar.door);
        System.out.println(yourcar.carname + "의 속도는 " + yourcar.speed + "이고 문과 바퀴의 수는 :"
                + yourcar.wheel + "," + yourcar.door);
        
        mycar.wheel = 8; //mycar의 wheel이 바뀌는 게 아니라 class car에 있는 wheel이 바뀌게 되는 것
        yourcar.door = 8; //yourcar의 door이 바뀌는 게 아니라 class door에 있는 wheel이 바뀌게 되는 것
        
        System.out.println(mycar.carname + "의 속도는 " + mycar.speed + "이고 문과 바퀴의 수는 :"
                + mycar.wheel + "," + mycar.door);
        System.out.println(yourcar.carname + "의 속도는 " + yourcar.speed + "이고 문과 바퀴의 수는 :"
                + yourcar.wheel + "," + yourcar.door);
        
        System.out.println(car.wheel);
        System.out.println(car.door);
    }
}

'┝ 개발 언어 > ┎ JAVA' 카테고리의 다른 글

1/28 상속  (0) 2022.03.01
1/30 접근제어자 private  (0) 2022.03.01
1/28 oop_this  (0) 2022.03.01
1/28 오버로딩  (0) 2022.03.01
1/28 생성자 파라미터 아규먼트  (0) 2022.03.01