목록분류 전체보기 (796)
코드 그라데이션
택시 미터기 요금 바꾸기 Meter package Prac11; public interface Meter11 { // public int BASE_FARE = 3000; // 기본요금(인터페이스에 정의한 변수는 상수라서 변경할 수 없다.) // 이걸 한 번 바꿔보고 싶어요! // 어떻게? 여기서는 지워주시고, 택시 클래스에서 멤버 변수로 선언해주시면 됩니다. public abstract void start(); public abstract int stop(int distance); } Taxi package Prac11; public class Taxi11 implements Meter11 { //Meter10 인터페이스의 start와 stop 메서드를 구현해야 한다. public int BASE_FAR..
추상클래스, 인터페이스 실습 public abstract class Camera { public void takePicture(){ System.out.println("사진을 촬영합니다."); } public void recordVideo(){ System.out.println("동영상을 녹화합니다."); } public abstract void showMainFeature(); } ---- public class AbstractTest { public static void main(String[] args) { // Camera camera = new Camera(); } } ------------ public class FactoryCam extends Camera{ @Override public v..
수업 순서대로 코드 및 설명 보충 개념설명 추상클래스, 추상메서드 추상클래스는 미완성 설계도를 가진 클래스라고 생각하면 된다 추상클래스란 추상 메서드를 선언할 수 있는 클래스. 불완전 형태 (설계만 되어있고, 구현체가 없는 것) 접근제어자, 리턴타입, 메소드명(파라메터)는 있지만 중괄호 블록 없음. 예) public int sum(int a, int b); 추상: 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용. 예 ) 정녕 해가 있다면 그것은 당신들이 지금 알고 있는 것이 아니라 그 이름이 가진 어떤 추상일 뿐이오. (출처: 네이버 지식사전) 컴퓨터 과학에서의 추상화는 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을..
추상클래스, 인터페이스_추상화_데이터추상화(Data Abstration) ★주요 키워드 및 내용 정리★ 추상클래스 키워드 :abstract 자식 클래스에서는 extends로 추상클래스를 상속받아 구현 미구현된 부분을 오버라이딩 하여 꼭 구현을 해주어야 함 추상클래스 그 자체로는 객체 생성을 할 수 없다. 자손클래스에서 미구현된 부분을 다 구현했다면, 부모타입인 abstract 클래스의 타입으로도 객체 생성이 가능. (다형성) 인터페이스 키워드: implements (클래스 생성시, interface를 선택하여 클래스를 만든다) 인터페이스는 주로 동작을 많이 정의하며, 설계도 중 뼈대와 같은 부분을 담고 있음. 인터페이스를 구현받아 작성된 클래스들은 똑같은 기능이 꼭 구현이 되어 있다는 보장을 할 수 있다..
Book06 package Prac06; public class Book06 { public String title; public String author; public String publisher; public int price; public Book06() { } public Book06(String title, String author, String publisher, int price) { this.title = title; this.author = author; this.publisher = publisher; this.price = price; } } Course package Prac06; public class Course { // 멤버변수 // title, tutor, days 가 Co..
의존성 주입 [DI(Dependency Injection)] & 제어의 역전[IoC(Inversion of Control)] 👉 IoC(Inversion of Control : 제어의 역전) - 애플리케이션의 전체 동작 방식을 구성하기 위해 구현 객체를 생성, 연결하는 별도의 설정 클래스인 AppConfig가 있다고 하자. - 위 그림과 같이 OrderServiceImpl은 필요한 인터페이스(DiscountPolicy)들을 AppConfig로 부터 호출하지만 어떻게 생성 될지는 알 수 없다. 메소드가 실행 됬을때 제어흐름도 AppConfig 가 들고 있던걸 실행하는것이기 때문에 프로그램의 제어 흐름에 대한 모든 권한도 AppConfig가 가지고 있다. 다쓰면 객체도 반납한다. - 이처럼 프로그램의 제어 ..
두 개가 같은 것이다. if문 public class Example { public static void main(String[] args { String[] numbers = {"one", "two", "three"} for (int i = 0; i
Annotation의 종류 Built-in Annotation : 자바에서 기본적으로 제공하는 어노테이션 (ex. @**Override)** Meta Annotation : 커스텀 어노테이션을 만들수 있게 제공된 어노테이션. (ex. **@Target)** Custom Annotation : 사용자가 직접 정의한 어노테이션 (java 외 spring, junit 등.. 모두 포함) (ex. **@Test)** Annotation 만들기 Meta Annotation 을 사용해서 만든다. @Target 말 그대로 어노테이션의 타겟을 지정하는 것입니다. FIELD : 해당 어노테이션을 Feild에 붙일때 METHOD, TYPE : Class나 Enum 등의 어떤 대상을 위한 어노테이션인지 타입에 붙일 때 그외..