Giter Club home page Giter Club logo

standardofjava's Introduction

StandardOfJava

  • 모든 자료는, 출처 : 남궁성, 『 자바의 정석 3/E』, 도우출판(2016.1.27), 를 인용하였음을 알립니다.
  • Java를 공부하며 실습 자료를 올리는 공간입니다.

Java 일반

Chapter 7. Abstract

Chapter 7. Interface

  • 인터페이스

  • 추상클래스를 부분적으로 완성된 미완성 설계도라 한다면, 인터페이스는 구현된 것은 아무 것도 없고 밑그림만 그려져 있는 기본 설계도라 할 수 있다.

  • 그 자체로 사용되기 보다 다른 클래스를 작성하는데 도움 줄 목적으로 작성 된다.

  • 인터페이스의 이름에는 주로 Eatable같이 ~를 할수 있다는 의미의 able를 주로 쓴다. 이 인터페이스를 구현하면 먹을 수 있다. 처럼 인터페이스를 상속한 클래스 John은 먹을 수 있다. 처럼 먹는 메소드를 제공한다는 것을 강조하기 위함이다.

  • 오버라이딩 할 때는 조상의 메서드보다 넓은 범위의 접근 제어자를 지정해야 한다. 인터페이스 내 메소드는 public abstract를 생략하고 있기 때문이다.

  • 인터페이스의 특징, 일반적인 클래스와 달리 인터페이스의 멤버들은 다음과 같은 제약사항이 있다.

  • 인터페이스는 static 상수만 정의할 수 있다.

  • 모든 멤버변수는 public static final 이어야 하며, 이를 생략할 수 있다.

  • 모든 메서드는 public abstract 이어야 하며 이를 생략할 수 있다.

  • 단, static 메서드와 디폴트 메서드는 예외 JDK 1.8 부터 변경

  • 두 조상으로부터 같은 이름의 메소드를 상속 받을떄 멤버 변수 이름이 같거나 메소드 이름이 같으면 자손 클래스는 어느 조상의 멤버를 상속 받아야 될지 모른다.

  • 다중 상속의 장점보다 이러한 단점이 더 크다고 판단한 Java는 다중상속을 허용하지 않는다.

  • 하지만, 자바도 인터페이스를 이용해 다중 상속이 가능하다. 라는 사실 때문에 인터페이스는 다중 상속을 위한 것이라고 오해를 사는 것 일뿐 자바에서 인터페이스로 다중상속을 구현하는 경우는 거의 없다.

  • 인터페이스를 이용한 다형성

  • 리턴타입이 인터페이스라는 것은 메서드가 해당 인터페이스를 구현한 클래스의 인스턴스를 반환한다는 것을 의미한다.

  • 인터페이스의 장점

  • 개발시간을 단축시킬 수 있다. 메소드의 선언부만 알면 양쪽에서 필요한 기능을 개발할 수 있기 때문이다. (의존성 분리)

  • 표준화가 가능하다. 프로그램의 기본 틀을 인터페이스로 제공하면 대형 프로젝트에서도 표준화가 가능하다.

  • 서로 관계없는 클래스드들에게 관계를 맺어 줄 수 있다.

  • 독립적인 프로그래밍이 가능하다. 하나의 클래스 변경이 다른 클래스에 영향을 끼치지 않도록 할 수 있다.

Chapter 9. java.lang 패키지와 유용한 클래스

Chapter 12. Enum

Chapter 13. Thread

standardofjava's People

Contributors

ppzxc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.