카카오
-
[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] 생성자(constructor)와 오버로딩(overloading)Language/Java 2021. 6. 3. 12:02
생성자(constructor) 객체를 생성할 때 new키워드와 함께 사용한다. => new Student( ) 생성자능 일반 함수와 같이 기능을 호출하는 것이 아닌, 객체를 생성할때 new와 함께 호출된다. 객체가 생성될 때 변수, 상수를 초기화 하거나 다른 초기화 기능을 수행하는 메서드를 호출한다. 생성자는 반환 값이 없고, 클래스의 이름과 동일하다. 대부분의 생성자는 외부에서 접근이 가능하지만, 특정 목적이 있는 경우 private로 선언되는 경우가 있다. 기본 생성자 클래스에는 반드시 하나 이상의 생성자가 존재 => 생성자를 구현하지 않을 경우, 컴파일러에서 자동으로 생성자 코드를 넣어준다. 기본 생성자는 매개변수와 구현부가 없다. new키워드와 함께 호출을 할 수 있다. 생성자 구현방법 컴파일러가..
-
[JAVA] 클래스(Class)Language/Java 2021. 6. 2. 22:51
클래스(Class) 클래스는 객체의 청사진(blueprint) 객체의 속성은 클래스의 멤버 변수로 선언 변수의 데이터타입으로 클래스를 사용할 수 있다. => String name = "Ann" Student 클래스 예시 => 학생에 필요한 속성을 멤버 변수로 선언한다. 객체 지향 프로그램 구현 방법 객체를 정의 -> 객체가 제공하는 기능을 구현 -> 객체가 제공하는 기능들 간 소통을 통해 협력을 구현 클래스 명명기법 클래스의 이름을 지정할 때 대문자를 시작문자로 작성하는 것이 좋고 두 단어 이상일 경우 단어의 첫 글자를 대문자로 표기한다. => Student(단어가 1개일 경우), StudentInfo(단어가 2개일 경우) Java파일 하나에 여러 개의 클래스가 존재할 수 있으나, public클래스는 하..