package day08;public class DogTest2 {public static void main(String[] args) {/*Animal a = new Animal();System.out.println(a.kind);Animal a1 = new Animal("늑대");System.out.println(a1.kind);// kind 가 변하는 단계를 확인할 수 있다. */Dog d = new Dog(); // Default d.Print();Dog d2 = new Dog("진돗개","쫑쫑"); // Parameter로 d2.Print();Dog d3 = new Dog("진돗개2","진돗개3","진돗개4");d3.Print();}}
package day08;public class DogTest {public static void main(String[] args) {/*// TODO Auto-generated method stub/*Animal a =new Animal();System.out.println(a.kind);a.breath();Dog d = new Dog();//System.out.println(d.super.kind); // Static 이라는 곳에는 super자체를 쓸 수가 없다.System.out.println(d.kind);System.out.println(d.name);d.Print(); d.breath();Animal d2 = d ; // Is a 관계와 똑같은 형태인데 다른 모습 */Dog d =new Do..
package day08;public class Animal {String kind = "동물의 종류"; // 동물의 종류가 나오기전에 임시적으로 null값으로 선언되어 있다.public Animal() { // 기본 생성자의 형태 super 생략된 형태System.out.println("Animal() call");}public Animal(String kind) { // Super 생략된 형태this.kind = kind;}public void breath() // 메소드의 선언부{System.out.println("폐로 숨쉬기.");}public void Print() {System.out.println("*** Animal ("+kind+"정보) ***"); }/* * public static v..
내가 프로젝트를 하면서 오버라이딩을 잘 설정 했는지 궁금할 때 @Override를 쓰게 되면 오버라이딩을 헷갈리지 않고 할 수 있게 도와준다 . 만약 내가 뭔가 잘못 설정을 했다면 오류 표시로 나타나게 해준다. 좋은거 같다.
상속 공부를 하면서 헷갈렸던 부분이고 용어로 이해를 하니까 너무 어려웠던 부분이 있다. 바로 This와 Super의 차이이다. 먼가 느낌적인 느낌으로 this는 같은 클래스 내에서 전역변수를 의미하고 Super는 상위 부모 클래스를 가르킨다 . 정도로 알고 있었다 . 틀린 말은 아니지만 코딩을 하면서 예매했다. 더 알게 된 점이 있는데 this는 this를 선언해준 클래스내에서 this를 해준 변수를 찾으면서 this를 선언해준 클래스 내에 없다면 상위 클래스로 찾으러 가고Super는 애초에 처음부터 상위 클래스 내애서 찾게 된다는 것이다. 엄청 대단한건 아니지만 그냥 알게된 사실이다.
생성자란?? 1. 정의 è 인스턴스가 생성될 때마다 호출되는 ‘ 인스턴스 초기화 메서드’ è 인스턴스 변수 초기화 or 인스턴스 생성시 수행할 작업에 사용 è 몇가지 조건을 제외하고는 메서드와 같다. è 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다. Ex ) Car c = new Card(); // 오른쪽은 메모리에 올라가게 될 정보 , 왼쪽 변수에 메모리에 올라가게된 정보를 저장 è 기본 생성사란 : 매개변수가 없는 생성자 , 클래스에는 반드시 하나 이상의 생성자가 있어야 한다 , 보통 초기화를 안해주기 때문에 내용이 없다. è 기본생성자가 없고 , 매개변수가 있는 생성자가 있을 때 기본생성자를 호출 하는 식이 있을 경우에 Compilation 오류가 난다. è 생성자에서 다른 생성자 호출..