1. 객체지향의 주요 특성.
1) 추상화 (Abstraction)
2) 캡슐화 (Encapsulation)
3) 상속화 (Inheritance)
- 자바는 단일 상속으로 1개의 상위 클래스로부터 상속받을 수 있다. (역학 조사로 Maintanance에 좋지만 현실적으로 단일 상속을 사용하지 않는다. extends는 한번 사용하지만, 인터페이스(가상클래스)를 활용한다.)
|
C++ |
Java |
C# |
부모 |
Base |
Super |
base |
표현 |
: |
extends |
|
자식 |
Derived 다중상속 |
sub 단일상속 |
|
- TwoD extends ThreeD : 생성자로 TwoD를 생성할때 먼저 부모클래스인 ThreeD를 메모리 heap에 올린다.
- 자식 주소로 부모를 접근하면 상속, 부모 주소로 자식을 접근하면 다형성 이다.
- class와 class, interface와 interface 간에는 extends, class와 inteface는 implements(동종간에는 extends,이종간에는 implements)
- 관계
i) "is a" : ex) 오토바이 -> 탈것
ii) "has a" ex) 주방 -> 냉장고
- 상속이 되지 않는 것.
i) private 선언 된 것은 상속되지않는다.
ii) static 역시 상속되지 않는다.
iii) 생성자는 상속되지 않는다.
- 자식이 부모를 생성하려면 this메소드와 같은 형식의 super()를 사용한다. (마찬가지로 첫줄에 쓴다)
iV) Overshadow 변수(클래스 변수와 같은 이름의 변수를 사용), Override 메소드 는 상속되지않는다. 자식 것을 쓴다.
- super()를 사용하여 해결 할 수 있다.
- String 형은 자체적으로 static 이기 때문에 this()나 super()이용해 접근할 수 없다.
4) 다형성 (Polymorphism)
ps.----------------------------------------------------------------------------------------
- Object는 모든 객체들의 필수 요소의 집합이다. (원형이다.)
- 객체 비교에 대하여
1. ==, !=
1) value type -> 값비교, (su==num)
2) Reference type -> 주소비교
3) String type --> 값비교(new 없을 때), 주소비교(new 사용) //보통 String은 equals()를 사용한다.
2. equals()
1) value type --> 해당없음 (su.equals(num))
2) Reference type --> 주소비교
3) String type --> new와 관계없이 값비교
1. ==, !=
1) value type -> 값비교, (su==num)
2) Reference type -> 주소비교
3) String type --> 값비교(new 없을 때), 주소비교(new 사용) //보통 String은 equals()를 사용한다.
2. equals()
1) value type --> 해당없음 (su.equals(num))
2) Reference type --> 주소비교
3) String type --> new와 관계없이 값비교
'Programming > JAVA' 카테고리의 다른 글
자바 객체지향의 특징4 (Abstract, Interface, Package) (0) | 2011.03.24 |
---|---|
자바 객체지향의 특징3 (다형성,Overriding) (0) | 2011.03.24 |
자바 객체지향의 특징 1(캡슐화,생성자,this) (4) | 2011.03.24 |
자바 메소드(method) (3) | 2011.03.24 |
자바 배열이란? (2) | 2011.03.24 |