JAVA/Interface
-
상속을 이용하여 도형의 넓이 구하기JAVA/Interface 2020. 10. 11. 17:10
문제 도형(원, 삼각형, 직사각형)의 넓이와 둘레 구하는 공식은 인터넷을 검색해서 확인하세요. 1. 삼각형의 넓이는 헤론의 공식을 참고하세요. 넓이 = Math.sqrt(s(s-a)(s-b)(s-c)) s = (a+b+c)/2 2. Shape 인터페이스를 원과 삼각형과 직사각형 클래스에 구현하세요. (implement -> 넓이와 둘레는 오버라이딩 해야 합니다.) 3. main()메소드가 있는 MainTest에서 각각 도형은 interface type으로 형변환 합니다. ( Shape s = new 원(10); s = new 삼각형(10,10,10); ) 4. 각 도형의 멤버변수는 생성자를 통해서 초기화 해주세요. 5. java.text.DecimalFormat 객체를 이용해서 소수점 2째 자리까지 표현..
-
익명JAVA/Interface 2020. 10. 11. 14:48
1. 인터페이스로 익명class, 익명객체 생성 프로그램 실행결과 프로그램 분석 위의 문장은 객체가 없어서 메모리에 만들어졌다가 바로 소멸한다. 위와 같이 문장을 작성하면, 함수를 호출할 수 있다. 익명 객체를 동적으로 생성했다가 필요없으면 바로 소멸된다. 소스 파일 2. 함수의 매개변수로 인터페이스를 전달하고 그 인수로 코드(익명 클래스)를 전달 프로그램 실행결과 소스 파일 3. class안에 인터페이스와 내부인터페이스의 구현과 사용 프로그램 실행결과 소스 분석 Banana는 인터페이스이므로 객체화를 하기 위해서는 추상 메소드를 정의해줘야 한다. 위는 익명 객체를 만드는 것인데, 위 내용과 마찬가지로 추상 메소드를 정의해야 한다. 위는 익명 객체를 만드는 것인데, 위 내용과 마찬가지로 추상 메소드를 정..
-
다중 상속JAVA/Interface 2020. 10. 11. 12:33
다중 구현(다중 상속) - 자바는 다중 상속을 할 수 없다. 한번에 하나의 클래스만 상속할 수 있다. - 상속을 연속해서 받는 경우 다중 상속과 비슷한 기능은 구현할 수 있다. - 인터페이스는 다중상속을 지원한다. 하지만 이 다중상속은 구현이 이루어진 기능을 상속하는것이 아니라 추상 메소드를 상속받는 것에 불과함으로 최하의 클래스는 상속받은 모든 클래스를 직접 구현해야 한다. 따라서 상속의 개념 보다는 다중 구현의 개념에 가깝다. 하지만 C++은 실제로 기능이 구현된 클래스를 다중상속 받을 수 있다. 이로인해 부모 클래스가 중복되거나 메소드의 소속이 불분명해져 추가적인 코드가 필요하며 유지보수 시 소스 분석이 매우 어렵다. 프로그램 실행결과 소스 파일
-
Interface의 개념JAVA/Interface 2020. 10. 11. 00:59
Interface - 추상 메소드로만 이루어져 있다."{}"가 없다. - 아래처럼 중괄호가 없고 메소드의 프로토타입만 선언되어 있으면 추상 메소드이다. 예) public abstract void speedDown(int speed); - 추상메소드를 사용하는 이유는 앞으로 추가되거나 구현되어야하는 기능의 설계 역할을 하며 실제 기능은 구현하지 않고 메소드 프로토타입만 구현하는 것을 말한다. - 추상 메소드는 건축물에서 구조를 이루는 철근과도 같고 설계도와 같은 역할을 한다. - 외부에 공개할 메소드를 등록하는 목적으로도 사용된다. - 하나의 컴포넌트가 다양한 형태로 구현되어야 할 경우 인터페이스를 이용하면 콤포넌트의 사용법이 상당히 단순해진다. - 인터페이스를 구현한 클래스는 인터페이스 상에 있는 추상 ..