java/코드 리뷰
10. oop3 - (1) PhoneDemo (형변환)
Astaroth아스
2020. 4. 2. 20:08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package oop3;
/**
* 1
* @author HYB
*
*/
public class Phone {
String tel;
void call() {
System.out.println("전화를 겁니다.");
}
void receive() {
System.out.println("전화를 받습니다.");
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package oop3;
/**
* 2
* @author HYB
*
*/
public class FeaturePhone extends Phone{
String pixel = "20만 화소";
void sms() {
System.out.println("sms 메시지를 주고받습니다.");
}
void photo() {
System.out.println("사진을 찍습니다.");
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package oop3;
/**
* 3
* @author HYB
*
*/
public class SmartPhone extends FeaturePhone {
String ip;
String email;
void mail() {
System.out.println("메일을 주고 받습니다.");
}
void internet() {
System.out.println("인터넷을 합니다.");
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package oop3;
/**
* 4
* @author HYB
*
*/
public class Galaxy extends SmartPhone{
String googleAccount;
String googlePassword;
void bixby() {
System.out.println("하이 빅스비");
}
void samsungpay() {
System.out.println("삼성페이로 결제합니다.");
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package oop3;
/**
* 5
* @author HYB
*
*/
public class Iphone extends SmartPhone {
String userid;
String password;
void applemusic() {
System.out.println("애플뮤직을 듣습니다.");
}
void siri() {
System.out.println("시리야.");
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
package oop3;
/**
* 7
* @author HYB
*
*/
public class Iphone8 extends Iphone {
void fingerScan() {
System.out.println("지문을 인식합니다.");
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package oop3;
/**
* 8
* @author HYB
*
*/
public class IphoneX extends Iphone {
void faceScan() {
System.out.println("얼굴을 인식합니다.");
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package oop3;
/**
* 9
* @author HYB
*
*/
public class Iphone11 extends IphoneX {
void tripleCamera() {
System.out.println("카메라 3개로 찍기");
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
package oop3;
/**
* 6
* @author HYB
*
*/
public class PhoneDemo {
public static void main(String[] args) {
// 형변환
// Iphone 객체는 Iphone 타입의 변수 및 Iphone 조상 타입의 변수에 저장 가능
Iphone p1 = new Iphone();
SmartPhone p2 = new SmartPhone();
FeaturePhone p3 = new FeaturePhone();
Phone p4 = new Phone();
// Galaxy p5 = new Iphone(); // Iphone 객체는 Galaxy 타입의 변수에 담을 수 없음
// 클래스 사용 가능한 참조 변수
p1.userid = "hong"; // Iphone p1
p1.password = "1q2w3e4r"; // Iphone p1
p1.applemusic(); // Iphone p1
p1.siri(); // Iphone p1
p1.ip = "192.168.10.21"; // SmaerPhone p1 p2
p1.email = "hong@gmail.com"; // SmaerPhone p1 p2
p1.mail(); // SmaerPhone p1 p2
p1.internet(); // SmaerPhone p1 p2
p1.pixel = "천만화소"; // FeaturePhone p1 p2 p3
p1.photo(); // FeaturePhone p1 p2 p3
p1.tel = "010-1111-1111"; // Phone p1 p2 p3 p4
p1.call(); // Phone p1 p2 p3 p4
p1.receive(); // Phone p1 p2 p3 p4
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package oop3;
/**
* 10
* @author HYB
*
*/
import java.util.Scanner;
public class PhoneDemo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
SmartPhone testPhone = null;
System.out.println("인터넷 기능을 테스트할 폰을 선택하세요.");
System.out.println("1.스마트폰 2.아이폰 3.갤럭시");
int no = sc.nextInt();
if (no == 1) {
System.out.println("스마트폰 객체로 테스트를 진행합니다.");
testPhone = new SmartPhone();
} else if (no == 2) {
System.out.println("아이폰 객체로 테스트를 진행합니다.");
testPhone = new Iphone();
} else if (no == 3) {
System.out.println("갤럭시 객체로 테스트를 진행합니다.");
testPhone = new Galaxy();
}
if(testPhone != null) {
testPhone.internet();
} else {
System.out.println("잘못된 번호를 입력하였습니다.");
}
sc.close();
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package oop3;
/**
* 11
* @author HYB
*
*/
public class PhoneDemo3 {
public static void main(String[] args) {
Phone p = new Iphone8();
System.out.println("Phone --> " + (p instanceof Phone));
System.out.println("FeaturePhone --> " + (p instanceof FeaturePhone));
System.out.println("SmartPhone --> " + (p instanceof SmartPhone));
System.out.println("IPhone --> " + (p instanceof Iphone));
System.out.println("Galaxy --> " + (p instanceof Galaxy));
System.out.println("IPhone8 --> " + (p instanceof Iphone8));
System.out.println("IPhoneX --> " + (p instanceof IphoneX));
System.out.println("IPhone11 --> " + (p instanceof Iphone11));
}
}
|