레퍼런스
생성된 객체의 주소값을 변수에 담고있는 것을 레퍼런스라고 한다
클래스가 같다고해서 레퍼런스 주소값이 같지 않다
다른 공간에 존재하는 객체는 다른 객체이다
ChildClass child = new ChildClass(); // child가 레퍼런스
객체가 필요없어지면 Garbage Collector 가 제거함
객체와 레퍼런스를 끊어버리는 방법
레퍼런스에 null이 저장되면 객체의 연결이 끊기며 더이상 객체를 사용할 수 없다
child = null;
child.getInfo(); // NullPointerException
레퍼런스는 사라지지 않고 존재하기 때문에 다른 객체와 연결할 수 있다
다른 패키지에있는 클래스를 사용하고 싶을 때
-> import 다른 패키지.사용하고싶은 클래스;
-> import 다른 패키지.*; // 모든 클래스 사용
같은 패키지에 있는 클래스는 그냥 사용가능하다
어디서나 속성과 메소드를 공유할 수 있는 static 키워드
데이터 은닉
객체의 데이터를 외부로부터 변경되지 않게 보호하는 private
ex) 급여 담당자가 실수로 급여액을 잘못 입력하는 경우, 고유번호가 변경되는 경우, 변경 불가능한 id
-> 이것을 외부에서 변경할 수 있는 메소드가 setter, getter
사용하는 목적 : 조건을 걸 수 있어서 조건에 맞는 정보만 설정가능
public class No5_Getter$Setter_Speed {
// 필드, private 데이터은닉이지만 게터세터로 변경가능
private int speed;
private boolean stop; //초기값 false
// 디폴트생성자
// 메소드
// speed 게터세터
public int getSpeed() {
return speed;
}
// 사용 목적 : 조건을 걸 수 있음
public void setSpeed(int speed) {
if(speed <0) {
this.speed =0;
return;
} else {
this.speed = speed;
}
}
// stop 게터세터
public boolean isStop() {
return stop;
}
public void setStop(boolean stop) {
this.stop = stop;
this.speed =0;
}
}
'Java' 카테고리의 다른 글
[Java] 내부클래스, 익명클래스 (0) | 2021.07.27 |
---|---|
[Java] 상속 메소드 오버라이드, 자료형, super 클래스 (0) | 2021.07.24 |
[Java] 객체, 클래스, 오버로딩 (0) | 2021.07.24 |
[Java] String 다루기(1) (0) | 2021.07.22 |
Collection, Object, Generic의 관계 (0) | 2021.07.15 |