package javaLearn;//java 對(duì)象和類(lèi)//Java作為一種面向?qū)ο蟮恼Z(yǔ)言,支持一下基本概念://多態(tài)//繼承//封裝//抽象//類(lèi)//對(duì)象//實(shí)例//方法//重載//本章我們重點(diǎn)研究對(duì)象和類(lèi)的概念。//對(duì)象是累的實(shí)例,有狀態(tài)和行為。//類(lèi):類(lèi)是一個(gè)模板,它描述一類(lèi)對(duì)象的行為和狀態(tài)。//java中類(lèi)//類(lèi)可以看成是創(chuàng)建java對(duì)象的模板。//通過(guò)下面一個(gè)簡(jiǎn)單的淚來(lái)理解java中累的定義: class Puppy{ String breed; int age; String color; void barking(){ } void hungry(){ } void sleeping(){ }}//一個(gè)類(lèi)可以包含以下類(lèi)型變量://局部變量:在方法、構(gòu)造方法或者語(yǔ)句塊中定義的變量被稱(chēng)為局部變量。變量聲明和初始化都是在方法中,方法結(jié)束后,變量就會(huì)自動(dòng)銷(xiāo)毀。//成員變量:成員變量是定義在類(lèi)中,方法體之外的變量。這種變量在創(chuàng)建對(duì)象初始化的時(shí)候?qū)嵗?。成員變量可以被類(lèi)種方法、構(gòu)造函數(shù)和特定類(lèi)的語(yǔ)句塊訪問(wèn)。//類(lèi)變量:類(lèi)變量也生命在類(lèi)中,方法體之外,但必須聲明static類(lèi)型。//一個(gè)類(lèi)可以擁有多個(gè)方法,在上面的例子中:barking()、hungry()和sleeping()都是HelloWorld類(lèi)的方法。//構(gòu)造函數(shù)//每個(gè)類(lèi)都有構(gòu)造方法。如果沒(méi)有顯示的為類(lèi)定義構(gòu)造方法,java編譯器將會(huì)為該類(lèi)提供一個(gè)默認(rèn)構(gòu)造方法。//在創(chuàng)建一個(gè)對(duì)象的時(shí)候,至少要調(diào)用一個(gè)構(gòu)造方法。構(gòu)造方法的名稱(chēng)必須與類(lèi)同名,一個(gè)類(lèi)可以有多個(gè)構(gòu)造方法。//下面是一個(gè)構(gòu)造方法示例:class Puppy2{ public Puppy2(){ } public Puppy2( String name ){ //這個(gè)構(gòu)造器僅有一個(gè)參數(shù):name }}//創(chuàng)建對(duì)象//對(duì)象是根據(jù)類(lèi)創(chuàng)建的。在java中,使用關(guān)鍵字new來(lái)創(chuàng)建一個(gè)新的對(duì)象,創(chuàng)建對(duì)象需要以下三部://聲明一個(gè)對(duì)象,包括對(duì)象名稱(chēng)和對(duì)象類(lèi)型。//實(shí)例化:使用關(guān)鍵字new 來(lái)創(chuàng)建一個(gè)對(duì)象//初始化:使用new創(chuàng)建對(duì)象時(shí),會(huì)調(diào)用構(gòu)造方法初始化對(duì)象//下面是一個(gè)創(chuàng)建對(duì)象的例子:class Puppy3{ public Puppy3( String name ){ System.out.PRintln( name ); }// public static void main(String [] args ){// Puppy3 myPuppy = new Puppy3( "xiexialing" );// }}//訪問(wèn)實(shí)例變量和方法//通過(guò)已創(chuàng)建的對(duì)象來(lái)訪問(wèn)成員變量和成員方法,如下所示:///* 實(shí)例化對(duì)象 *///ObjectReference = new Constructor();//訪問(wèn)其中的變量//ObjectReference.variableName;//訪問(wèn)類(lèi)中的方法//ObjectReference.MethodName();//實(shí)例class Puppy4{ int puppyAge; public Puppy4( String name ){ System.out.println( name ); } public void setAge( int age ){ puppyAge = age; } public int getAge(){ return puppyAge; } public static void main( String []args ){ Puppy4 puppy = new Puppy4( "xiexialing" ); puppy.setAge(2); puppy.getAge(); }}//在本節(jié)的最后部分,我們將學(xué)習(xí)源文件的聲明規(guī)則。當(dāng)一個(gè)源文件中定義多個(gè)類(lèi),并且還有import語(yǔ)句和package語(yǔ)句時(shí),要特別注意這些規(guī)則。//一個(gè)源文件只能有一個(gè)public類(lèi)//一個(gè)原文件可以有多個(gè)非public類(lèi)//源文件的名稱(chēng)應(yīng)該和public類(lèi)的類(lèi)名保持一致。//如果一個(gè)類(lèi)定義在某個(gè)包中,那么package語(yǔ)句應(yīng)該在源文件的首行//如果原文件包含import語(yǔ)句,那么應(yīng)該放在package語(yǔ)句和類(lèi)定義之間。//import語(yǔ)句和package語(yǔ)句隊(duì)員文件中定義的所有類(lèi)都有效。//類(lèi)由若干訪問(wèn)級(jí)別,并且類(lèi)也分不同的類(lèi)型:抽象類(lèi)和final類(lèi)等。//除了以上提到的幾種類(lèi)型,java還有一些特殊的類(lèi),如:內(nèi)容類(lèi)、匿名類(lèi)。//java包//包主要用來(lái)對(duì)類(lèi)和接口分類(lèi)。當(dāng)開(kāi)發(fā)java程序時(shí),可能編寫(xiě)成千上萬(wàn)的類(lèi),因此很有必要對(duì)類(lèi)和接口進(jìn)行分類(lèi)。//Import語(yǔ)句//在java中,如果給出一個(gè)完整的限定名,包括包名、類(lèi)名,那么java編譯器就可以很輕易的定位到源代碼或者類(lèi)。//Import語(yǔ)句//一個(gè)簡(jiǎn)單的例子//在該例子中,我們創(chuàng)建兩個(gè)類(lèi):Employee 和 EmployeeTest//Employee 類(lèi)有四個(gè)成員變量:name/age/designation和salary.該類(lèi)顯式聲明一個(gè)構(gòu)造函數(shù),該方法只有一個(gè)參數(shù)//public class Employee{// String name;// int age;// String designation;// double salary;// // public Employee( String name ){// this.name = name;// }// // public void setAge( int empAge ){// age = empAge;// }// // public void setDesignation( String empDesignation ){// designation = empDesignation;// }// // public void setSalary( double empSalary ){// salary = empSalary;// }// // public void printEmployee(){// System.out.println( "姓名" + name );// System.out.println( "年齡" + age );// System.out.println( "薪水" + salary );// System.out.println( "職位" + designation );// }//}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注