日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 封装的详解

發布時間:2024/3/26 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 封装的详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們日常使用的電腦主機,把cpu、內存、主板等等都封裝到機箱里面去。假如沒有機箱的話的出現什么問題,主機、主板全部都散落在一處,然后開機沒有開機按鈕,那么需要我們直接操作接跳線才能把電腦開啟。這樣子的話假如操作不慎的話,會讓機器損壞危險,那么假如用機箱封裝起來的話,那么就不需要這樣子做了。體現了封裝的---安全特性。

你拿電腦去加內存,可以直接給電腦給維修的人,等他加好內存了之后。你拿到的還是那個機箱,里面發生了怎樣子的變化你并不知道。封裝的第二個好處-將變化隔離。

在機箱里面提供一個開機按鈕,而不需要你直接使用跳線開機的話,體現了封裝的—便于使用的特性。

只要機箱提供了一個開機的功能,然后無論這個機箱拿到哪里去,都可以使用這個開機的功能.體現了封裝的---提供重復性的特性。

對比一下沒有封裝和有封裝~

一,沒有封裝的時候:

模擬問題

1.?描述Employee類。定義姓名,工號,性別的成員變量,和工作的方法。成員使用public修飾。

2.?創建Employee對象,對象.成員的方式進行賦值。最后該對象調用工作方法。

3.?總結:如果不使用封裝,很容易賦值錯誤,并且任何人都可以更改,造成信息的 ???不安全。

4.?問題解決:使用封裝

public class EmployeeDemo {public static void main(String[] args) {// 創建對象Employee jack = new Employee();// 進制通過類名.成員的形式調用成員。初始化實例變量jack.name = "jack";jack.id = "123456";jack.gender = "男";// 調用成員方法jack.work();System.out.println();// 傳入非法的參數jack.gender = "不是男人";jack.work();} }class Employee {String name;String id;String gender;public void work() {System.out.println(id + ":" + name + ":" + gender + " 努力工作中!!!");} } 二,有封裝的時候:

1:設置類的屬性為private(關鍵字),不能使用對象名.屬性名的方式直接訪問對象的屬性。

public class EmployeeDemo {public static void main(String[] args) {// 創建對象Employee jack = new Employee();//編譯報錯jack.name = "jack";jack.id = "123456";jack.gender = "男";// 編譯報錯jack.gender = "不是男人";jack.work();} }class Employee {//使用了private修飾了成員變量private String name;private String id;private String gender;public void work() {System.out.println(id + ":" + name + ":" + gender + " 努力工作中!!!");} }

2:修改Employee類 性別的修飾符修改為private

? ?1:編譯不通過

? ?2private修飾的成員在自己所在的類中可以使用,在類外邊不可以使用。

? ?3Employee類的gender的修飾符修改為private后,無法再類外調用,那么如何給gender設置值?

? ? ? 1:對外提供公開的用于設置對象屬性的public方法

? ? ? ? ? 1:設置set

? ? ? ? ? 2:獲取get

? ? ? 2:在set方法中加入邏輯判斷,過濾掉非法數據。

? ? ? 3:將所有的成員變量封裝加上private,提供getset方法

public class EmployeeDemo {public static void main(String[] args) {// 創建對象Employee jack = new Employee();// 調用公有方法,給成員變量賦值。jack.setId("007");jack.setName("jack");jack.setGender("男xx");// 獲取實例變量的值System.out.println(jack.getGender());System.out.println(jack.getId());System.out.println(jack.getName());// 調用成員方法jack.work();} }class Employee {private String name;private String id;private String gender;// 提供公有的get set方法public String getName() {return name;}public void setName(String n) {name = n;}public String getId() {return id;}public void setId(String i) {id = i;}public String getGender() {return gender;}public void setGender(String gen) {if ("男".equals(gen) || "女".equals(gen)) {gender = gen;} else {System.out.println("請輸入\"男\"或者\"女\"");}}public void work() {System.out.println(id + ":" + name + ":" + gender + " 努力工作中!!!");} } 三,封裝的好處:

1:隱藏了類的具體實現

2:操作簡單

3:提高對象數據的安全性


寫一個例子吧~

描述一個計算器類

class Calculator {// 1. 查看具體的計算器對象抽取所有計算器具有的共同屬性public String name = "我的計算器我做主";public double num1;public double num2;public char option;// 2. 查看具體的計算器對象抽取所有計算器具有的共同功能// 2.1 定義接受數據的功能函數public void init( double a , char op , double b ){num1 = a;option = op;num2 = b;}// 2.2 定義計算的功能public void calculate(){switch ( option ){case '+': System.out.println( name + " : " + num1 + " + " + num2 + " = " + ( num1 + num2 ) );break;case '-': System.out.println( name + " : " + num1 + " - " + num2 + " = " + ( num1 - num2 ) );break;case '*': System.out.println( name + " : " + num1 + " * " + num2 + " = " + ( num1 * num2 ) );break;case '/': {if( num2 != 0 ) System.out.println( name + " : " + num1 + " / " + num2 + " = " + ( num1 / num2 ) );elseSystem.out.println("除數不能為0!");break;}case '%': {// 1.處理結果的符號問題,使得結果的符號滿足數學的要求// 2.解決NaN的問題System.out.println( name + " : " + num1 + " % " + num2 + " = " + ( num1 % num2 ) );break;}default : System.out.println("你在搗亂,我不理你,氣死你......");}} } class Demo9 {public static void main(String[] args) {Calculator cal = new Calculator();cal.init( 41 , '%' , 0 );cal.calculate();System.out.println("計算完畢!再來一次......");} }













?

總結

以上是生活随笔為你收集整理的Java 封装的详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。