java 類和對象

來源:互聯網
上載者:User

標籤:main   執行個體   people   定義類   方法   筆記   target   bsp   並且   

                                  java  類和對象

 

JAVA編程中的類和對象

 

1:初學JAVA,都知道JAVA是物件導向的編程。筆者這節開始說說類和對象。(執行個體僅供參考,如若複製粘貼記得修改包名和類名,避免出錯)

學習JAVA的快速鍵,Alt+/代碼補全功能,其實此快速鍵啟動了Eclipse代碼輔助菜單,Shift+Ctrl+o快速鍵匯入包

Ctrl+F可以快速尋找API,中文版API,百度雲連結:http://pan.baidu.com/s/1slQWhCL 密碼:cfxo

首先

對象的建立:類名  對象名=new 類名();也許大多數學習java的都會寫,但是理解方面是這樣的,

new一個類名,就會得到一個對象,而這個對象的類型就是這個類名的類型

比如說:Car car=new Car();//就是通過new一個Car類名,得到car這個對象,而這個對象就是Car類型的

2:類必須先定義才能使用。類是建立對象的模板,建立對象也叫類的執行個體化。

package com.cnblogs;//定義包的格式,關鍵詞package,包的名字最規範的格式是網域名稱的反寫,比如com.什麼

public class People {//class關鍵字,定義類的關鍵字,People是類的名稱
    
    public String name;//類的屬性
    public String sex;
    public int age;   

 //類的方法 
    public void sleep(){
        System.out.println("人疲倦的時候喜歡睡覺覺");
    }
    
    public void eat(){
        System.out.println("人饑餓的時候喜歡吃飯飯");
    }
    public static void main(String[] args) {//主函數
        People p=new People();//對象的執行個體化
        p.eat();//調用類的方法
        p.sleep();
    }

}
3:構造方法

構造方法的名稱必須與類的名稱相同,並且沒有傳回值。
每個類都有構造方法。如果沒有顯式地為類定義構造方法,Java編譯器將會為該類提供一個預設的構造方法。

package com.cnblogs;

public class People {
    
    public String name;
    public String sex;
    public int age;
    
    public People(){//預設的構造方法,初始化對象的時候調用預設構造方法
        System.out.println("類預設的構造方法,不含參數");
    }
    public People(String name){//含參的構造方法
        System.out.println("含參的構造方法");
    }
    public void sleep(){
        System.out.println("人疲倦的時候喜歡睡覺覺");
    }
    
    public void eat(){
        System.out.println("人饑餓的時候喜歡吃飯飯");
    }
    public static void main(String[] args) {
        People p=new People();
        p.eat();
        p.sleep();
    }
    
}

4:Java 通過修飾符來控制類、屬性和方法的存取權限和其他功能,通常放在語句的最前端。

許可權(訪問)修飾符關鍵字包含:public ,private ,protected,另外一個就是預設的;

public:對所有類可見,包含本類,同包其他類或者子類,其他包的類或者子類

protected:對本類可見,對同包其他類或者子類可見,對其他包的類或者子類不可以見

private:只對本類可見,對同包其他類或者子類不可見,對其他包的類或者子類不可以見

預設:則是對同一包內可見

執行個體如下:

package com.cnblogs;

public class Men {
    
    public String name;//共有屬性
    private int age;//私人屬性
    protected String sex;//受保護的屬性
    int a=10;//預設的
}

5:變數的範圍,包含全部變數和局部變數

舉例如下

package com.cnblogs;

public class Men {
    //全部變數,在整個範圍都可以使用
    public String name;//共有屬性
    private int age;//私人屬性
    protected String sex;//受保護的屬性
    int a=10;
    public static void main(String[] args) {
        //定義的i是局部變數,只可以在for迴圈這個局部內進行使用
        for(int i=0;i<10;i++){
            System.out.println("局部變數,在可以在局部進行使用"+i);
        }
    }
    
}

6:this關鍵字

this 關鍵字用來表示當前對象本身,或當前類的一個執行個體,通過 this 可以調用本對象的所有方法和屬性。

成員變數與方法內部的變數重名時,希望在方法內部調用成員變數,怎麼辦呢?這時候只能使用this。

作為方法名來初始化對象,也就是相當於調用本類的其它構造方法,它必須作為構造方法的第一句。

作為參數傳遞,需要在某些完全分離的類中調用一個方法,並將當前對象的一個引用作為參數傳遞時。

舉例如下

package com.cnblogs;

public class Dog {
    
    int a=21;
    int b=12;
    
    public Dog(){//this關鍵字作為方法名來初始化對象
        this(23,43);
    }
    
    public Dog(int a, int b) {
        // TODO Auto-generated constructor stub
        this.a=a;
        this.b=b;
        System.out.println(a+" "+b);
    }

    public void add(){//通過this關鍵字可以調用類的屬性和方法
        int c=this.a+this.b;
        System.out.println(c);
    }
    
    public void setA(int a){//使用this關鍵字區分同名變數
        this.a=a;
    }
    public int getA(){
        return a;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Dog d=new Dog();
        d.add();
        
        d.setA(44);
        int dd=d.getA();
        System.out.println(dd);
    }

}
7:JAVA中方法的重載(構造方法也可以重載)

即方法的名字相同,而方法的參數類型,個數,順序不同即為方法的重載

注意1:聲明為final的方法不可以重載,聲明為static的方法不能被重載,但是能夠被再次聲明。

注意2:僅僅是傳回值類型不同,不能構成方法的重載

舉例如下:

package com.cnblogs;

public class Cat {
    
    public void cat(){
        System.out.println("方法的重載");
    }
    public void cat(int a,int b){
        System.out.println("方法的重載,方法中參數的個數");
    }
    public void cat(String c,int d){
        System.out.println("方法的重載,方法中參數的類型不同");
    }
    public void  cat(int e,String f){
        System.out.println("方法的重載,方法中參數順序不同");
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
    }

}

8:封裝類(Wrapper Classes),拆箱和裝箱


基本類型和對應的封裝類可以相互裝換:

由基本類型向對應的封裝類轉換稱為裝箱,例如把double封裝成 Double 類的對象;

封裝類向對應的基本類型轉換稱為拆箱,例如把 Integer 類的對象重新簡化為 int。

package com.cnblogs;

public class Sun {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a=32;
        Integer i=new Integer(a);
        System.out.println("手動進行裝箱"+i);
        
        int a2=i.intValue();//此方法的作用是以int值返回此Integer對象
        System.out.println("手動進行拆箱"+a2);

   int a4=54;
        Integer i4=a4;//自動裝箱
        System.out.println("自動進行裝箱"+i4);
    }

}

重點筆記,加強理解多態的含義

多態存在的三個必要條件:

  • 繼承
  • 重寫
  • 父類引用指向子類對象
  • 一、

    1.對象:是具體的事物。

    2. 類:是對對象的抽象。

    3. 先有具體的對象,然後抽象各個對象之間象的部分,歸納出來類,通過類再認識其他對象。

    二、對象和類的總結

    1. 對象和類的關係:特殊到一般,具體到抽象。

    2. 對象是Java程式的核心。

  •  

 

java 類和對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.