1. 程式人生 > >java日常學習:封裝及其使用

java日常學習:封裝及其使用

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使用了封裝的屬性,不太嚴謹!

用於平時自己複習回顧,如有錯誤,歡迎指正