본문 바로가기

AWS CLOUD FRAMEWORK/Java

[Day13] Summary3 Main package summary3; public class Main { // 다음 메인함수의 내용이 잘 작동하도록 클래스를 구성하세요 // give메서드에서 Animal타입의 객체를 전달받았을때 // 만약 그 객체가 Cat의 인스턴스라면 츄르를 주게 하고, // 만약 그 객체가 Dog의 인스턴스라면 육포를 주게 변경하세요 // (instanceof) public static void main(String[] args) { Human man = new Human("원빈"); Cat cat = new Cat("나옹이"); Dog dog = new Dog("바둑이"); man.give(cat);// 원빈이 나옹이에게 먹이를 준다 man.give(dog);// 원빈이 바둑이에게 먹이를 준다 } } Huma.. 더보기
[Day13] Summary2 Main package summary2; public class Main { // 다음 메인함수의 내용이 잘 작동하도록 클래스를 구성하세요 // Cat과 Dog의 공통속성을 묶어서 처리할 슈퍼클래스 Animal을 작성하세요 // 필요하다면, 생성자를 수정하여 상속관계에 맞게 작동하도록 수정하세요 // Human에서는 나누어져있는 give메서드를 하나로 통일하세요 public static void main(String[] args) { Human man = new Human("원빈"); Cat cat = new Cat("나옹이"); Dog dog = new Dog("바둑이"); man.give(cat);// 원빈이 나옹이에게 먹이를 준다 man.give(dog);// 원빈이 바둑이에게 먹이를 준다 } } .. 더보기
[Day13] summary1 Main package summary1; public class Main { // 다음 메인함수의 내용이 잘 작동하도록 클래스를 구성하세요 // 상속을 사용하지 않고, 자바의 메서드 오버로딩(중복정의)을 활용하여 코드를 작성하세요 public static void main(String[] args) { Human man = new Human("원빈"); Cat cat = new Cat("나옹이"); Dog dog = new Dog("바둑이"); man.give(cat);// 원빈이 나옹이에게 먹이를 준다 man.give(dog);// 원빈이 바둑이에게 먹이를 준다 } } Human package summary1; public class Human { String name; Human(String name.. 더보기
[Day15] Ex06 package abstractClass; public class Ex06 { public static void main(String[] args) { Thread th1 = new Thread(() -> { for(int i = 0; i { for(char ch = 'A'; ch 더보기
[Day13] Ex05 package abstractClass; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.Random; public class Ex05 { public static void main(String[] args) { // ArrayList를 정렬하는 람다식 Random ran = new Random(); Integer[] arr = new Integer[10]; for(int i = 0; i < arr.length; i++) { arr[i] = ran.nextInt(arr.length * 10); } ArrayList list = new ArrayList(Arrays.asList(.. 더보기
[Day13] Ex04 package abstractClass; class PC { // PC는 USB타입의 장치를 연결할 수 있다 void connect(USB device) { device.onConnect();// 연결된 장치마다, 연결되었을 때 수행하는 동작이 있다 } // 만약 인터페이스를 사용하지 않았다면... 연결하고 싶은 장치의 개수만큼 함수 오버로딩을 수행해야 한다 // void connect(Keyboard device) { ... } // void connect(DataCable device) { ... } // void connect(ElectricFan device) { ... } } interface USB { /*public abstract*/ void onConnect(); } class Keybo.. 더보기
[Day13] Ex03 package abstractClass; class Button { String text; OnClickListner listener; public Button(String text) { this.text = text; } void click() {// 클릭하면 if(listener != null) {// 클릭했을 때 동작이 지정되어 있다면 listener.onClick();// 지정된 내용을 수행한다 } else { System.err.printf("%s : 클릭에 연결된 동작(기능, 함수)이 없습니다\n", text); } } void setOnClickListener(OnClickListner listener) { this.listener = listener; } public String toStr.. 더보기
[Day13] Ex02 package abstractClass; // 인터페이스 : 추상 클래스의 한 종류 // 일반적인 추상 클래스와는 달리, 일반 메서드를 포함할 수 없다 // 인터페이스의 모든 필드는 public static final 속성을 포함한다 // 인터페이스의 모든 메서드는 public abstract 속성을 포함한다 // 인터페이스는 extends 대신 implements 로 상속처리한다 // 인터페이스는 다중상속을 허용한다 interface Test3 { public static final int NUM1 = 10; public void method3(); } class Test4 implements Test3 { @Override public void method3() { System.out.println(.. 더보기
[Day13] Ex01 package abstractClass; // 추상 클래스는 일반 메서드도 포함할 수 있고, 추상 메서드도 포함할 수 있다 abstract class Test1 { int num1 = 10; int num2 = 20; public void method1() { System.out.println("method1"); } public abstract void method2();// { // 추상 메서드는 함수 내용을 가질 수 없다 //} } class Test2 extends Test1 { @Override public void method2() { System.out.println("Test2.method2"); } //The type Test2 must implement the inherited abst.. 더보기
[Day12] Ex04 package inheritance; class Animal { String name; public Animal(String name) { this.name = name; } void bark() { System.out.printf("%s : ...\n", name); } } class Cat extends Animal { public Cat(String name) { super(name); } // Cannot reduce the visibility of the inherited method from Animal @Override// 오버라이딩 할때, 접근제한자의 범위를 넓힐 수 있다 (좁힐 수는 없다) public void bark() { System.out.printf("%s : 야옹\n", nam.. 더보기
[Day12] Ex03 package inheritance; import java.util.Random; class Airplane {// 비행기 // 사람을 태울 수 있는 좌석 5개가 있습니다 Human[] seat = new Human[5]; public boolean entrance(Human ob) {// 메인에서 어떤 타입이든, Human의 서브클래스라면 Human으로 취급한다 // 의사이든, 학생이든 모두 일반적인 '사람'으로 취급한다 for(int i = 0; i < seat.length; i++) { if(seat[i] == null) { seat[i] = ob; System.out.println(ob.getName() + " 탑승했습니다 !!"); return true; } } System.out.println.. 더보기
[Day12] Ex02 package inheritance; class Human {// 사람 private String name; private int age; public Human(String name, int age) { this.name = name; this.age = age; // 0) 서브클래스의 생성자는 슈퍼클래스의 생성자를 반드시 호출해야 한다 // 1) 생성자를 직접 작성하지 않으면, 기본생성자를 만들어준다 // 2) 매개변수를 받는 생성자를 작성하면 기본생성자가 사라진다 // 3) 슈퍼클래스의 생성자 모양에 맞게 서브클래스에서 직접 호출하도록 설정해야 한다 } public void show() { System.out.printf("이름은 %s이고, 나이는 %d살입니다\n", name, age); } pub.. 더보기