- Wrapper 클래스
기본 자료형을 클래스화하여 사용하게 함
자료형은 메소드가 없다=명령어가 없다. 클래스만 메소드 지님
boolean, byte, char, short,int,long,float,double : 자료형
=> Boolean,Byte,Character,Short,Integer,Long,Float,Double : 클래스
Auto-Boxing : 자료형 -> 클래스 변환(stack->heap)
Auto-unBoxing : 클래스 -> 자료형 변환(heap->stack)
num2는 new니까 heap영역에 생성된다
- UP/DOWNCAST
상속관계의 형변환
부모 = 자식; -> UPCAST (CAST는 형변환을 의미한다)
자식 = 부모;(X) -> 자식=(자식i)부모; : DOWNCAST (자료형의 명시적 형변환과 비슷한 꼴로 생각함
- Calendar
두가지 방법으로 만들 수 있으며
밑에 //부분은 위에서 언급한 UPCAST이다. Calendar는 부모 Gregori~는 자식 관계이기 때문
Calendar는 month부분과 week부분이 다르다
month는 배열이라 인덱스가 0부터 시작하기에 +1 해줘야 하며
week는 주의 수가 0이 일요일인 경우와 다르다는 점을 주의해야 한다.
++당연히 캘린더는 윤년 계산 필요 없음
System.out.printf("%tF",now) : tf => 달력 출력
System.out.printf("%tT",now) : tT => 시간 출력
둘다 출력하려면 now가 겹치기 때문에
System.out.printf("%1$tF %1$tT",now) : 1$를 해주면 now를 한번 써도 하나의 인수로 처리 가능
- set
set을 통해 사용자가 직접 날짜를 정의할 수 있다
set(2022,5-1,1);
5에서 1을 빼주는 이유는 월(month)은 배열이기 때문
- Override
오버라이드한 상태에서
부모와 나 모두 변수 a 를 갖고 있다면 -> 당연히 내가 지닌 a 사용
하지만 부모 변수를 출력하고 싶다면 -> super.a
다른 클래스System.out.print(((Test)ob).a); -> Test(부모 클래스) ob(내 클래스)
메소드도 마찬가지 -> super.write();
- Singleton
new를 통해 객체 1개만 생성하면 공유한다 -> static 통해서 자동으로 메모리 올라간다
Calendar도 마찬가지!
- final
인스턴스 변수에 final을 붙이면 한번만 초기화
메소드에 final을 붙이면 override 불가능
클래스에 final을 붙이면 상속 불가능
변수-> 초기화안하면 에러 발생
메소드-> 오버라이딩할 수 없기 때문에, 내용을 바꿀 수 없다. 호출은 가능하지만 부모 메소드 그대로 사용해야 한다. 원본 손실X!
- 추상클래스
메모리의 낭비 없이 클래스와 메소드를 미리 설계하는 것이다
메소드를 재정의해서 사용한다
추상클래스에는 하나 이상의 추상메소드가 반드시 있어야 하며, 일반 메소드도 만들 수 있다
'개발 교육 TIL > back-end' 카테고리의 다른 글
[Java] 내부클래스, Collection Framework, Iterator, Vector (0) | 2022.01.07 |
---|---|
[Java] 형변환, upcast, 인터페이스 (0) | 2022.01.06 |
[Java] 상속, override, 오버로딩, object, String클래스-메소드 (0) | 2022.01.04 |
[Java] call by value/reference, 상속, super (0) | 2022.01.03 |
[Java] private, this, static, overloading (0) | 2021.12.30 |