java日常學習:封裝及其使用
阿新 • • 發佈:2019-02-15
java程式碼段
java封裝定義和使用
面向物件的語言三大特徵:
1. 封裝
2. 繼承
3. 多型
封裝的步驟:
1. 使用private修飾需要被封裝的屬性。
2. 根據需求提供公共的方法set或者get方法獲取以及設定該私有屬性的值。
方法的命名規範:
set屬性名 或者 get屬性名
封裝的好處:
1. 提高了資料的安全性。
2. 操作簡單。
3. 隱藏了實現。
疑問1 :封裝的應用場景?
如果一個屬性不想被其他人直接的訪問,那麼這時候就可以使用封裝。
現實開發中的實體類的成員屬性(成員變數)一般我們都會封裝起來。
實體類:用於描述一類事物的類則稱作為實體類。 比如: class Car{ } class Student
疑問2:封裝一定需要提供get方法和set方法嗎?
不一定,看使用這個類的人需要需要使用到(看需求).
許可權修飾符: 許可權修飾符就是用於控制變數或者方法的可見範圍。
public : 公共, public 修飾的變數或者方法可以在任何範圍內可見。
private : 私有的, private 修飾的變數或者是方法只能在本類中可見。
/* 問題:出現了性別錯亂的問題。 需求: 使用java類描述一個網站的會員。 */ //建立一個會員類; class Member{ public String userName; //使用者名稱; private String sex; // 性別; private int age; //年齡; public int salary; //收入; //提供一個公共的方法設定性別; public void setSex(String s){ if(s.equals("男")||s.equals("女")){ sex = s; }else{ //預設是男; sex = "男"; } } //提供一個公共方法獲取性別; public String getSex(){ return sex; } public void meet(){ System.out.println("姓名:"+ userName+ " 性別:"+ sex+" 收入:"+ salary); } } class demo1 { public static void main(String[] args) { Member m = new Member(); //給會員賦予屬性值; m.userName = "狗娃"; m.setSex("女"); m.salary = 10000; System.out.println("姓名:"+ m.userName+ " 性別:"+ m.getSex()+" 收入:"+ m.salary); } }
java封裝練習:簡單計算器
/* 需求:使用java類描述一個計算器,計算器具備 的公共屬性: 運算元1 、運算元2 、 運算子. 公共的功能:運算。 要求: 計算器的屬性需要封裝起來,不能直接對計算器的屬性賦值。 */ //建立一個計算器類; class Caculator { private int num1; //運算元num1; private int num2; //運算元num2; private char option; //操作運算子; //提供公共的方法設定計算器的屬性(此處是偷懶的做法,理應set然後get); public void init(int n1,int n2,char o){ if (o=='+'||o=='-'||o=='*'||o=='/'){ option = o; }else{ System.out.println("智障輸入錯誤"); } num1 = n1; num2 = n2; } //運算的功能; public void caculate(){ switch (option){ case '+': System.out.println("加法運算:結果是"+(num1+num2)); break; case '-': System.out.println("減法運算:結果是"+(num1-num2)); break; case '*': System.out.println("乘法運算:結果是"+(num1*num2)); break; case '/': System.out.println("除法運算:結果是"+(num1/num2)); break; } } } class demo2 { public static void main(String[] args) { //建立計算器物件; Caculator c=new Caculator(); //設定計算器的屬性值; c.init(14,13,'+'); //呼叫計算器的計算功能; c.caculate(); } }
總結:封裝常用於那些不想讓別人自己隨意修改和輸入的地方。
第一步:要設定set方法,方法裡就是不想隨意修改的判斷條件。例如:
public void setSex(String s){
if(s.equals("男")||s.equals("女")){
sex = s;
}else{
//預設是男;
sex = "男";
}
}
第二步:呼叫get方法,由於下面main方法中要輸出封裝的內容,但是不能直接呼叫,所以要加上get方法來返回需要呼叫的值,例如:
public String getSex(){
return sex;
}
說明:在編寫簡易計算器的程式中,由於筆者前面階段一直用記事本來編寫程式,打牢基礎,但是效率低下,所以封裝屬性之後沒有set和get,直接public使用了封裝的屬性,不太嚴謹!
用於平時自己複習回顧,如有錯誤,歡迎指正