반응형
우리가 흔히 자바에서 생성자 개념을 배울 때 이러한 사실이 되게 중요하게 강조된다.
1 . 인스턴스 생성의 마지막 단계는 생성자 호출이다.
2 . 어떠한 이유로든 생성자 호출이 생략된 인스턴스는 인스턴스가 아니다.
하지만 이 두가지 사실을 알게되면 의구심이 들 수 도 있다.
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 | class banka { int balance = 0; public int deposit(int a) { balance += a; return balance; } public int withdraw(int a) { balance -= a; return balance; } public int balancechek() { System.out.println("잔액 : " + balance); return balance; } } class df{ public static void main(String[] args) { //참조 변수가 지니고 있는 값을 다른 참조변수에 대입하는 방식(yoon이라는 참조변수 값을 kim이라는 참조변수에 대입)은 하나의 인스턴스를 두개의 참조변수가 참조한다고 생각하면 된다. banka yoon = new banka(); banka kim = yoon; yoon.deposit(10000); kim.deposit(20000); yoon.withdraw(5000); kim.withdraw(5000); yoon.balancechek(); kim.balancechek(); //결론적으로 말하면 a라는 인스턴스가 있으면 yoon이라는 참조변수와 kim이라는 참조변수 두개의 참조변수 모두 a라는 인스턴스를 참조하고 있는 형식이라고 보면 된다. } } | cs |
그럼 다음과 같이 생성자가 없이 선언된 인스턴스는 인스턴스가 아니라는 의미인가?? 라고 말이다. 다음과 같이 생성자가 생략된 형태의 클래스 경우에는 자바 컴파일러가 디폴트 생성자라는 것을 클래스 정의에 넣어준다. 여기서 디폴트 생성자는 어떠한 인자를 전달받지 않는 형태로 정의되어 삽입되며, 단지 생성자 호출이라는 규칙 유지를 위해서만 사용된다.
반응형
'Language > Java' 카테고리의 다른 글
접근 수준 지시자(Access-level Modifier) (0) | 2019.02.20 |
---|---|
정보 은닉(Information Hidding) (0) | 2019.02.20 |
Java long형 자료형에 대해서 (0) | 2019.02.15 |
Java의 정수형 자료형에 대해서 (0) | 2019.02.15 |
Java와 C의 차이점 - 1 (0) | 2019.02.15 |