번호저장공간은 3칸이고, 같은이름·번호는 등록을 못하는 프로그램 구현
abstract class Phone {
Phone(String name, String number) {
this.name = name;
this.number = number;
data = new String[2][3];
}
int index = 0;
String number;
String name;
String[][] data;
void addData(String name, String number) {
if (index >= 3) {
System.out.println("전화번호부가 가득 차있어 저장할 수 없습니다.");
return;
}
for (int i = 0; i <= this.index; i++) {
if (i != 0 && this.data[0][i - 1].equals(name)) {
System.out.println("이미 같은 이름이 있습니다.");
return;
} else if (i != 0 && this.data[1][i - 1].equals(number)) {
System.out.println("이미 같은 번호가 있습니다.");
return;
}
}
this.data[0][this.index] = name;
this.data[1][this.index] = number;
this.index++;
System.out.println(name + "님의 번호 " + number + "저장 완료");
}
void play() {
System.out.println("음악 재생");
}
abstract void call();
}
// 1. 상속 계층 설계 == 정의 단계
// 2. 멤버변수, 메소드 정의
// 3. 생성자
class Galaxy extends Phone {
Galaxy(String name, String number) {
super(name, number);
System.out.println(this.name + "님 Galaxy 등록완료");
}
void call() {
System.out.println("하이 빅스비");
}
}
class IPhone extends Phone {
IPhone(String name, String number) {
super(name, number);
System.out.println(this.name + "님 Iphone 등록완료");
}
void call() {
System.out.println("시리야!");
}
}
public class PhoneTest {
public static void main(String[] args) {
IPhone i1 = new IPhone("이병재", "010 3746 6933");
Galaxy g1 = new Galaxy("아빠", "010 2312 5988");
i1.call();
g1.call();
i1.addData("아빠", "010 2312 5988");
i1.addData("아빠", "123 456 1324");
i1.addData("엄마", "010 5552 9423");
i1.addData("친구4", "010 5552 9423");
g1.addData("친구1", "123 456 1324");
g1.addData("친구2", "123 456 1324");
g1.addData("친구3", "123 456 1324");
g1.addData("친구4", "123 456 1324");
}
}
'JAVA' 카테고리의 다른 글
| JAVA Abstract Class 추상 클래스 정리 (0) | 2021.07.15 |
|---|---|
| JAVA 추상 클래스 (Abstract Class)를 이용한 카드 알고리즘 (0) | 2021.07.15 |
| JAVA 배열에서 해당하는 번호 출력 (0) | 2021.07.14 |
| JAVA 삽입정렬 알고리즘 (0) | 2021.07.14 |
| JAVA 알고리즘 *을 사용하여 속이 빈 정사각형 만들기 (0) | 2021.07.09 |