본문 바로가기

Java29

Java - 인터페이스 인터페이스 작성 문법인터페이스 이름은 무조건 Upper CamelCase(첫번째 글자만 대문자!!)인터페이스도 확장자가 .java파일로 작성됨.인터페이스의 모든 필드는 public static final로만 정의 가능(public static final 생략 가능, ex> 타입 상수이름 = 값, int a = 3;)모든 메소드는 public abstract여야함.(public abstract 생략 가능, ex>타입 메서드이름(파라미터) = void ex();)인터페이스내에서 메소드는 선언만 되어있기에, 추상클래스와 마찬가지로 new연산자로 인스턴스 생성 불가(특정 class implements 인터페이스명)다중 상속 가능(클래스 상속-extends와 인터페이스 구현-implements 동시 가능)인터페이.. 2023. 4. 1.
Java - 접근제한자 접근제한자 public: 클래스 내부 O, 동일 패키지 O, 하위 클래스 O, 그외 O protected: 클래스 내부 O, 동일 패키지 O, 하위 클래스 O, 그외 X default: 클래스 내부 O, 동일 패키지 O, 하위 클래스 X, 그외 X private: 클래스 내부 O, 동일 패키지 X, 하위 클래스 X, 그외 X 2023. 3. 22.
Java - final클래스, 불변객체 String 부모가 될 수 없는 클래스 상속을 금지 시키려면 클래스를 정의할 때, final키워드를 사용함. ex> public final class 클래스명 {....} abstract클래스는 자식이 필요함. 대표적인 final class = class String String class는 왜 final일까? string class는 불변객체임, 자기자신은 절대 변하지 않음. new가 쓰이면 메모리 힙의 새로운 영역에 올라감. String을 쓸때는 new를 쓰지 않는 것이 효율적임 --> why? 메모리를 적게 쓰는게 효율적이기에 String과 비슷하지만 내부가 변하는 클래스도 존재 = StringBuffer 클래스 String은 잘못쓰면 성능저하가 발생할 수 있음 --> 사용방법, 내부동작원리를 잘 알아야함. 2023. 3. 22.
Java - 추상 클래스 추상 클래스 추상 클래스는 인스턴스가 될 수 없음. 추상 클래스를 상속받은 자손이 인스턴스가 됨. abstract 키워드를 사용해서 클래스 정의함. 추상 클래스는 보통 1개 이상의 추상 메소드를 가짐. public abstract class 클래스명 {....} 추상 메소드는 구현되지 않은 메소드를 뜻함, 선언만되고 구현되지 않은 클래스(=미완성 클래스) 템플릿 메소드 패턴으로 추상 클래스 개념 익히기 final이 붙은 method는 오버라이딩이 금지됨. 접근제어자를 protected로 설정 2023. 3. 22.