一、什麼是類?
具備必定相同的屬性的對象的集合就叫類。
二、對象:類的具體實例,就是類的實例化。好比學生是一個類(student),那學生裏面的小紅就是一個對象,一個有學生的屬性的對象。
三、如何定義一個類:
語法格式: 【修飾符】 class 【類名稱】
{
零到多個構造器定義;
零到多個屬性定義;
零到多個方法定義;
}
說明:修飾符能夠是,public,protected,absturted,之一,或者是省略。
類名稱:只要是合法的標識符就能夠,
對於類來講,最多見的成員就是構造器,屬性,和方法。
四、屬性:用於定義該類,或者該類的實例所包含的數據。
定義的語法:【修飾符】 屬性類型 屬性名 【= 默認值】
修飾符:能夠省略,其中public,protected、private三者只能出現一個、能夠和final或者static組合起來使用。
屬性類型:java容許的任何數據類型
屬性名:合法的表示符
默認值:對於屬性的默認賦值或者定義,(可選)
五、方法:方法是用於定義該類或者該類的實例的行爲特徵,或者功能的實現。
定義的語法:【修飾符】 方法返回值類型 方法名(形參列表)
{ //由零到多條可執行性的語句組成的能夠完成某一功能的的方法體
}
修飾符:能夠省略,也能夠是public,protected、private、static、final、abstract,其中public,protected、private、只能出現其中一個;final、和abstract也只能出現一個,還能夠與static(定義一個靜態的屬性)組合起來使用 。
方法返回值類型:放回類型能夠是其容許的任何數據類型,固然,相應的返回值類型應該和這個這個相一致,沒有返回值的話請用void。
方法名:合法的標識符。
形參列表:形參列表用於定義這個方法能夠接受的參數,形參列表由零到多組組成,用英文逗號隔開,一旦定義了形參列表,則調用該方法的時候必須一一對應的傳入對應的參數值。(誰調用,則誰負責爲形參賦值)
方法體:就是有一些可執行的句子(好比能夠是輸出,能夠是查找後返回要的值等)。
五、構造器:構造器是用於構造該類的實例,java經過new關鍵字來調用構造器,從而返回實例。這是一個類建立對象的根本途徑。其實也是一個特殊的方法。
語法:【修飾符】 構造器名 (形參列表)
{ //零到多條可執行語句組成的構造器執行體
}
修飾符:能夠省略,亦但是public,protected,private之一。
構造器名;構造器名必須與類型名一致。
形參列表:形參列表用於定義能夠接受的參數,一旦定義了形參列表,則調用該方法的時候必須一一對應的傳入對應的參數值。(誰調用,則誰負責爲形參賦值)
**注**a、當沒有本身建立構造器的時候,系統會有默認的構造器,可是若是本身建立了構造器,則會默認的構造器則會消失,若是想用也要本身建立。
b、構造器不能定義返回值類型;也不能用void定義沒有返回值,若是犯了前面的錯誤,編譯時不會錯,由於其會把之當成是方法處理。
c、雖然當我門用new調用構造器來實例化一個類的時候,返回的是這個類,也便是給這實例賦予了這個類的屬性,可是不能在構造器內用return返回當前類的對象,由於構造器是隱式的。
例程:
public class Preson { //定義屬性 public String name; public int age; //定義一個構造器 public Preson (){};//默認的構造器須要保留 public Preson (String name,int age ) { //執行體 } //定義一個說語言的方法 public void say(String content) { System.out.println(content) } }
注:一、類裏各個成員之間能夠相互調用,但static修飾的成員之間不能訪問沒有static修飾的成員。由於靜態的一開始就存在了,而非靜態的卻尚未產生如何調用?
六、static關鍵字詳解:
a、用static定義的屬性屬於全局變量,不會改變,存在靜態方法區,通常是共有的屬性,一變你們變。
b、靜態變量或者方法屬於類,而不是對象,因此調用的時候應該用類名直接調用,而不是使用對象調用
eg: Book.outputfactory=」beijin」; 而不是B1.outputfactory=」beijin」;
c、靜態數據(變量或者方法)會在一開始就載入內存直到程序結束。
d、普通類不能定義爲static類
幾條限制:一、其只能調用其餘的static方法,只能訪問static數據。
二、不能以任何方式引用this或者super,由於其不屬於對象,不能調用this。java