Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 2009. 10. 27 남궁성 강의 Chapter 7. 객체지향개념 II http://www.javachobo.com Java의 정석 제 7 장 객체지향개념 II-3 안녕하십니까? 자바의 정석의 저자 남궁성입니다. 지금부터 제7장 객체지향개념2의 두 번째 강의를 시작하겠습니다. 2009. 10. 27 남궁성 강의 castello@naver.com
객체지향개념 II-1 객체지향개념 II-2 객체지향개념 II-3 Java 1. 상속 2. 오버라이딩 의 정석 Chapter 7. 객체지향개념 II http://www.javachobo.com 1. 상속 객체지향개념 II-1 2. 오버라이딩 3. package와 import 4. 제어자 객체지향개념 II-2 5. 다형성 7장도 분량이 많기 때문에 이와 같이 3개의 부분으로 나누어서 강좌를 제작하였습니다. 이번엔 세번째 부분인 추상클래스와 인터페이스에 대해서 설명드리겠습니다. 6. 추상클래스 객체지향개념 II-3 7. 인터페이스
Java 6. 추상클래스(abstract class) 6.1 추상클래스(abstract class)란? 의 정석 Chapter 7. 객체지향개념 II http://www.javachobo.com 6. 추상클래스(abstract class) 6.1 추상클래스(abstract class)란? 6.2 추상메서드(abstract method)란? 6.3 추상클래스의 작성 7. 인터페이스(interface) 7.1 인터페이스(interface)란? 7.2 인터페이스의 작성 7.3 인터페이스의 상속 세부목차인데요. 이 강의는 이와 같은 순서로 진행될 것입니다. 7.4 인터페이스의 구현 7.5 인터페이스를 이용한 다형성 7.6 인터페이스의 장점 7.7 인터페이스의 이해
6. 추상클래스(abstract class) Java 의 정석 Chapter 7. 객체지향개념 II http://www.javachobo.com 6. 추상클래스(abstract class)
6.1 추상클래스(abstract class)란? Java 의 정석 Chapter 7. 객체지향개념 II http://www.javachobo.com 6.1 추상클래스(abstract class)란? - 클래스가 설계도라면 추상클래스는 ‘미완성 설계도’ - 추상메서드(미완성 메서드)를 포함하고 있는 클래스 * 추상메서드 : 선언부만 있고 구현부(몸통, body)가 없는 메서드 - 일반메서드가 추상메서드를 호출할 수 있다.(호출할 때 필요한 건 선언부) - 완성된 설계도가 아니므로 인스턴스를 생성할 수 없다. - 다른 클래스를 작성하는 데 도움을 줄 목적으로 작성된다. 5 5
6.2 추상메서드(abstract method)란? Java 의 정석 Chapter 7. 객체지향개념 II http://www.javachobo.com 6.2 추상메서드(abstract method)란? - 선언부만 있고 구현부(몸통, body)가 없는 메서드 - 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우에 사용 - 추상클래스를 상속받는 자손클래스에서 추상메서드의 구현부를 완성해야 한다. 6 6
Java 6.3 추상클래스의 작성 정석 - 여러 클래스에 공통적으로 사용될 수 있는 추상클래스를 바로 작성하거나 Chapter 7. 객체지향개념 II http://www.javachobo.com 6.3 추상클래스의 작성 - 여러 클래스에 공통적으로 사용될 수 있는 추상클래스를 바로 작성하거나 기존클래스의 공통 부분을 뽑아서 추상클래스를 만든다. 7 7
7. 인터페이스(interface) Java 정석 의 Chapter 7. 객체지향개념 II 8 http://www.javachobo.com 7. 인터페이스(interface) 8
Java 7.1 인터페이스(interface)란? 정석 의 정석 Chapter 7. 객체지향개념 II http://www.javachobo.com 7.1 인터페이스(interface)란? - 일종의 추상클래스. 추상클래스(미완성 설계도)보다 추상화 정도가 높다. - 실제 구현된 것이 전혀 없는 기본 설계도.(알맹이 없는 껍데기) - 추상메서드와 상수만을 멤버로 가질 수 있다. - 인스턴스를 생성할 수 없고, 클래스 작성에 도움을 줄 목적으로 사용된다. - 미리 정해진 규칙에 맞게 구현하도록 표준을 제시하는 데 사용된다. 9 9
Java 의 정석 Chapter 7. 객체지향개념 II http://www.javachobo.com 7.2 인터페이스의 작성 - ‘class’대신 ‘interface’를 사용한다는 것 외에는 클래스 작성과 동일하다. - 하지만, 구성요소(멤버)는 추상메서드와 상수만 가능하다. 10 10
Java 7.3 인터페이스의 상속 정석 - 인터페이스도 클래스처럼 상속이 가능하다.(클래스와 달리 다중상속 허용) Chapter 7. 객체지향개념 II http://www.javachobo.com 7.3 인터페이스의 상속 - 인터페이스도 클래스처럼 상속이 가능하다.(클래스와 달리 다중상속 허용) - 인터페이스는 Object클래스와 같은 최고 조상이 없다. 11 11
Java 7.4 인터페이스의 구현 정석 - 인터페이스를 구현하는 것은 클래스를 상속받는 것과 같다. Chapter 7. 객체지향개념 II http://www.javachobo.com 7.4 인터페이스의 구현 - 인터페이스를 구현하는 것은 클래스를 상속받는 것과 같다. 다만, ‘extends’ 대신 ‘implements’를 사용한다. - 인터페이스에 정의된 추상메서드를 완성해야 한다. - 상속과 구현이 동시에 가능하다. 12 12
Java 7.5 인터페이스를 이용한 다형성 정석 - 인터페이스 타입의 변수로 인터페이스를 구현한 클래스의 인스턴스를 Chapter 7. 객체지향개념 II http://www.javachobo.com 7.5 인터페이스를 이용한 다형성 - 인터페이스 타입의 변수로 인터페이스를 구현한 클래스의 인스턴스를 참조할 수 있다. - 인터페이스를 메서드의 매개변수 타입으로 지정할 수 있다. - 인터페이스를 메서드의 리턴타입으로 지정할 수 있다. 13 13
Java 7.6 인터페이스의 장점 정석 1. 개발시간을 단축시킬 수 있다. 2. 표준화가 가능하다. Chapter 7. 객체지향개념 II http://www.javachobo.com 7.6 인터페이스의 장점 1. 개발시간을 단축시킬 수 있다. 일단 인터페이스가 작성되면, 이를 사용해서 프로그램을 작성하는 것이 가능하다. 메서드를 호출하는 쪽에서는 메서드의 내용에 관계없이 선언부만 알면 되기 때문이다. 그리고 동시에 다른 한 쪽에서는 인터페이스를 구현하는 클래스를 작성하도록 하여, 인터페이스를 구현하는 클래스가 작성될 때까지 기다리지 않고도 양쪽에서 동시에 개발을 진행할 수 있다. 2. 표준화가 가능하다. 프로젝트에 사용되는 기본 틀을 인터페이스로 작성한 다음, 개발자들에게 인터페이스를 구현하여 프로그램을 작성하도록 함으로써 보다 일관되고 정형화된 프로그램의 개발이 가능하다. 3. 서로 관계없는 클래스들에게 관계를 맺어 줄 수 있다. 서로 상속관계에 있지도 않고, 같은 조상클래스를 가지고 있지 않은 서로 아무런 관계도 없는 클래스들에게 하나의 인터페이스를 공통적으로 구현하도록 함으로써 관계를 맺어 줄 수 있다. 4. 독립적인 프로그래밍이 가능하다. 인터페이스를 이용하면 클래스의 선언과 구현을 분리시킬 수 있기 때문에 실제구현에 독립적인 프로그램을 작성하는 것이 가능하다. 클래스와 클래스간의 직접적인 관계를 인터페이스를 이용해서 간접적인 관계로 변경하면, 한 클래스의 변경이 관련된 다른 클래스에 영향을 미치지 않는 독립적인 프로그래밍이 가능하다. 14 14
Java 7.6 인터페이스의 장점 – 예제 정석 의 Chapter 7. 객체지향개념 II 15 15 http://www.javachobo.com 7.6 인터페이스의 장점 – 예제 15 15
Java 7.7 인터페이스의 이해(1/3) 정석 ▶ 인터페이스는… Chapter 7. 객체지향개념 II http://www.javachobo.com 7.7 인터페이스의 이해(1/3) ▶ 인터페이스는… - 두 대상(객체) 간의 ‘연결, 대화, 소통’을 돕는 ‘중간 역할’을 한다. - 선언(설계)와 구현을 분리시키는 것을 가능하게 한다. ▶ 인터페이스를 이해하려면 먼저 두 가지를 기억하자. - 클래스를 사용하는 쪽(User)과 클래스를 제공하는 쪽(Provider)이 있다. - 메서드를 사용(호출)하는 쪽(User)에서는 사용하려는 메서드(Provider)의 선언부만 알면 된다. 16 16
Java 7.7 인터페이스의 이해(2/3) 정석 ▶ 직접적인 관계의 두 클래스(A-B) Chapter 7. 객체지향개념 II http://www.javachobo.com 7.7 인터페이스의 이해(2/3) ▶ 직접적인 관계의 두 클래스(A-B) ▶ 간접적인 관계의 두 클래스(A-I-B) 17 17
Java 7.7 인터페이스의 이해(3/3) 정석 의 Chapter 7. 객체지향개념 II 18 18 http://www.javachobo.com 7.7 인터페이스의 이해(3/3) 18 18
감사합니다. http://www.javachobo.com Java 정석 의 정석 Chapter 7. 객체지향개념 II http://www.javachobo.com 감사합니다. 더 많은 동영상강좌를 아래의 사이트에서 구하실 수 있습니다. http://www.javachobo.com 이것으로 제 7장 객체지향개념II-3에 대한 강의를 모두 마치겠습니다. 감사합니다. 이 동영상강좌는 비상업적 용도일 경우에 한해서 저자의 허가없이 배포하실 수 있습니다. 그러나 일부 무단전제 및 변경은 금지합니다. 관련문의 : 남궁성 castello@naver.com