Skip to content

Latest commit

 

History

History
80 lines (64 loc) · 4.46 KB

자바 까먹기 쉬운 개념 정리.md

File metadata and controls

80 lines (64 loc) · 4.46 KB

JAVA 까먹기 쉬운 개념들

(책: 이것이 자바다 기준)


열거타입(enum)

  • 데이터 중에는 몇 가지로 한정된 값만을 갖는 경우가 있는데 이런 데이터 타입을 열거타입이라 함

생성자 오버로딩

  • 매개변수를 달리하는 생성자를 여러 개 선언하는 것을 말함 this()로 다른 생성자 호출 가능

메소드 오버로딩

  • 같은 이름의 메소드를 여러개 선언, 매개변수의 타입, 개수, 순서 중 하나가 달라야 함

인스턴스 멤버란

  • 객체(인스턴스)를 생성한 후 사용할 수 있는 필드와 메소드를 말함
  • 인스턴스 필드, 메소드 등이 있음

static

  • 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말함(클래스멤버라고도 함)

싱글톤이란

  • 가끔 전체 프로그램에서 단 하나의 객체만 만들도록 보장해야 하는 경우가 있다.
  • 단 하나만 생성된다고 해서 이 객체를 싱글톤이라고 한다.
  • 싱글톤을 만들려면 클래스 외부에서 new연산자를 사용 못하게 해야함
  • 그래서 접근제한자 private를 사용함

final

  • 한번 초기값이 저장되면 런타임 중에는 변경할 수 없음 관례적으로 static을 붙여 상수를 만들도록함.

Getter와 Setter

  • 객체 지향 프로그래밍에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막는다.
  • 그 이유는 객체의 무결성이 깨지기 때문인데 이 문제를 해결하기 위해 메소드를 통해서 데이터를 변경 하는 방법을 선호한다.
  • 데이터는 외부에서 접근할 수 없도록 막고 메소들는 공개해서 외부에서 메소드를 통해 데이터에 접근하도록 유도한다.
  • 그 이유는 메소드는 매개값을 검증해서 유효한 값만 데이터로 저장할 수 있기 때문이다.
  • 이런 역할을 하는 메소드가 Setter이다. 데이터를 읽을 땐 메소드로 필드값을 가공한 후 외부로 전달하면 되는데 이 메소드가 Getter이다.

어노테이션

  • @Override의 경우 메소드가 재정의 되었음을 컴파일러에게 알려주고 문법 체크하라고 전달한다.

객체지향 4대 특성

  • 추상화
  • 캡슐화
  • 상속성
  • 다형성

SOLID 원칙

  • 단일 책임의 원칙 (Single Responsibility Principle)
  • 개방 폐쇄의 원칙 (Open Close Principle)
  • 리스코프 치환 원칙 (The Liskov Substitution Principle)
  • 인터페이스 분리 원칙 (Interface Segregation Principle)
  • 의존 역전 원칙 (Dependency Inversion Principle)

super.

  • 부모의 메소드를 가져옴

final을 클래스나 메소들에 붙이면 상속, 오버라이딩 불가

강제 타입 변환(Casting)

  • 부모타입을 자식 타입으로 변환하는 것을 말한다.
  • 자식 타입이 부모타입으로 자동 변환한 후, 다시 자식 타입으로 변환할 때 강제 타입 변환을 사용할 수 있다.

instanceof 객체 타입 확인

  • 부모 변수가 참조하는 객체가 부모 객체인지 자식 객체인지 확인 가능

추상클래스

  • abstract을 클래스에 붙여서 사용가능
  • 실체 클래스들의 공통된 필드와 메소드의 이름을 통일할 목적으로 사용하고 실체 클래스를 작성할 때 시간을 절약할 수 있기 때문에 사용 가능하다.
  • @Overrid를 통해 추상 메소드 재정의를 통해 실체 메소드 구현

인터페이스란

  • 객체의 사용 방법을 정의한 타입이다.
  • 객체의 교환성을 높여주기 떄문에 다형성을 구현하는 매우 중요한 역할을 한다. 개발 코드와 객체가 서로 통신하는 접점 역할을 한다.
  • 상수 필드: 상수를 선언할 때에는 반드시 초기값을 대입해야 한다.
  • 추상 메소드: 객체가 가지고 있는 메소드를 설명한 것으로 호출할 때 어떤 매개값이 필요하고, 리턴 타입이 무엇인지만 알려준다.
  • 디폴트 메소드: 인터페이스에 선언되지만 사실은 객체가 가지고 있는 인스턴스 메소드이다.
  • 정적 메소드: 디폴트 메소드와는 달리 객체가 없어도 인터페이스만으로 호출이 가능하다.

예외에 대해서

  • 예외는 두 종류가 있다. 일반 에외, 실행 예외이다.
  • 일반 예외는 컴파일러 체크 예외라고도 한다. 하지만 둘다 예외 처리가 필요하다.