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 문자열 변환불가  
String 정수형숫자로 변환가능한 문자열이여야 한다.
+ 문자열이 더해지면 사용가능 " "+ i(int자료형)
String s = "50";
String s = "50원"
String s = "50.5"
   

상속(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
반응형

'[JAVA]' 카테고리의 다른 글

[14일차 오후]  (0) 2023.12.29
[14일차 오전]  (0) 2023.12.29
[13일차 오후] 추상클래스, 어노테이션, 인터페이스  (0) 2023.12.28
[13일차 오전]  (0) 2023.12.28
상속, 오버라이딩  (0) 2023.12.27

+ Recent posts