面向对象(封装,继承,多态)

来源:互联网 发布:博罗县政府网络问政网 编辑:程序博客网 时间:2024/05/16 23:38

封装

封装一个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();    }}

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();    }   }

测试类

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

public class Play {    String main;    public Play(String main) {        this.main = main;    }    public void hitMonster() {        System.out.println(main+"打怪");    }}
/** * TaoistPriest:道士 * @author ztw * */public class TaoistPriest extends Play {    {        System.out.print("我是道士:");    }    public TaoistPriest(String main) {        super(main);    }}
/** * Master:法师 * @author ztw * */public class Master extends Play{    {        System.out.print("我是法师:");    }    public Master(String main) {        super(main);    }}
/** * Warrior:武士 * @author ztw * */public class Warrior extends Play{    {        System.out.print("我是武士:");    }    public Warrior(String main) {        super(main);    }}

测试类

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();    }}
  • 输出结果:

我是道士:灵魂火符打怪
我是法师:雷电术打怪
我是武士:烈火术打怪

多态

服务器,客户端交互

LoginListener

public interface LoginListener {    public void succeed(String msg);    public void failed(String msg);}

MyLoginListener

public class MyLoginListener implements LoginListener{    public void succeed(String msg) {        System.out.println(msg);    }    public void failed(String msg) {        System.out.println(msg);    }}

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("登录失败");            }        }    }}

测试类

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());    }}
  • 输出结果

请输入用户名:
zhangsan
请输入用户密码:
123
loading……….登录成功

0 0
原创粉丝点击