this

  • 자기 자신의 메모리를 카리킴(this를 리턴하면 주소값 출력 = 인스턴스와 this 가 동일)
MyDate mydate = new MyDate();

public MyDate(int day){
	this.day = day;
}

>>> this.day = mydate.day 역할을 한다
  • 생성자 오버로딩 : 다른 생성자를 생성 이 전에 해당 생성자의 다른 메소드 호출, 변수 초기화 등은 불가능. this 로 생성자 오버로딩 이후에는 가능
public Person() {
  this("이름없음", "주소없음");
}
  • 자기 자신을 반환할 때
public Person showResult(){
    return this;
}
>>> 인스턴스와 동일한 역할로, 주소값 반환

static

다양한 인스턴스가 공유할 변수의 타입 (↔ 인스턴스 변수 : 인스턴스 별 가지고 있는 변수)

  • 객체 생성할 필요 없이 사용 가능
  • 인스턴스 생성과 상관 없이 클래스가 메모리에 로드될 때 생성
  • static 메소드에서는 인스턴스 변수를 사용할 수 없다(인스턴스 변수는 객체가 생성될 때 생성되기 때문)
package staticex;

public class Card {
    static int serialNum = 1000;
    int cardNumber;

    public Card() {
        serialNum++;
        cardNumber = serialNum;
    }
}
package staticex;

public class CardTest {
    public static void main(String[] args) {

        System.out.println(Card.serialNum);

        Card cardLee = new Card();
        System.out.println(cardLee.cardNumber);

        Card cardKim = new Card();
        System.out.println(cardKim .cardNumber);

        System.out.println(cardLee.serialNum);
        System.out.println(cardKim.serialNum);
    }
}

 

'JAVA' 카테고리의 다른 글

Array, ArrayList  (0) 2022.11.26
객체지향-생성자, 접근제어자  (0) 2022.11.26
클래스, 인스턴스  (0) 2022.11.26
자바프로그래밍 시작하기  (0) 2022.11.26

+ Recent posts