本文主要介绍了面向对象的三大特征实例解析,下面看看具体内容。
封装一个Teacher和Student类
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
|
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(); } } |
Student类
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
|
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
|
package com.hz.test; public class Test { public static void main(String[] args) { String arr[] = { "阿斯达" , "是的" , "大概" , "太诱惑" }; Student stu = new Student( "张三" , 21 ,arr, "打球" ); Teacher tea = new Teacher( "王五" , "阿斯达" , "阿斯达" , 99 ); System.out.println(stu); System.out.println(tea); } } |
输出结果:
姓名=张三, 年龄=21, 课程=[阿斯达, 是的, 大概, 太诱惑], 兴趣=打球
姓名=王五, 专业方向=阿斯达, 所教课程=阿斯达, 教龄=99
定义Play,TaoistPriest,Master,Warrior
1
2
3
4
5
6
7
8
9
|
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
13
|
/** * 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
|
/** * 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
|
/** * 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
|
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
|
我是道士:灵魂火符打怪 我是法师:雷电术打怪 我是武士:烈火术打怪 |
服务器,客户端交互
LoginListener
1
2
3
4
|
public interface LoginListener { public void succeed(String msg); public void failed(String msg); } |
MyLoginListener
1
2
3
4
5
6
7
8
|
public class MyLoginListener implements LoginListener{ public void succeed(String msg) { System.out.println(msg); } public void failed(String msg) { System.out.println(msg); } } |
Server
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
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
|
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()); } } |
输出结果
1
2
3
4
5
|
请输入用户名: zhangsan 请输入用户密码: 123 loading……….登录成功 |
总结
以上就是本文关于Java面向对象编程(封装,继承,多态)实例解析的全部内容,希望对大家有所帮助。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
原文链接:http://blog.csdn.net/qq_33624284/article/details/53606306