您好,登錄后才能下訂單哦!
本文主要介紹了面向對象的三大特征實例解析,下面看看具體內容。
封裝
封裝一個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編程之Synchronized鎖住的對象、Java語言面向對象編程思想之類與對象實例詳解等,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。