아무튼 개발
article thumbnail
반응형
  • 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!


  • 추상클래스

메모리의 낭비 없이 클래스와 메소드를 미리 설계하는 것이다
메소드를 재정의해서 사용한다
추상클래스에는 하나 이상의 추상메소드가 반드시 있어야 하며, 일반 메소드도 만들 수 있다









반응형
profile

아무튼 개발

@릴쥬

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...