您的位置:首页 > 编程语言 > Java开发

Java 面向对象 封装 继承 多态

2017-09-27 22:46 483 查看


封装


封装一个Teacher和Student类

package com.hz.test;

public class Teacher {

private String name;
private String majorDirection;
private String teachCourse;
private int teachAge;

public Teacher() {
super();
}

public Teacher(String name,String majorDirection,String teachCourse,int teachAge) {
this.name = name;
this.majorDirection = majorDirection;
this.teachCourse = teachCourse;
this.teachAge = teachAge;
}
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getMajorDirection() {
return majorDirection;
}

public void setMajorDirection(String majorDirection) {
this.majorDirection = majorDirection;
}

public String getTeachCourse() {
return teachCourse;
}

public void setTeachCourse(String teachCourse) {
this.teachCourse = teachCourse;
}

public int getTeachAge() {
return teachAge;
}

public void setTeachAge(int teachAge) {
this.teachAge = teachAge;
}

public String toString() {
return "姓名=" + getName() + ", 专业方向=" + getMajorDirection()
+ ", 所教课程=" + getTeachCourse() + ", 教龄=" + getTeachAge();
}
}
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

Student类
package com.hz.test;

import java.util.Arrays;

/**
* @author ztw
*
*/
public class Student {

private String name;
private int age;
private String[] courses;
private String interest;

public Student() {
super();
}

public Student(String name,int age,String[] courses,String interest) {
this.name = name;
this.age = age;
this.courses = courses;
this.interest = interest;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}

public void setAge(int age){
if(age<0){
System.out.println("年龄不能为负值");
}else{
this.age = age;
}
}
public int getAge(){
return age;
}

public void setCourses(String[] courses){
this.courses = courses;
}
public String getCourses(){
return Arrays.toString(courses);
}

public void setInterest(String interest){
this.interest = interest;
}
public String getInterest(){
return interest;
}

public String toString() {
return "姓名=" + getName() + ", 年龄=" + getAge() + ", 课程=" + getCourses()
+ ", 兴趣=" + getInterest();
}
}
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

测试类
package com.hz.test;

public class Test {

public static void main(String[] args) {
String arr[] = {"阿斯达","是的","大概","太诱惑"};
Student stu = new Student("张三",21,arr,"打球");
efd3
Teacher tea = new Teacher("王五","阿斯达","阿斯达",99);
System.out.println(stu);
System.out.println(tea);
}
}
1
2
3
4
5
6
7
8
9
10
11
12

输出结果:
姓名=张三, 年龄=21, 课程=[阿斯达, 是的, 大概, 太诱惑], 兴趣=打球
姓名=王五, 专业方向=阿斯达, 所教课程=阿斯达, 教龄=99


继承


定义Play,TaoistPriest,Master,Warrior

public class Play {

String main;

public Play(String main) {
this.main = main;
}
public void hitMonster() {

System.out.println(main+"打怪");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
/**
* TaoistPriest:道士
* @author ztw
*
*/
public class TaoistPriest extends Play {

{
System.out.print("我是道士:");
}
public TaoistPriest(String main) {
super(main);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
* Master:法师
* @author ztw
*
*/
public class Master extends Play{

{
System.out.print("我是法师:");
}
public Master(String main) {
super(main);

}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
* Warrior:武士
* @author ztw
*
*/
public class Warrior extends Play{

{
System.out.print("我是武士:");
}
public Warrior(String main) {
super(main);

}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

测试类
public class Test {

public static void main(String[] args) {
TaoistPriest tp = new TaoistPriest("灵魂火符");
tp.hitMonster();
Master m = new Master("雷电术");
m.hitMonster();
Warrior w = new Warrior("烈火术");
w.hitMonster();
}
}
1
2
3
4
5
6
7
8
9
10
11
输出结果:

我是道士:灵魂火符打怪 

我是法师:雷电术打怪 

我是武士:烈火术打怪


多态


服务器,客户端交互


LoginListener

public interface LoginListener {

public void succeed(String msg);

public void failed(String msg);
}
1
2
3
4
5
6
7


MyLoginListener

public class MyLoginListener implements LoginListener{

public void succeed(String msg) {
System.out.println(msg);

}

public void failed(String msg) {
System.out.println(msg);

}
}
1
2
3
4
5
6
7
8
9
10
11
12


Server

public class Server {

public void login(String userName,String password,LoginListener listener) {
System.out.print("loading");
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(100*i);
System.out.print(".");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(userName.equals("zhangsan") && password.equals("123")){
if(listener!=null){
listener.succeed("登录成功");
}
}else{
if(listener!=null){
listener.succeed("登录失败");
}
}

}
}
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

测试类
public class LoginTest {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String userName = sc.next();
System.out.println("请输入用户密码:");
String password = sc.next();

Server server = new Server();
server.login(userName, password, new MyLoginListener());

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: