Java 面向对象 封装 继承 多态

来源:互联网 发布:怎么看淘宝店铺地址 编辑:程序博客网 时间:2024/05/16 15:03

封装

封装一个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,"打球");        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());    }}
阅读全文
0 0
原创粉丝点击