天天看點

java面向對象之類與對象

1、類與對象的了解:

       類是對一類事物的描述,是抽象的,概念上的定義;對象是實際存在的該類事物的每個個體,是以也稱之為執行個體。如果将對象比作汽車,那麼類就好比汽車的設計圖紙。是以面向對象程式設計的重點是類的設計,而不是對象的設計。類對事物的屬性,也就是成員變量,操作屬性的方法,也就是成員函數進行了封裝,隻要通過new關鍵字建立對象麼就可以對對象的屬性進行指派,然後調用對象的方法進行各種操作,實作各種功能。這大概就是java面向對象三大特性之一即封裝。

2、執行個體講解:

package com.jwang.facetoobject;

public class Person 
{
	//定義一個成員變量
    private int age;
    
    //定義一個成員方法
    public void shout()
    {
        System.out.println("my age is "+age);
        //在一個類中的方法可以調用這個類中的其它方法
        shout1();
    }
    
    public void shout1()
    {
    	//局部變量必須賦初值才能使用
    	int age = -60;
    	//由于局部變量與成員變量同名,是以成員變量被覆寫,下面應該輸出-60
    	System.out.println("my age is "+age);
    	//在局部變量和全局變量相同時,如果要使用或者操作成員變量,可以采用this.成員變量的方式使用或者操作成員變量
    	System.out.println("my age is "+this.age);
    }
    
    public void shout2()
    {
    	
    }
    //main方法為JVM内置的方法,不屬于該類
    public static void main(String [] args)
    {
    	//通過new關鍵字來建立對象,new主要是配置設定堆記憶體
	     Person p1 = new Person();
	     Person p2 = new Person();
	     
	    //給p1對象的屬性指派
	     p1.age = -30;
	     
	    //通過對象的引用調用對象的方法
	     System.out.println("---------輸出p1相關資訊---------");
	     p1.shout();
	     System.out.println("---------輸出p2相關資訊---------");
	     p2.shout();
   }
}
           

3、測試結果:

java面向對象之類與對象

4、分析以及說明:

(1)類将屬性(變量),方法(函數)封裝在一起,供對象使用

(2)成員變量又可以了解為類中對象的屬性。可以是基本資料類型,也可以是對象,集合,數組等

     定義方式:private/public+資料類型+變量名;

    一般系統會自動賦初值,是以定義時一般不會指派,在對象調用時才對他指派。成員變量相當于全局變量,按理說全局變量在使用前要賦初值,但java中jvm會對成員變量自動賦初值,如整形一般賦初值為0.

 (3)方法又叫成員函數,是對象完成某一操作的一個方法。

     定義方式:private/public+傳回值類型+函數名(資料類型1 變量1,資料類型2 變量2....)

 (4)如果方法中也定義了與成員變量同樣的局部變量,則局部變量會覆寫全局變量,除非在方法内部使用this關鍵字

 (5)同類中的方法可以直接通路其中的成員變量。也可以通路同類中的其他方法。

 (6)對象的建立方式:類名+對象名=new+類名();eg:person pi=new preson();pi實際上是對象的引用句柄,或者稱為引用變量,可以粗略當成就是一個對象。new關鍵字相當于配置設定堆記憶體的一個關鍵字。是以對象和數組一樣都是被定義在堆記憶體中的。

 (7)當一個對象被建立的時候,類中的成員變量會自動初始化,而方法中定義的局部變量必須認為初始化才可以使用。

 (8)通過句柄來引用類中對象的屬性和方法。引用句柄也可以看成是一個變量,他被定義在棧記憶體中,存放的是對象中變量的首位址。這樣對象就可以通過(句柄.變量或方法)的方式來使用其屬性和方法完成一系列功能。

 (9)main函數/方法可以放在任何類中,但不屬于此類的成員函數。main函數放在那一個類中,那個類就是啟動運作類。

 (10)對象存儲記憶體分析:

 因為P1和p2是兩個對象,是以各自有各自的存儲,如下圖所示:

java面向對象之類與對象

5、public及private關鍵字:

(1)使用說明:

 public關鍵字可以修飾類,使用public修飾類時,類名要和源檔案中的名稱一緻。并且一個源檔案中隻能有一個public修飾的類 

 public關鍵字可以修飾方法和屬性,通過public修飾的屬性和方法可以在其它類中調用,一般為了安全性考慮,類的屬性都是private的,而方法是public的。提供get,set方法供外邊的類來操作本類中的屬性。

 private一般用來修飾方法和屬性,用private修飾的方法和屬性隻能在本類中使用和操作,不能在其它類中通路。

(2)程式設計例子:

package com.jwang.facetoobject;

public class People 
{
	//定義兩個私有的成員變量
	private String name ;
	private int age;
	//定義一個公有的成員變量
	public String sex;
	
	//定義一個公有的擷取name的方法
	public String getName() 
	{
		return name;
	}
	//定義一個公有的設定name的方法
	public void setName(String name) 
	{
		this.name = name;
	}
	//定義一個公有的擷取age的方法
	public int getAge() 
	{
		return age;
	}
	//定義一個公有的設定age的方法
	public void setAge(int age)
	{
		this.age = age;
	}
}


           

測試結果:

java面向對象之類與對象

6、匿名對象:

new TestPeople().test();在上面的程式中建立了匿名對象,并調用test方法,匿名對象就是不需要申明對象的引用,而直接通過new關鍵字建立對象。