[JAVA]

Inheritance + @

지기음 2023. 1. 21. 10:22

상속이란 ? 

  • 기존 클래스의 멤버를 자식 클래스에서 재사용하기 위한 것 
  • 코드의 절감과 유지보수의 장점이 있음
  • 자바는 단일 상속만 지원

 

메서드 오버라이딩 

  • 조상 클래스에 정의된 메서드를 자식 클래스에서 적합하게 수정하는 것 
  • 조건 ★중
    • 메서드 이름이 같아야 한다
    • 매개 변수의 개수, 타입, 순서가 같아야 한다
    • 리턴 타입이 같아야 한다
    • 접근 제한자는 부모보다 범위가 넓거나 같아야 한다(부모랑 달라도 되긴 함 )
    • 조상보다 더 큰 예외를 던질 수 없다. 

 

super

  • super를 통해 조상 클래스의 멤버에 접근 가능하다 
  • super()를 통해 조상클래스의 생성자를 호출가능하다
  • 생성자 첫줄에만 this() 또는 super()가 올 수 있다.
  • 명시적으로는 this()또는 super()를 호출하지 않는 경우 컴파일러가 super()삽입
  • static 메소드는 재정의 되지 않는다!!!!! (오버라이딩 하지 않는다는 의미이다)

 

 

final modifier

  • final은 재정의 되지 않음 (상수라고 생각해 ex 불변하는 파이)

 

instanceof 연산자

  • 객체 식별 연산자
  • 형식 ))) 레퍼런스 변수 instanceof 클래스명
    • 리턴타입 boolean
    • 해당 변수명으로 클래스를 참조할 수 있다면 true 리턴 

 

싱글톤 디자인 패턴 

  • 객체의 생성을 제한해야 할 떄 사용
    • 여러개의 객체가 필요 없는 경우
    • 객체 생성/삭제 하는데 많은 비용이 들어 재사용이 유리한 경우
  • 가장 쉬운 싱글톤 방법 (Eager Initialization) 
    • 생성자를 private으로 만들어 접근 못하게 만듬 
    • class를 로딩할때 객체가 하나 만들어지게함
    • 그 객체를 가져오는 getInstance()를 만듬  
  • 교수님이 알려준 FM싱글톤 방법 (Lazy Initialization)
    • getlnstance를 호출할떄마다 객체가 생성되어있는지 안되어있는지 확인 후 생성되어있다면 생성된 객체를 반환하고 안되어있다면 그제서야 만듬 
  • BIll Pugh 가 고안한 싱글톤 방법(구글링 하니까 방식이 가장 널리 쓰인다고 함 [진실인지는 모름])
public class Singleton{

	private Singleton(){}
    
	private static class SingletonHelper{
    	private static final Singleton INSTANCE = new Singleton();
        //이너클래스에서는 외부클래스 private(생성자)도 접근이 가능하다. 
    }
    
    privte static Singleton getInstance(){
    	return SingletonHelper.INSTANCE;
    }
}

 

 

후기 : 추후 DB를 연결할때 싱글톤 패턴을 사용할 것으로 보인다. 잘 숙지해두자. 또한 상속의 정의와 오버라이딩 규칙같은 것은 외워두어야 할듯? 

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

추상 클래스 (abstract , interface)  (0) 2023.01.21
Polymorphism  (0) 2023.01.21
Abstraction + @ (추상화와 그 외의 중요한 것들)  (0) 2023.01.17
NullPointerException  (0) 2022.12.22
discord로 IntelliJ하는거 티내는 방법  (0) 2022.12.21