자바 191

JAVA 자바 디폴트 메서드와 인터페이스 확장 - 디폴트 메서드의 필요성

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 디폴트 메서드와 인터페이스 확장 디폴트 메서드는 인터페이스에 선언된 인스턴스 메서드이기 때문에 구현 객체가 있어야 사용할 수 있습니다. 선언은 인터페이스에서 하고 사용은 구현 객체를 통한다는 것이 약간은 어색해 보이죠? 디폴트 메서드는 모든 구현 객체에서 공유하는 기본 메서드처럼 보이지만, 인터페이스에서 디폴트 메서드를 허용한 데에는 다른 이유가 있습니다. 디폴트 메서드의 필요성 디폴트 메서드를 허용한 이유 : 기존 인터페이스를 확장해서 새로운 기능을 추가하기 위해서 입니다. 기존 인터페이스의 이름과 추상 메서드의 변경 없이 디..

자바 2017.03.13

JAVA 자바 인터페이스 상속

인터페이스 상속 인터페이스도 다른 인터페이스를 상속할 수 있습니다. 또한 클래스와는 다르게 다중상속을 지원합니다. ex) public interface 하위인터페이스 extends 상위인터페이스1,상위인터페이스2 { ... } 하위 인터페이스를 구현하는 클래스는 하위 인터페이스와 상위 인터페이스의 모든 추상 메서드에 대한 실체 메서드를 가지고 있어아 합니다. 때문에 구현 클래스로부터 객체를 생성하고 나서 아래와 같이 하위 및 상위 인터페이스 타입으로 변환이 가능합니다. 하위인터페이스 변수 = new 구현클래스();상위인터페이스1 변수 = new 구현클래스();상위인터페이스2 변수 = new 구현클래스(); 하위 인터페이스 타입으로 변환이 되었다면, 상,하위 인터페이스에 선언된 모든 메서드를 사용가능하고 ..

자바 2017.03.13

JAVA 자바 인터페이스 강제 타입 변환 Casting 과 객체 타입 확인 instancof

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 강제 타입 변환 Casting 구현 객체가 인터페이스 타입으로 자동 타입 변환되면 인터페이스에 생성된 메서드만 사용가능하다는 제약 사항이 생깁니다. 예를 들어서 인터페이스에는 세 개의 메서드가 선언되어 있고, 클래스에는 다섯 개의 메서드가 선언되어 있다고 할 때 인터페이스로 호출가능한 메서드는 세 개뿐입니다. 경우에 따라 구현 클래스에 선언된 필드와 메서드를 사용해야 하는 경우도 있을 수 있겠죠?강제 타입 변환을 해서 다시 구현 클래스 타입으로 변환한 다음, 구현 클래스의 필드와 메서드를 사용할 수 있습니다.구현클래스 변수 = ..

자바 2017.03.13

JAVA 자바 인터페이스 매개 변수의 다형성

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 매개 변수의 다형성매개값을 다양화하기 위해서 상속에서는 매개 변수를 부모 타입으로 선언하고 호출할 때에는 자식 객체를 대입했었습니다. 이번엔 매개 변수를 인터페이스 타입으로 선언하고 호출할 때에는 구현 객체를 대입합니다.ex) public class Driver { public void drive(Vehicle vehicle) { vehicle.run(); }} public interface Vehicle { public void run(); } }위 같은 코드가 있다고 할 때Bus 클래스가 구현 클래스라하면 아래와 같이 Dri..

자바 2017.03.13

JAVA 자바 인터페이스 필드의 다형성 // 인터페이스 배열로 구현 객체 관리

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ http://blog.naver.com/rain483/220581085258 [ JAVA ] - 상속(8) : 타입 변환과 다형성(2) - 필드의 다형성필드의 다양성자동 타입 변환이 필요한 이유는 무엇일까요? 다형성을 구현하는 기술적 방법 때문입니다.다...blog.naver.com상속에서 다형성은 이미 공부하였습니다.필드의 다형성예제인터페이스public interface Tire { public void roll();} 구현 클래스public class HankookTire implements Tire { @Override p..

