Java學習lesson 06

來源:互聯網
上載者:User

標籤:匿名對象、private、this、static

匿名對象

   * 節省代碼,並且很多情況下是針對某個方法只需要調用一次的情況下。


   * 匿名對象可以調用方法,也可以給成員變數賦值。 同時也可以作為方法的參數進行傳遞。

   

public class AnonDemo{    public static void main(String[] args){                System.out.println(new Student().name);        System.out.println(new Student().sex);        System.out.println(new Student().age);}}class Student{    String name="poppy";    String sex="女";    int age=20;}


650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/08/9A/wKiom1nkj-Sw1z2sAAAVY3gdoow908.png-wh_500x0-wm_3-wmp_4-s_2269510850.png" title="8Z$9Z13E}THTFRYJMU4TY88.png" alt="wKiom1nkj-Sw1z2sAAAVY3gdoow908.png-wh_50" />


封裝

   * 概念: 隱藏對象的屬性和細節,僅對外提供公用的方法進行訪問。

   * private

    *  當類的成員變數使用private 修飾符修飾,那麼就不可以直接存取到該成員變數.

    *  當使用private 修飾的成員變數或者成員方法,僅能在本類中使用

    *  private 對於main 方法的修飾,也是可以產生作用的.

public class PrivateDemo{    public static void main(String[] args){    Student student=new Student();     //student.name="弋痕夕";//如果在外部存取private則會出現name可以在Student中訪問private    student.subject();}}class Student{    private String name;    private String sex;    private int age;    void subject(){            name="山鬼謠";//private在本類中沒有限制        System.out.println(name+"選擇的課是java");         }}

student.name(錯誤)

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/08/BC/wKiom1nmmhCxOQncAAAZMBzo6f8347.png-wh_500x0-wm_3-wmp_4-s_1636494779.png" title="}OZH0]}JFW7GW%R{Y9@6K]B.png" alt="wKiom1nmmhCxOQncAAAZMBzo6f8347.png-wh_50" />


name="山鬼謠";

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/A7/6B/wKioL1nmmNWzIZ3hAAATl282WgQ529.png-wh_500x0-wm_3-wmp_4-s_2335955100.png" title="LGGCUC5VRD(BHS36N~VFMQH.png" alt="wKioL1nmmNWzIZ3hAAATl282WgQ529.png-wh_50" />

  

  * javaBean:


     它的所有成員變數都使用private 進行修飾,並且對外提供可訪問的設定值和擷取值的set,get      方法。不同的應用情境,可能命名不同,資料庫的應用中稱為POJO類.

public class JavaBeanDemo{    public static void main(String[] args){      Student student=new Student();      student.setName("山鬼謠");      student.setSex("男");      student.setAge(24);      student.subject();    }}class Student{    private String name;    private String sex;    private int age;    void setName(String nameParm){    name=nameParm;        }    //JavaBean類    String getName(){    return name;    }    void setSex(String sexParm){    sex=sexParm;        }    String getSex(){    return sex;    }    void setAge(int ageParm){    age=ageParm;        }    int getAge(){    return age;    }            void subject(){        System.out.println(name+":"+sex+","+age+"歲");                System.out.println("選擇的課是java");    }}


650) this.width=650;" src="https://s3.51cto.com/wyfs02/M02/A7/6C/wKioL1nmnwXQRDS_AAAXXwTg2Bk619.png-wh_500x0-wm_3-wmp_4-s_2300127171.png" title="EG_J~%V~SLV[$21(HR67Y}F.png" alt="wKioL1nmnwXQRDS_AAAXXwTg2Bk619.png-wh_50" />


優先原則: 對於一個類的成員方法來說,如果傳遞的形參的變數名稱和類的成員變數名稱相同,jvm在處        理的時候優先當做方法的形參來處理。

this 關鍵字


    代表了當前對象的引用(可以理解為,當前誰來調用,那麼方法中的this 就代表誰)。


    對於成員變數可以區分出來的情境,this 可加也可以不加,實際效果相同。但是對於實現         javaBean/POJO 來說,我們建議都加上在setXXX,getXXX方法中.


   例:

    void setName(String name){

        this.name=name;

    

    }

    String getName(){

        return this.name;


    }

  * 初始化類成員變數的方式

     * 在定義成員變數的同時進行賦值.

     * 提供外界可訪問到的方法,在方法中進行賦值.

     * 通過構造方法進行賦值.

public class VariableDemo{    public static void main(String[] args){    Student student=new Student();       student.write();    Student student1=new Student("山鬼謠");//構造方法賦值    student1.write();    Student student2=new Student();    student2.setName("天淨沙");//在方法中進行賦值    student2.write();}}class Student{   String name="弋痕夕";//定義成員變數時同時賦值     Student(){     }   Student(String name){    this.name=name;   }   void setName(String name){    this.name=name;   }   String getName(){    return this.name;   }   void write(){   System.out.println("姓名:"+name);     } }


650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/A7/7A/wKioL1nnHYrALMexAAAYmr0Lptk218.png-wh_500x0-wm_3-wmp_4-s_610180405.png" title="俠嵐1.png" alt="wKioL1nnHYrALMexAAAYmr0Lptk218.png-wh_50" />

static


   * 隨著類載入而載入(靜態方法區中來儲存靜態成員變數)


   * 優先於對象建立


   * 被類的所有對象共用(靜態成員變數會儲存在該class的靜態方法區中,所以每個對象看到的      都是同一份.)


   * 可以通過類名來訪問也可以通過對象名來訪問(一般通過類名來訪問)。


   * 靜態成員,一般稱為類相關的成員。


   * static 修飾符既可以修飾成員變數,也可以修飾成員方法。 且修飾之後,就可以通過類名來直      接訪問到。


   * this變數在靜態方法中不可以使用


   * 靜態方法中只能訪問靜態成員變數和靜態方法;非靜態方法既可以訪問靜態成員和方法也可以訪      問非靜態成員和方法。

  

public class StaticDemo{    public static void main(String[] args){     Person person=new Person();     person.setName("山鬼謠");     Person.skill();//通過類名來訪問 }}class Person{    static String name;    static String sex;    void setName(String nameParm){        name=nameParm;         }    String getName(){        return name;    }    static void skill(){    System.out.println(name+"的技能是:“絕氣逆空”");}}

  非靜態雖然可以訪問靜態方法,但是不建議這樣做。

   * main方法.

     修飾符 傳回型別  方法名 (參數列表){


       }


     public static void main(String[] args){


        }


    * public: 最大的一個存取權限,使得jvm能夠成功調用

    * static: 類相關的,與對象無關. A.main([]);


     public class A{

          main(){

         System.("");

       }

     }


Java學習lesson 06

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.