반응형
Backend/java2018. 8. 9. 18:57클래스간의 관계결정하기 ( 상속 Vs 포함 )

클래스간의 관계결정하기 – 상속 Vs 포함 정의 : 가능한 한 많은 관계를 맺어주어 재사용성을 높이고 관리하기 쉽게 한다. Is – a 와 has – a 를 가지고 문장을 만들어 본다.원은 점이다 – Circle in a Point 원은 점을 가지고 있다 . – Circle has a Point 상속관계 : ~은 ~이다 ( is – a ) 포함관계 : ~은 ~을 가지고 있다 ( has – a ) 클래스를 정의할 때... 관련된 클래스들은 최대한 관계를 많이 맺어주어서 재사용성을 높여야 합니다. 클래스간의 관계를 상속으로 할 것인지 포함으로 할 것인지 결정하는 것이 아직은 쉽지 않으실 텐데요. 가장 간단한 방법은 ‘is-a’와 ‘has-a’를 가지고 문장을 만들어보는 것입니다. 그럼, 앞서 나온 Circl..

Backend/java2018. 8. 9. 18:25상속의 정의와 장점 ( 자세히 )

상속의 정의와 장점1.상속이란 ?? ㄱ.기존의 클래스를 재사용해서 새로운 클래스를 작성하는 것ㄴ.두 클래스를 조상과 자손으로 관계를 맺어주는 것ㄷ.자손은 조상의 모든 멤버를 상속받는다. ( 생성자 , 초기화블럭은 제외)ㄹ.자손의 멤버개수는 조상보다 적을 수 없다.( 같거나 or 많다 )ㅁ.형태 : class 자손클래스 extends 조상클래스 {// …}Ex ) class Point { // 부모Int x ;Int y;} class Point3D{ //자식Int x;Int y;Int z;} Class Point3D extends Point{Int z;}간단히 얘기해서... 상속은 클래스를 정의할 때 기존의 클래스를 이용하는 것입니다. 기존의 클래스를 재사용해서 새로운 클래스를 만드는 것이지요. 상속을 통..

Backend/java2018. 8. 8. 19:54예제를 통한 상속의 이해5

package day08;public class fishTest {public static void main(String[] args) {Animal d = new Dog("진돗개","쫑쫑");//Is a 관계 System.out.println(d instanceof Dog); // Dog클래스의 인스턴스인지 확인 여부를 판별if(d instanceof Dog) // 만약에 Dog클래스의 인스턴스가 d가 맞다면 . {((Dog)d).Print();}d.breath();((Dog)d).Print();((Fish)d).print(); // 이 부분은 컴파일이 못잡아 준다 . 현재 상태는 Animal 과 Dog가 있는데 ..Animal f = new Fish("레몬씨"); // 파라미터 한개짜리가 넘어가기 떄..

Backend/java2018. 8. 8. 19:50예제를 통한 상속의 이해 (Main 클래스 , Animal )

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..

Backend/java2018. 8. 8. 19:47예제를 통한 상속의 이해4

package day08;public class Fish extends Animal { // extends 한 순간 다 물려받은 것이다. // if class Fish에서 오류가 난다면 상속받은 Animal에서 기본 생성자를 지웠거나 , default생성자를 안만들었을 경우 String name;public Fish() { super("물고기과");// 직접 선언해 주는 이유는 안해주게 되면 동물의 종류가 선언되기 때문에} public Fish(String name) { // name에 대한 파라미터값을 만든 것. //super(); 자동 생성이기 때문에 super("물고기과"); // 직접 선언해 주는 이유는 안해주게 되면 동물의 종류가 선언되기 때문에 this.name = name;}public vo..

Backend/java2018. 8. 8. 19:45예제를 통한 상속의 이해3

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();}}

반응형
image