자바 2017.03.13

JAVA 자바 인터페이스: 자동 타입 변환(Promotion)

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ http://blog.naver.com/rain483/220581018843 [ JAVA ] - 상속(7) : 타입 변환과 다형성(1) - 자동 타입 변환(Promotion)다형성 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말합니다. 코드 측면에서 보면 ...blog.naver.com 자동 타입 변환 구현 객체가 인터 페이스 타입으로 변환되는 것은 자동 타입 변환에 해당합니다. 인터페이스 변수 = 구현 객체;인터페이스 구현 클래스를 상속해서 자식 클래스를 만들었다면 자식 객체 역시 인터페이스 타입으로 자동..

자바 2017.03.13

JAVA 자바 인터페이스 사용 추상 메서드 사용, 디폴트 메서드 사용, 정적 메서드 사용

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 인터페이스 사용 인터페이스로 구현 객체를 사용하려면 아래와 같이 인터페이스를 선언하고 구현 객체를 대입해야 합니다. 인터페이스 변수는 참조 타입이기 때문에 구현 객체가 대입될 경우 구현 객체의 번지를 저장합니다.인터페이스 변수; 또는 인터페이스 변수 = 구현 객체;변수 = 구현 객체; RemoteControl 인터페이스의 구현 객체인 Television 과 Audio를 사용하려면 다음과 같이 RemoteControl 타입 변수를 선언하고 구현 객체에 대입해야 합니다.RemoteControl rc;rc = new Televisio..

자바 2017.03.13

JAVA 자바 인터페이스 구현 익명 구현 객체와 다중 인터페이스 구현 클래스

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 익명 구현 객체 구현 클래스를 만들어 사용하는 것이 일반적이고, 클래스를 재사용할 수 있기 때문에 편리하지만, 일회성의 구현 객체를 만들기 위해 소스 파일을 만들고 클래스를 선언하는 것은 비효율적입니다.자바는 따로 소스파일을 만들지 않고 구현 객체를 만들 수 있는 방법을 제공하는데 바로 익명 구현 객체입니다. 자바는 UI 프로그래밍에서 이벤트를 처리하기 위해 그리고 임시 작업 스레드를 만드기 위해 익명 구현 객체를 많이 사용하며 자바 8에서 지원하는 람다식은 인터페이스의 익명 구현 객체를 만들기 때문에 익명 구현 객체의 코드 패..

자바 2017.03.13

JAVA 자바 인터페이스 구현 클래스

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 인터페이스 구현 개발 코드가 인터페이스의 메서드를 호출하면 인터페이스는 객체의 메서드를 호출합니다. 인터페이스의 구현 객체 : 인터페이스에서 정의된 추상 메서드와 동일한 메서드 이름, 매개 타입, 리턴 타입을 가진 실체 메서드를 가지고 있어야 합니다. 구현 클래스 : 구현 객체를 생성하는 클래스 구현 클래스 클래스 선언부에 implements 키워드를 추가하고 그뒤에 인터페이스명을 명시해야 합니다.ex) public class 구현클래스명 implements 인터페이스명 { //인터페이스에 선언된 추상 메서드의 실체 메서드 선언..

자바 2017.03.13

JAVA 자바 추상 메서드 선언, 디폴트 메서드 선언, 정적 메서드 선언

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 추상 메서드 선언 인터페이스를 통해 호출된 메서드는 최종적으로 객체에서 실행됩니다. 때문에 인터페이스의 메서드는 실해 블록이 필요없는 추상 메서드로 선언합니다. 추상 메서드 : 리턴 타입, 메서드명, 매개 변수만 기술되고 { }중괄호를 붙이지 않은 메서드. 인터페이스에 선언된 추상 메서드는 모두 public abstract의 특성을 갖기 때문에 public abstract 를 생략하더라도 상수 필드와 마찬가지로 자동적으로 컴파일 과정에서 붙게 됩니다. 디폴트 메서드 선언 자바 8에서 추가된 인터페이스의 멤버입니다. 형태는 클래스..

자바 2017.03.13