본문 바로가기
[자바]

[Java] - 인스턴스와 this 정리 - CodeRecorder

by CodeRecorder 2022. 9. 25.
반응형

 

인스턴스란 ? (객체) 

  = new 연산자로 클래스 호출한것! 

// 여러개 호출가능, 

Car myCar1  = new Car(); 

Car myCar2  = new Car(); 

Car myCar3  = new Car(); 

Car myCar4  = new Car(); 

이렇게 만들면 내용은 같으나 서로 다 따로인 4개의 객체(인스턴스가) 가 만들어진거임 

 

// 인스턴스 맴버란 

(객체) 인스턴스 마다 가지고있는 필드와 메소드를 말하고 

인스턴스 맴버는 객체에 소속된 맴버이기 때문에 객체가 없이는 사용할수없다 ! 

 

this는 객체(인스턴스) 자신의 참조(번지를) 가지고있는 키워드이다 ! 

 

주로 매개변수와 필드명이 동일할 경우 인스턴스 필드임을 명확히 하기위해 붙인다 ! 

 

this 는 heap 의 공간에 있고 자기 자신의 주소를 가지고있다! 

 

 

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
32
33
34
35
package ch06.sec07_01;
 
public class Car {
    //필드 선언
    String company = "H자동차";
    String model;//null,String model은 필드(global변수)
    String color;//null
    int maxSpeed;//0
    
    //생성자
    public Car() {    }
    public Car(String model) {//String model은 local변수
        this.model = model;
        // 여기서 this.model  =  위에 필드값을 말하는거고 
        // = 오른쪽에 있는 model 은 매개변수로  
        // Car 를 호출할때 집어 넣어주는 매개변수이다!
        // 그래서 this 는 매개변수와 , 필드의 이름이 같을때 구분하려고 쓰인다 ! 
    }
    public Car(String model, String color) {
        this.model = model;
        this.color = color;
    }
    public Car(String model, String color, int maxSpeed) {
        this.model = model;
        this.color = color;
        this.maxSpeed = maxSpeed;
    }
    
    @Override//컴파일러가 이해하는 주석
    public String toString() {
        return "Car [company=" + company + ", model=" + model + ", color=" + color + ", maxSpeed=" + maxSpeed + "]";
    }
    
    
}
cs

 

반응형

댓글