Java 객체지향 개념 정리(OOP) 2편

1 minute read

✍객체 지향개념 및 규칙 정리 2편

본 내용은 자바의 정석을 바탕으로 작성

❗ 개인이 공부한 내용을 적은 것 이기에 오류가 많을 수도 있음

2022-01-28

포함관계

  • 클래스의 멤버로 참조변수를 선언하는 것
  • 작은 단위의 클래스를 만들고, 이들을 조합해서 클래스를 만듬 (Ex. 자동차 클래스안에 Engine 클래스나 door 클래스를 만드는 행위)
  • ~은 ~을 가지고 있다(has-a) VS 상속 : ~은 ~이다 (is-a)

단일상속

  • 자바는 단일상속만을 허용한다
  • 비중이 높은 클래스를 상속관계로 나머지는 포함관계로 한다.

toString 오버라이딩

오버라이딩의 조건

  • 선언부가 조상 클래스의 메서드와 일치해야 한다.
  • 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
  • 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.

참조변수 super

  • 객체 자신을 가리키는 참조변수 인스턴스 메서드(생성자)내에서만 존재
  • 조상의 멤버를 자신의 멤버와 구별할 때 사용

super() 조상의 생성자

  • 조상의 생성자를 호출할 때 사용
  • 조상의 멤버는 조상의 생성자를 호출해서 초기화
  • 생성자의 첫 줄에 반드시 생성자를 호출해야함 그렇지 않으면 컴파일러가 생성자의 첫 줄에 super(); 를 삽입 → 지키지 않으면 오류가 발생
  • **즉 오류 발생을 피하려면 자식에서 super를 통해서 생성자 호출 혹은 부모 클래스에서 기본 생성자를 생성해야함 **
👈this() 와 비슷하다

this()는 같은 클래스 내에서 다른 생성자를 호출 super()는 자식클래스에서 부모클래스의 생성자를 호출

Final

  • 변경될 수 없는 클래스에 붙임 → final로 지정된 클래스는 다른 클래스의 조상이 될 수 없음
  • 변경될수 없는 메서드 → final로 지정된 메서드는 오버라이딩을 통해 재정의 X
  • 변수 앞에 final이 붙으면 값을 변경할 수 없는 상수(변수이름은 대문자로 표기)

다형성

  • 여러 가지 형태를 가질 수 있는 능력
  • 조상 타입 참조 변수로 자손 타입 객체를 다루는 것
  • 자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수 없다

ex) Tv : 조상 SmartTv : 자손

	Tv t = new SmartTv();         O

	SmartTv s = new Tv();         x

다형성의 장점

  • 다형적 매개변수
  • 하나의 배열로 여러종류 객체 다루기

참조변수의 형변환

  • 사용할 수 있는 멤버의 갯수를 조절
  • 조상, 자손 관계의 참조변수는 서로 형변환 가능 , 형제 끼리는 형변환 X

오류 예상 원인 debug.png

instanceof 연산자

  • 참조변수의 형변환 가능여부 확인에 사용 → 가능하면 true 반환

📑 출처

Categories:

Updated:

Leave a comment