본문 바로가기
컴퓨터과학[3-1]/[3-1]J A V A

[JAVA] 객체지향 프로그래밍[2]

by boolean 2016. 2. 18.
728x90

[JAVA] 객체지향 프로그래밍[2]

용어정리



인터페이스
일반적 의미의 인터페이스란 소프트웨어를 어떻게 작동시킬 것인가에 관한 규약이다. Java 언어에서 인터페이스는 클래스와 유사한 참조형이다. 인터페이스는 객체를 생성할 수 없으므로, 하위 클래스가 implements 하거나 하위 인터페이스가 extends 하여 사용한다.이때 인터페이스의 다중 상속이 가능하다.
다형성
같은 종의 생물이지만 모습이나 특징이 다양하게 나타나는 성질을 말한다. 프로그래밍 언어에서 다른 유형의 데이터에 동일한 인터페이스의 함수를 사용하는 경우, 특화되어 사용될 수 있는 일반적 데이터 유형으로 배열을 구성하는 경우가 다형성을 적용한 예이다. 
메소드 오버라이딩
자식 클래스에서 부모 클래스의 메소드를 그대로 상속받지 않지 않고 새롭게 재정의하는 것을 메소드 오버라이딩이라 한다. 이때 메소드의 시그너쳐(이름, 인자의 개수와 자료형)와 반환형이 같아야 한다. 
메소드 오버로딩
하나의 클래스에서 같은 이름의 메소드가 여러 개 정의되는 것을 말하며 오버로딩된 메소드들은 인자의 개수와 자료형으로 구별되어야 한다. 이것은 하나의 이름으로 여러 기능을 수행할 수 있음을 의미한다. 
동적 바인딩
어떤 메소드가 실행되는지가 컴파일 시간에 정적으로 결정되는 것이 아니고 실행 시간에 동적으로 정해지는 것을 말한다. Java 언어에서 부모와 자식 클래스에서 동일한 이름의 메소드가 존재하고, 부모 유형의 변수가 자식 객체를 가리킬 수도 있다. 이때 실행 시간에 결정되는 객체의 실제 유형에 따라 어떤 메소드가 실행될 지가 결정된다. 



학습정리



  1. this와 super는 인스탄스 메소드에서 사용되며 현재 객체에 대한 레퍼런스이다.
    단 super의 자료형은 부모 클래스 유형이다.
  2. this( )와 super( )를 사용하여 자신의 생성자나 부모 클래스의 생성자를 호출할 수 있다.
  3. 객체가 가지는 인스탄스 필드에 필드의 초기화/초기화 블록/생성자 순으로 초기값이 지정된다.
  4. 인터페이스는 추상 클래스와 유사하나 모든 메소드가 public abstract이며 public static final 필드만을 포함할 수 있다.
  5. 하위 인터페이스가 상위 인터페이스를 extends 하거나 하위 클래스가 상위 인터페이스를 extends 할 때다중 상속이 가능하다.
  6. 상위 유형의 변수가 하위 유형의 객체를 가리킬 수 있다.
  7. 실행 시간에 결정되는 객체의 유형에 의해 어떤 메소드가 호출될 지가 결정된다.
  8. 자식 클래스를 정의할 때 상속받은 메소드를 수정하여 오버라이딩할 수 있다.
  9. 하나의 클래스에서 같은 이름의 메소드가 중복 정의되는 것을 오버로딩이라 한다. 


'컴퓨터과학[3-1] > [3-1]J A V A' 카테고리의 다른 글

[JAVA] Java.lang Pakage  (0) 2016.02.20
[JAVA] Package & Exception : 패키지와 예외처리  (0) 2016.02.20
[JAVA] 객체지향 프로그래밍[1]  (0) 2015.12.11
[JAVA] 기본문법[2]  (0) 2015.12.11
[JAVA] 기본문법[1]  (0) 2015.12.11

댓글