Post

자바 기본6 - 객체지향개념 2

객체지향의 필수 개념2

상속

  • 기존 클래스를 재사용해서 새로운 클래스를 작성하는 것이다.
  • 조상과 자손의 관계를 맺어주는 것이다.
  • 자손은 조상의 모든 멤버를 상속받는다.
  • 단일 상속만을 허용한다.
  • 조상이 없는 클래스는 자동으로 Object 클래스를 상속받는다.

오버라이딩

  • 조상클래스의 메서드를 상속받은 클래스에서 재사용 하는 것이다.
  • 선언부(이름, 매개변수, 리턴타입)가 같아야 한다.
  • 조상보다 좁은 범위의 접근 제어자를 사용할 수 없다.
  • 조상의 메서드보다 많은 수의 예외를 선언할 수 없다.
  • super, this를 사용하여 조상의 멤버와 자손의 멤버를 구별한다.

제어자

  • 클래스, 변수, 메서드 선언부에 사용되어 부가적인 의미를 부여한다.

접근제어자: public, protected, default, private

  • public: 어디서든 접근 가능하다.
  • protected: 동일한 패키지 또는 자손 클래스에서 접근 가능하다.
  • private: 해당 클래스 내에서만 접근 가능하다.
  • default: 동일한 패키지 내에서만 접근 가능하다.

그 외:static,final,abstract, native, transient, synchronized, volatile, strictfp

  • static: 멤버변수, 메서드, 초기화 블럭에 사용된다. 클래스 변수로 메모리에 할당되어 공유가능한 변수가 된다.
  • final: 클래스, 메서드, 지역변수에 사용된다. 변경할 수 없는 클래스, 메서드, 상수가 된다.
  • abstract: 클래스 내에 추상메서드를 선언할 때 사용된다.- 메서드에 static과 abstract를 함께 사용할 수 없다.
  • 클래스에 abstract와 final을 동시에 사용할 수 없다.
  • abstract 메서드의 접근제어자가 private 일 수 없다.
  • 메서드에 private와 final을 같이 사용할 필요는 없다.

다형성

  • 여러가지 형태를 가질 수 있는 능력을 뜻한다.
  • 조상타입의 참조변수로 자손타입의 객체를 다룰 수 있다. 반대는 불가능하다.
  • 참조형 매개변수는 메서드 호출시 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다.

형변환

  • 업캐스팅 형변환은 생략 가능하지만 반대는 불가능 하다.
  • instanceof 메서드를 사용하여 참조변수가 참조하는 인스턴스의 실제 타입을 체크할 수 있다.

추상클래스

  • 추상메서드를 포함하고 있는 클래스이다.
  • 다른 클래스를 작성하는데 도움을 줄 목적으로 생성한다.
  • 추상메서드는 선언부만 있고 몸통이 없는 메서드이다.
  • 동일한 기능을 자손마다 다르게 구현해야할 경우에 사용한다.
  • 추상클래스를 상속받는 자손클래스는 추상메서드의 구현부를 완성해야 한다.

인터페이스

  • 추상클래스보다 추상화 정도가 높다.
  • 추상메서드상수만을 멤버로 가질 수 있다.
  • 인스턴스를 생성할 수 없고 클래스 작성에 도움을 줄 목적으로 사용한다.
  • 다중상속이 가능하다.
  • 개발시간 단축, 표준화, 독립적인 프로그래밍, 관계 생성 등의 장점이 있다.
  • 인터페이스를 메서드의 매개변수 타입으로 지정할 수 있다.

내부클래스

  • 클래스 내부에 선언된 클래스를 뜻한다.
  • 내부클래스에서 외부클래스 멤버들을 쉽게 접근 할 수 있다.
  • 코드의 복잡성을 줄일 수 있다.
  • 내부클래스도 외부클래스의 멤버로 간주되며 동일한 접근성을 갖는다.
  • 인스턴스 메서드에서는 인스턴스 멤버와 static 멤버 모두 접근 가능하다.
  • 메서드 내에 지역적으로 선언된 내부클래스는 외부에서 접근 불가능하다.
  • 외부클래스의 지역변수는 final이 붙은 변수만 접근 가능하다.
  • 인스턴스 클래스의 인스턴스를 생성하려면 먼저 외부클래스의 인스턴스를 먼저 생성해야 한다.
This post is licensed under CC BY 4.0 by the author.