βΆ μΈν°νμ΄μ€ μμνκΈ°
μΈν°νμ΄μ€ κ° μμμ ꡬν μ½λλ₯Ό ν΅ν΄ κΈ°λ₯μ μμνλ κ²μ΄ μλλ―λ‘ ν μμμ΄λΌκ³ λΆλ₯Έλ€.
ν΄λμ€μ κ²½μ°μλ νλμ ν΄λμ€λ§ μμλ°μ μ μμ§λ§, μΈν°νμ΄μ€λ μ¬λ¬ κ°λ₯Ό λμμ μμλ°μ μ μλ€.
ν μΈν°νμ΄μ€κ° μ¬λ¬ μΈν°νμ΄μ€λ₯Ό μμλ°μΌλ©΄, μμλ°μ μΈν°νμ΄μ€λ μμ μΈν°νμ΄μ€μ μ μΈν μΆμ λ©μλλ₯Ό λͺ¨λ κ°μ§κ² λλ€.
β
MyInterface μΈν°νμ΄μ€λ Xμ Y μΈν°νμ΄μ€λ₯Ό μμλ°κ³ , MyClass ν΄λμ€λ MyInterface μΈν°νμ΄μ€λ₯Ό μ€μ λ‘ μ¬μ©ν μ μλλ‘ κ΅¬ννλ€. MyInterface μΈν°νμ΄μ€λ λ μΈν°νμ΄μ€λ₯Ό μμλ°κ³ μμ μ΄ μΆμ λ©μλλ₯Ό 1κ° κ°μ§κ³ μμΌλ―λ‘ μμλ°μ ν μΆμ λ©μλλ₯Ό μ΄ 3κ° κ°μ§κ² λλ€. λ°λΌμ MyClassκ° κ΅¬νν΄μΌ ν μΆμ λ©μλ κ°μλ μ΄ 3κ°λ€.
β
β
package interfaceex;
public class MyClass implements MyInterface {
@Override
public void x() { // X μΈν°νμ΄μ€μμ μμλ°μ x() λ©μλ ꡬν
System.out.println("x()");
}
@Override
public void y() { // Y μΈν°νμ΄μ€μμ μμλ°μ y() λ©μλ ꡬν
System.out.println("y()");
}
@Override
public void myMethod() { // MyInterface μΈν°νμ΄μ€μ myMethod() λ©μλ ꡬν
System.out.println("myMethod()");
}
}
package interfaceex;
public class MyClassTest {
public static void main(String[] args) {
MyClass mClass = new MyClass();
X xClass = mClass; // μμ μΈν°νμ΄μ€ XνμΌλ‘ λμ
νλ©΄
xClass.x(); // Xμ μ μΈν λ©μλλ§ νΈμΆ κ°λ₯
Y yClass = mClass; // μμ μΈν°νμ΄μ€ YνμΌλ‘ λμ
νλ©΄
yClass.y(); // Yμ μ μΈν λ©μλλ§ νΈμΆ κ°λ₯
MyInterface iClass = mClass; // ꡬνν μΈν°νμ΄μ€ν λ³μμ λμ
νλ©΄ μΈν°νμ΄μ€κ° μμν λͺ¨λ λ©μλ νΈμΆ κ°λ₯
iClass.myMethod();
iClass.x();
iClass.y();
}
}
<μ€ν κ²°κ³Ό>
β
βΆ μΈν°νμ΄μ€ ꡬνκ³Ό ν΄λμ€ μμ ν¨κ» μ°κΈ°
ν ν΄λμ€μμ ν΄λμ€ μμκ³Ό μΈν°νμ΄μ€ ꡬνμ λͺ¨λ ν μλ μλ€.
ββ
Shelf.java
package bookshelf;
import java.util.ArrayList;
public class Shelf {
protected ArrayList<String> shelf; // μλ£λ₯Ό μμλλ‘ μ μ₯ν ArrayList μ μΈ
public Shelf() { // λν΄νΈ μμ±μλ‘ Shelf ν΄λμ€λ₯Ό μμ±νλ©΄ ArrayListλ μμ±λ¨
shelf = new ArrayList<String>();
}
public ArrayList<String> getShelf() {
return shelf;
}
public int getCount() {
return shelf.size();
}
}
-6νμμ Shelf ν΄λμ€μ μλ£λ₯Ό μμλλ‘ μ μ₯ν λ°°μ΄ κ°μ²΄λ₯Ό μ μΈνλ€.
β
β
Queue.java
package bookshelf;
public interface Queue {
void enQueue(String title); // λ°°μ΄μ 맨 λ§μ§λ§μ μΆκ°
String deQueue(); // λ°°μ΄μ 맨 μ²μ νλͺ© λ°ν
int getSize(); // νμ¬ Queueμ μλ κ°μ λ°ν
}
-4νμ euQueue( ) λ©μλλ μ λ ₯λλ μμ κ°μ λ°°μ΄μ 맨 λ€μ μΆκ°νλ€.
-5νμ deQueue( ) λ©μλλ 맨 μμ μλ μμλ₯Ό μ κ±°νκ³ κ·Έ κ°μ λ°ννλ€.
β
β
BookShelf.java
package bookshelf;
public class BookShelf extends Shelf implements Queue {
@Override
public void enQueue(String title) { // λ°°μ΄μ μμ μΆκ°
shelf.add(title);
}
@Override
public String deQueue() { // 맨 μ²μ μμλ₯Ό λ°°μ΄μμ μμ νκ³ λ°ν
return shelf.remove(0);
}
@Override
public int getSize() { // λ°°μ΄ μμ κ°μ λ°ν
return getCount();
}
}
-3νμ 보면 BookShelf ν΄λμ€λ Shelf ν΄λμ€λ₯Ό μμλ°κ³ Queue μΈν°νμ΄μ€λ₯Ό ꡬννλ€. Shelf ν΄λμ€κ° κ°μ§κ³ μλ ArrayList λ°°μ΄μ μ¬μ©νμ¬ Queue μΈν°νμ΄μ€μμ μ μΈν λ©μλλ₯Ό λͺ¨λ ꡬννλ€.
β
β
BookShelfTest.java
package bookshelf;
public class BookShelfTest {
public static void main(String[] args) {
Queue shelfQueue = new BookShelf();
shelfQueue.enQueue("νλ°±μ°λ§₯ 1");
shelfQueue.enQueue("νλ°±μ°λ§₯ 2");
shelfQueue.enQueue("νλ°±μ°λ§₯ 3");
System.out.println(shelfQueue.deQueue());
System.out.println(shelfQueue.deQueue());
System.out.println(shelfQueue.deQueue());
}
}
<μ€ν κ²°κ³Ό>
β
μ°μ΅λ¬Έμ Q7)
μ«μ μ λ ¬ μκ³ λ¦¬μ¦μλ μ¬λ¬ μ μ± μ΄ μ‘΄μ¬νλ€. λ€μ μλ리μ€μ²λΌ μΈν°νμ΄μ€λ₯Ό μ€κ³νκ³ μΈν°νμ΄μ€λ₯Ό ꡬνν μκ³ λ¦¬μ¦ ν΄λμ€λ₯Ό λ§λ€μ΄ 보λΌ.
β
<쑰건>
package sorting;
import java.io.IOException;
public class SortTest {
public static void main(String[] args) throws IOException {
System.out.println("μ λ ¬ λ°©μμ μ ννμΈμ.");
System.out.println("B : BubbleSort ");
System.out.println("H : HeapSort ");
System.out.println("Q : QuickSort ");
int ch = System.in.read();
Sort sort = null;
if (ch == 'B' || ch == 'b') {
sort = new BubbleSort();
} else if (ch == 'H' || ch == 'h') {
sort = new HeapSort();
} else if (ch == 'Q' || ch == 'q') {
sort = new QuickSort();
} else {
System.out.println("μ§μλμ§ μλ κΈ°λ₯μ
λλ€.");
return;
}
// μ λ ¬ λ°©μκ³Ό μκ΄ μμ΄ Sortμ μ μΈν λ©μλ νΈμΆ
int[] arr = new int[10];
sort.ascending(arr);
sort.descending(arr);
sort.description();
}
}
<λ΄κ° ν κ²>β
1. μΌλ¨ μ€ν ν΄λμ€λ₯Ό ν λλ‘ λλ¨Έμ§ ν΄λμ€λ€μ λ§λ€μ΄μ€. (Sort, BubbleSort, HeapSort, QuickSort)
β
2. κ°μ₯ κΈ°λ³Έμ΄ λ Sort ν΄λμ€λ₯Ό μΈν°νμ΄μ€λ‘ μ μΈνκ³ κΈ°λ³Έ νμ μ§°λ€.
package sorting;
public interface Sort {
public void ascending(int[] arr);
public void descending(int[] arr);
default void description() {
System.out.println("μ«μλ₯Ό μ λ ¬νλ μκ³ λ¦¬μ¦μ
λλ€.");
}
}
3. λλ¨Έμ§ λΆλΆμ λ©κΎΌλ€.
β
BubbleSort.java
package sorting;
public class BubbleSort implements Sort {
@Override
public void ascending(int[] arr) {
System.out.println("BubbleSort ascending");
}
@Override
public void descending(int[] arr) {
System.out.println("BubbleSort descending");
}
@Override
public void description() {
Sort.super.description();
System.out.println("BubbleSortμ
λλ€");
}
}
HeapSort.java
package sorting;
public class HeapSort implements Sort {
@Override
public void ascending(int[] arr) {
System.out.println("HeapSort ascending");
}
@Override
public void descending(int[] arr) {
System.out.println("HeapSort descending");
}
@Override
public void description() {
Sort.super.description(); // Sortλ μΈν°νμ΄μ€ μ΄λ¦ ꡬλ³μ©
System.out.println("HeapSortμ
λλ€");
}
}
QuickSort.java
package sorting;
public class QuickSort implements Sort {
@Override
public void ascending(int[] arr) {
System.out.println("QuickSort ascending");
}
@Override
public void descending(int[] arr) {
System.out.println("QuickSort descending");
}
@Override
public void description() {
Sort.super.description();
System.out.println("QuickSortμ
λλ€");
}
}
μ¬ν) μΆλ ₯λ¬Έμ λ°λ³΅ν΄μ λμ€κ² λ§λ€μ΄λ³΄λΌ.
β
<쑰건>
β
β
<λ΄κ° ν κ²> λ―Έμμ±
package sorting;
import java.io.IOException;
public class SortTest {
public static void main(String[] args) throws IOException {
while (true) {
System.out.println("μ λ ¬ λ°©μμ μ ννμΈμ.");
System.out.println("B : BubbleSort ");
System.out.println("H : HeapSort ");
System.out.println("Q : QuickSort ");
int ch = System.in.read();
Sort sort = null;
if (ch == 'B' || ch == 'b') {
sort = new BubbleSort();
} else if (ch == 'H' || ch == 'h') {
sort = new HeapSort();
} else if (ch == 'Q' || ch == 'q') {
sort = new QuickSort();
} else {
System.out.println("μ§μλμ§ μλ κΈ°λ₯μ
λλ€.");
return;
}
// μ λ ¬ λ°©μκ³Ό μκ΄ μμ΄ Sortμ μ μΈν λ©μλ νΈμΆ
int[] arr = new int[10];
sort.ascending(arr);
sort.descending(arr);
sort.description();
System.out.println();
}
}
}
<κ²°κ³Όκ°>
-μ λ κ² μ’ λ£λμ΄λ²λ¦°λ€ γ γ
β
β μ μλμ νΌλλ°±
μ λ κ² νλκ² λ§λλ° int ch = System.in.read( ); μ λλ¬Έμ λ°λ³΅μ΄ μλλ€ν¨. (μ΄μ λ₯Ό λ€μλλ° μ΄ν΄κ° μκ°)
κ³μ μ€νμν€λ €λ©΄ ch = System.in.read( ); κ° μ²λ¦¬λ₯Ό λ κ° ν΄ μ€μΌλλ€κ³ νμ ¨λ€.
package sorting;
import java.io.IOException;
public class SortTest {
public static void main(String[] args) throws IOException {
while (true) {
System.out.println("μ λ ¬ λ°©μμ μ ννμΈμ.");
System.out.println("B : BubbleSort ");
System.out.println("H : HeapSort ");
System.out.println("Q : QuickSort ");
int ch = System.in.read();
Sort sort = null;
if (ch == 'B' || ch == 'b') {
sort = new BubbleSort();
} else if (ch == 'H' || ch == 'h') {
sort = new HeapSort();
} else if (ch == 'Q' || ch == 'q') {
sort = new QuickSort();
} else {
System.out.println("μ§μλμ§ μλ κΈ°λ₯μ
λλ€.");
return;
}
// μ λ ¬ λ°©μκ³Ό μκ΄ μμ΄ Sortμ μ μΈν λ©μλ νΈμΆ
int[] arr = new int[10];
sort.ascending(arr);
sort.descending(arr);
sort.description();
ch = System.in.read();
ch = System.in.read();
System.out.println();
}
}
}
'Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java-κΈ°μ΄] String ν΄λμ€ (0) | 2021.02.21 |
---|---|
[Java-κΈ°μ΄] Object ν΄λμ€ (0) | 2021.02.21 |
[Java-κΈ°μ΄] μΈν°νμ΄μ€ νμ©νκΈ° (0) | 2021.02.21 |
[Java] μ μ λ©μλ (0) | 2021.02.21 |
[Java] λν΄νΈ λ©μλ (0) | 2021.02.20 |
λκΈ