728x90
반응형
Wraper클래스 |
|||
기본 자료형을 클래스화(Boxing) 시켜놓은 자료형 숫자자료형 <> 문자자료형 변환시 클래스급으로 객체화. |
|||
기본자료형 > Wraper클래스 - Boxing, Uppercase | |||
↓ 묵시적(자동형변환), 업캐스팅 |
byte short int long float double char boolean |
Byte Short Integer Long Float Double Character Boolean |
↑ 다운캐스팅 다운캐스팅할 자식의 자료형이 있어야한다. |
Wraper클래스 >기본자료형 - UnBoxing, LowerCaseDownCase | |||
클래스간에 자동형변환은 되지 않기에 valueof 사용 | ex)Double ddd = Double.valueof(iii) | ||
자료형 <=>Wraper클래스간에는 자동형변환 됨 | Integer iiii = 5; int iii = iiii; |
||
char > Character (문자1개) 가능 |
|||
String 정수형숫자로 변환가능한 문자열이여야 한다. + 문자열이 더해지면 사용가능 " "+ i(int자료형) |
String s = "50"; |
||
상속(inheritance) |
||
부모에게 물려받은 것을 자식에게서도 사용할 수 있도록 하는 것 - 부모 : Super, 상위, 기본 - 자식 : Sub, 하위, 파생 |
||
확장(extends) : 반드시 부모와 자식이 동급인 경우 - 부모(Class), 자식(Class) - 부모(Interface), 자식(Interface) |
public class ChildrenClass extends ParentsClass { } | class Pa { int a; public void setA(int a) { this.a = a; } } class Cha extends Pa { int b ; public void setB() { this.b = b; } } |
public interface ChildrenInterface extends Parents Class { } | ||
실채, 실제화(implements, realization) : 부모와 자식이 급이 다른 경우 인터페이스는 클래스를 상속받지 못한다 |
public class ChildrenClass implements ParentsInterface { } | |
다형성(polymorphism) : 하나의 객체가 여러개의 자료형을 가지고 있는 것. =>상속, 형변환 ==>메모리 낭비 줄임. |
Pa p = new Cha( ); | |
class Char extends Pa { } | ||
다른 이름인 경우 속성 : 부모만 메소드 : 부모만 |
동일 이름인 경우(이름, 매개변수까지 ) 속성 : 부모만 메소드 : 자식만 |
|
Cha c = new Cha( ); | ||
다른 이름인 경우 속성 : 부모, 자식 모두 사용 메소드 : 부모, 자식 모두 사용 |
동일 이름인 경우 속성 : 자식 메소드 : 자식 |
Pa p = new Cha( ); | ||
class Cha extends Pa { } | ||
다른 이름인 경우 | 동일 이름인 경우(이름, 매개변수까지 ) | |
속성 | 부모만 | 부모만 |
메소드 | 부모만 | 자식만 |
Cha c = new Cha( ); | ||
다른 이름인 경우 | 동일 이름인 경우 | |
속성 | 부모, 자식 모두 사용 | 자식만 |
메소드 | 부모, 자식 모두 사용 | 자식만 |
오버라이딩(Overridding) = 오버라이드(Override) |
||
부모와 자식관계에서 동일한 이름의 메소드가 있는 경우(매개변수까지 동일) 부모 메소드가 가려지고(Hiding) 자식의 메소드로 재정의 되는 현상(덮어쓰기) <필수> - 상속관계가 존재해야 - 부모와 메소드가 동일해야 (매개변수까지) - 부모이상의 제어자가 선언되어야 |
private는 자식에게 상속되지 않는다. private 변수는 자식클래스에서 선언될 수 있다. super( ) 호출문에도 영향줌 |
class P { public void md() { a = 5; System.out.println(a + b); } } class C extends P { public void md() { System.out.println(a + b); super.md(); this.md1(); } } |
this |
this 키워드 : 나의 인스턴스 this( ) 호출문 : 나의 인스턴스 안의 기본생성자 호출 this(매개변수...) 호출문 : 나의 인스턴스 안의 해당 케이스의 기타 생성자 호출 |
super |
super 키워드 : 부모 인스턴스 super( ) : 부모 인스턴스의 기본생성자 호출(자동숨김) super(매개변수...) : 부모 인스턴스 안의 해당 케이스의 기타 생성자 호출 (반드시 기술해야한다) |
자식의 생성자 안에만 최초 |
추상클래스 (Abstract Class) |
||
: 구현부(몸체)가 없는 메소드를 하나 이상 가지고 있는 abstarct키워드가 있는 클래스 | ||
<필수> 1. abstract키워드가 붙어있는 클래스(추상클래스)는 2. abstract메소드를 한 개 이상은 꼭 가지고 있어야 한다. abstract메소드 반드시 상속받은 자식 클래스에서 재정의(Override)가 이루어져야 한다. (재정의되는 부분에서는 몸체구현을 해야하며, abstract키워드가 제거된다.) 3. 객체생성을 할 수 없다. (생성자, 메소드, 멤버필드 모두 가질 수는 있다.) 자식클래스를 통해서 객체생성 할 수 있다. |
[접근제어자] abstract class 클래스명{ public abstract 리턴타입 메소드명([매개변수들...]) ; //{ }중괄호가 없음 } @Override 추상클래스 P {} P p = new A(); // A ->B로 변경가능 p.oy(); p.oy(); p.oy(); |
어노테이션(Annotation) |
특수한 기능을 가진 주석. |
형식 @명령이름 |
아스테리스크(asterisk) * |
전체 |
package.* -해당 패키지명 이내에 있는 모든 클래스들 |
728x90
반응형