번호저장공간은 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");

	}

}

 

+ Recent posts