Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

인스턴스 생성과 사용 본문

Java/객체지향

인스턴스 생성과 사용

빌드이너프 2023. 5. 21. 18:51

클래스 작성(설계도)

class Tv {
	String color;
    boolean power;
    int channel;
    
    void power() {
    	power = !power;
    }
    
    void channelUp() {
    	channel++;
    }
    
    void channelDown() {
    	channel--;
    }
}

 

객체의 생성(제품 생성)

객체를 다루기 위해 참조변수가 필요하고, 객체를 생성한 후 참조변수와 객체를 연결해 줘야 한다

클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수 선언
변수명 = new 클래스명(); // 클래스의 객체의 생성 후, 객체의 주소를 참조변수에 저장

Tv t; // Tv 클래스 타입의 참조변수 t를 선언
t = new Tv(); // Tv 인스턴스를 생성한 후, 생성된 Tv 인스턴스의 주소를 t에 저장

Tv t = new Tv(); // 위 두 문장을 하나로 합침

 

객체의 사용(제품 사용)

객체가 가지고 있는 변수와 메서드를 사용

t.channel = 7; // Tv 인스턴스의 멤버변수 channel의 값을 7로 한다
t.channelDown(); // Tv 인스턴스의 메서드 channelDown()을 호출한다
System.out.println("현재 채널은 " + t.channel + " 입니다.");

 

객체 1개

class Tv {
    // Tv의 속성(멤버 변수)
    String color;
    boolean power;
    int channel;

    // Tv의 기능(메서드)
    void power() {power = !power;}

    void channelUp() {channel++;}

    void channelDown() {channel--;}
}

class Tvtest {
    public static void main(String[] args) {
        // Tv t = new Tv();
        Tv t;
        t = new Tv();
        t.channel = 7;
        t.channelDown();
        System.out.println(t.channel);
    }
}


6

 

 

 

 

객체 2개

class Tv {
    // Tv의 속성(멤버 변수)
    String color;
    boolean power;
    int channel;

    // Tv의 기능(메서드)
    void power() {power = !power;}

    void channelUp() {channel++;}

    void channelDown() {channel--;}
}

class Tvtest {
    public static void main(String[] args) {
        Tv t1 = new Tv();
        Tv t2 = new Tv();
        System.out.println(t1.channel); // 0
        System.out.println(t2.channel); // 0

        t1.channel = 7;

        System.out.println(t1.channel); // 7
        System.out.println(t2.channel); // 0
    }
}

0
0
7
0

channel 값을 7로 변경

t1.channel = 7;

 

 

참조변수 t1의 값을 t2에 저장(t2 = t1;)

원래 사용하던 t2의 객체는 Garbage Collection(가비지 컬렉션)이 제거해준다

class Tv {
    // Tv의 속성(멤버 변수)
    String color;
    boolean power;
    int channel;

    // Tv의 기능(메서드)
    void power() {power = !power;}

    void channelUp() {channel++;}

    void channelDown() {channel--;}
}

class Tvtest {
    public static void main(String[] args) {
        Tv t1 = new Tv();
        Tv t2 = new Tv();
        System.out.println(t1.channel); // 0
        System.out.println(t2.channel); // 0

        t1.channel = 7;

        t2 = t1; // 참조변수 t1의 값을 t2에 저장

        System.out.println(t1.channel); // 7
        System.out.println(t2.channel); // 7
    }
}

0
0
7
7

 

 

'Java > 객체지향' 카테고리의 다른 글

선언 위치에 따른 변수의 종류  (0) 2023.05.23
클래스의 정의  (0) 2023.05.22
객체 배열  (0) 2023.05.22
클래스와 객체와 instance  (0) 2023.05.21
객체지향언어  (0) 2023.05.20