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

封装

封装一个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……….登录成功

你可能感兴趣的:(Java基础知识练习,Java编程基础知识,Java面向对象,Java学习之路笔记,面向对象,继承,多态,封装)