C언어
-
[JAVA] 인터페이스(interface)Language/Java 2021. 6. 7. 16:03
인터페이스(interface) 모든 메서드가 추상 메서드로 선언된다. => public abstract 모든 변수가 상수로 선언된다. => public static final interface 인터페이스 이름{ public static final float pi = 3.14f; public void makeSomething( ); } 디폴트 메서드와 정적 메서드 기능의 제공으로 일부 구현 코드가 있다. 인터페이스 구현과 형 변환 인터페이스를 구현한 클래스는 인터페이스 형으로 선언한 변수로 형 변환 할 수 있다. => Calc calc = new CompleteCalc( ) : Calc는 인터페이스 CompleteCalc는 구현된 클래스 상속에서의 형 변환과 동일한 의미이다. 클래스 상속과 달리 구현 코드..
-
[JAVA/디자인패턴] 템플릿 메서드(Template Method)Language/Java 2021. 6. 6. 19:10
템플릿 메서드(template method) 추상 메서드나 구현된 메서드를 활용하여 코드의 흐름(시나리오)을 정의하는 메서드 final로 선언하여 하위 클래스에서 재정의 할 수 없도록 한다. 추상 클래스로 선언된 상위 클래스에서 템플릿 메서드를 활용하여 전체적인 흐름을 정의하고, 하위 클래스에서 다르게 구현되어야 하는 부분은 추상 메서드로 선언하여 하위 클래스에서 구현하도록 한다. 프레임워크(framework)에서 많이 사용되는 설계 패턴 템플릿 메서드 예시 Car.java AICar.java ManualCar.java CarTest.java 자동차의 시동을 켭니다. 자율 주행을 합니다. 자동차가 스스로 방향을 바꿉니다. 자동차가 장애물 앞에서 스스로 멈춥니다. 자동차의 시동을 끕니다. =========..
-
[JAVA] 다형성(polymorphism)과 다운 캐스팅(downcasting)Language/Java 2021. 6. 5. 23:16
다형성(polymorphism) 하나의 코드가 여러 자료형으로 구현되어 실행되는 것 같은 코드에서 여러 다른 결과가 나온다. 객체지향 프로그래밍의 가장 큰 특징 중 하나이다. 다형성을 사용하면 유연하고 확장성있고, 유지보수가 편리한 프로그램을 개발할 수 있다. 다형성 예시 다형성을 사용하는 경우 상속과 메서드 재정의를 활용하여 확장성 있는 프로그램을 만들 수 있다. 다른 동물을 추가하는 경우 공통의 Animal클래스에서 상속을 받아 추가적으로 필요한 부분만 구현을 할 수 있다. 여러 클래스를 하나의 타입(상위 클래스)로 핸들링할 수 있다. 상속을 사용할 때? IS-A관계(is a relationship : inheritance) 일반적인 개념과 구체적인 개념과의 관계 상위 클래스: 하위 클래스보다 일반적..
-
[JAVA] 클래스 상속Language/Java 2021. 6. 5. 22:26
클래스 상속 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속받아서 속성이나 기능을 확장하여 클래스를 구현한다. 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야할 때 기존 클래스를 상속 상속하는 클래스(super class), 상속받는 클래스(sub class) 클래스 상속 문법 class B extends A{ } extends 키워드 뒤에는 하나의 클래스만 올 수 있다. 클래스 B는 A클래스를 상속 받았음을 알 수 있다. 자바는 단일 상속만을 지원한다. 상속을 구현하는 경우 상위 클래스는 하위 클래스보다 더 일반적인 개념과 기능을 가진다. 하위 클래스는 상위 클래스보다 더 구체적인 개념과 기능을 가진다. 하위 클래스가 상위 클래스의 속성과 기능을 확장한다는 의미 protected..