분류 전체보기 (1196) 썸네일형 리스트형 백준 11383번 뚊 정우는 "뚊"과 "돌돔"을 의미하는 두 이미지를 받았다. 과연 두 그림이 같은지 검사해보자. 즉 N× M 크기의 이미지와 N ×2 M 크기의 이미지가 주어질 때 첫 번째 이미지를 가로로 두 배로 늘이면 두 번째 이미지가 되는지 검사하는 프로그램을 작성하라. 입력 입력의 첫 번째 줄에 N, M (1 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄의 각 줄에는 M개의 문자가 주어진다. 다음 N개의 줄의 각 줄에는 2M개의 문자가 주어진다. 모든 문자는 영문 알파벳 대문자 혹은 소문자이다. 출력 첫 번째로 주어진 이미지를 가로로 두 배로 늘렸을 때 두 번째 이미지가 된다면 "Eyfa"을 출력하고, 되지 않는다면 "Not Eyfa"을 출력한다. 간 ㅡ 단. #include #include using name.. 자바 연습 (인터페이스) public interface Sort { void ascending(); void descending(); void descriprion(); } public class Bubble implements Sort { @Override public void ascending() { System.out.println("버블 어센딩"); } @Override public void descending() { System.out.println("버블 다운센딩"); } @Override public void descriprion() { ascending(); descending(); System.out.println("숫자를 정렬하는 알고리즘 입니다"); System.out.println("버블 알고리즘 입니다").. 인터페이스 default 키워드 인터페이스는 구현 부 없이 그냥 명시만 해놓고 상속받는 클래스에서 구현하는게 원칙인데 default 메소드를 만들어 놓으면 이것이 하위 클래스에서 구현이 되지 않는다면 interface의 메소드로 사용하게 됨. 따라서 하위 클래스는 재정의 가능 & static은 인스턴스 없이 사용 가능. 인스턴스에도 업캐스팅 하면 각각의 인스턴스에 해당하는 메소드만 호출됨. 인터페이스 & 추상 클래스 클래스 -> 전부 메소드로 구성 추상 클래스 -> 추상 메소드를 포함 new 불가 인터페이스 ->전부 추상 메소드로만 구성 인터페이스의 모든 변수는 상수가 됨. new 불가 객체의 명세. 인터페이스는 class 위치에 interface로 적음 abstract없이도 내부 모든 메소드는 추상메소드임. 인터페이스 상속은 extends 대신 implements 사용 상속받은 클래스가 인터페이스의 일부만 구현하는 경우 class 앞에 abstract 키워드 붙음 인스턴스를 상속받은 클래스가 인스턴스의 모든 메소드를 구현하면 new 가능인데 아니면 abstract 붙혀야 하고, 추상 클래스로 빠짐. 따라서 이 추상 클래스를 다시 상속받아서 전부 구현한 클래스만이 new로 인스턴스화 가능. 클라이언트는 인터페이스를 .. 자바 연습 (상속& 업캐스팅) 업 캐스팅 한 인스턴스의 오버라이드된 함수에 대해서 하위 클래스의 함수가 호출 된다. 가상 메소드 개념. 업 캐스팅 인스턴스는 하위 클래스에만 존재하는 메소드나 변수에는 접근 불가능. -> 다운캐스팅 필요 public class Customer { protected int ID; protected String Name; public int bonusPoint; protected String Grade; public Customer(String Name, int ID,String gr) { this.Name = Name; this.ID = ID; this.Grade = gr; bonusPoint = 10000; } public Customer(String Name, int ID) { this.Name = .. 자바 연습 (추상 클래스) public abstract class Car { public abstract void drive(); public abstract void stop(); public abstract void start(); public abstract void turnoff(); final public void run() { start(); drive(); stop(); turnoff(); } } public class Avante extends Car{ @Override public void drive() { // TODO Auto-generated method stub System.out.println("아반타 주행시작"); } @Override public void stop() { // TODO Auto-gene.. final 키워드 사용 재정의 해서는 안되는 매소드 final 키워드를 붙힘. 이를 테면 시나리오 메소드 class에 final이 붙으면 누군가에 의해 상속될 수 없음 final로만 이루어진 class는 new 인스턴스화 없이 바로 클래스 이름으로 참조해서 사용가능. => static이랑 비슷한 개념. abstract는 모든 하위클래스가 이것을 구현해야함. 그것이 아니고 그냥 public으로 한다면 오버라이딩으로 새롭게 써서 쓸 하위 클래스만 쓰면 됨. 추상 클래스 & 추상 메소드 추상 메서드 -> 구현 코드가 없이 선언부만 존재하는 메소드. 추상 클래스-> 추상 메서드를 포함한 클래스, new로 인스턴스화 불가능 추상클래스가 new로 인스턴스화 될 수 없는 이유는 추상 클래스로 만든 인스턴스는 추상 메소드를 호출할 수 있어야 하는데 그것은 구현되지 않은 메소드이므로 안됨. 따라서 하위 클래스로 다운캐스팅 해줘야 한다. public void xx(); public void xx(){} ->이거는 추상아님. public abstract void xx(); 이렇게 표현 해 줘야 하고 이것은 하위 클래스에서 정의 될것임. 추상 메소드를 포함하는 클래스는 class 앞에 abstract 붙혀야 함. 추상 메서드 사용이유 -> 오버라이드는 상위클래스에서도 가능한 메서드인 경우, 하위 클래스.. 이전 1 ··· 126 127 128 129 130 131 132 ··· 150 다음