Java類(lèi)的定義和聲明
Java類(lèi)的定義和聲明
Java編程語(yǔ)言是面向?qū)ο蟮,處理的最小的完整單元為?duì)象。而現(xiàn)實(shí)生活中具有共同特性的對(duì)象的抽象就稱(chēng)之為類(lèi)。類(lèi)由類(lèi)聲明和類(lèi)體構(gòu)成,類(lèi)體又由變量和方法構(gòu)成。下面一起來(lái)了解一下Java類(lèi)的定義和聲明!
Java類(lèi)的定義和聲明 篇1
1、類(lèi)聲明的基本格式
訪(fǎng)問(wèn)說(shuō)明符class類(lèi)名extends超類(lèi)名implements接口名
其中:
(1)訪(fǎng)問(wèn)說(shuō)明符為public或者缺省。public用來(lái)聲明該類(lèi)為有類(lèi),可以被別的對(duì)象訪(fǎng)問(wèn)。聲明為公有的類(lèi)存儲(chǔ)的文件名為類(lèi)名。
(2)類(lèi)名:用戶(hù)自定義的標(biāo)識(shí)符,用來(lái)標(biāo)志這個(gè)類(lèi)的引用。
(3)超類(lèi)名:是指已經(jīng)存在的類(lèi),可以是用戶(hù)已經(jīng)定義的,也可以是系統(tǒng)類(lèi)。
(4)接口名:即后面講到的接口。
例如:
public class HelloApplet extends Applet
訪(fǎng)問(wèn)說(shuō)明符為public,類(lèi)名HelloApplet,擴(kuò)展類(lèi)為JDK包自帶的java.applet.Applet類(lèi)。由于public的存在,所以文件名必須存為HelloApplet.java,同類(lèi)名保持一致。
2、類(lèi)體
類(lèi)體包括成員變量和方法。
(1)成員變量:
指類(lèi)的一些屬性定義,標(biāo)志類(lèi)的靜態(tài)特征,它的基本格式如下:
訪(fǎng)問(wèn)說(shuō)明符 數(shù)據(jù)類(lèi)型 變量名
其中:
訪(fǎng)問(wèn)說(shuō)明符有public、private和protected三種:
public:省略時(shí)默認(rèn)為公有類(lèi)型,可以由外部對(duì)象進(jìn)行訪(fǎng)問(wèn)。
private:私有類(lèi)型,只允許在類(lèi)內(nèi)部的方法中使用,若從外部訪(fǎng)問(wèn),必須通過(guò)構(gòu)造函數(shù)間接進(jìn)行。
protected:受保護(hù)類(lèi)型,子類(lèi)訪(fǎng)問(wèn)受到限制。
數(shù)據(jù)類(lèi)型包括基本類(lèi)型以及用戶(hù)自定義的擴(kuò)展類(lèi)型。
(2)方法:
昌類(lèi)的操作定義,標(biāo)志類(lèi)的.動(dòng)態(tài)特征,它的基本格式如下:
訪(fǎng)問(wèn)說(shuō)明符 數(shù)據(jù)類(lèi)型 方法名(數(shù)據(jù)類(lèi)型1 變量名1,數(shù)據(jù)類(lèi)型2 變量名2)
其中:
訪(fǎng)問(wèn)說(shuō)明符為public、private和protected,其使用方法與成員變量訪(fǎng)問(wèn)說(shuō)明符的使用方法一致。
數(shù)據(jù)類(lèi)型:包括基本數(shù)據(jù)類(lèi)型和用戶(hù)自定義的擴(kuò)展類(lèi)型。
數(shù)據(jù)類(lèi)型為參數(shù)。
3、創(chuàng)建類(lèi)的實(shí)例
使用關(guān)鍵字new進(jìn)行創(chuàng)建,例如:
HelloApplet hp=new HelloApplet();
例1中,自定義類(lèi)apple,訪(fǎng)問(wèn)標(biāo)識(shí)符缺省,定義三個(gè)屬性:
long applecolor;//對(duì)應(yīng)蘋(píng)果的顏色
double appleweight;//蘋(píng)果的重量
boolean eatup;//是否吃完
一個(gè)方法為:
public boolean bite()//類(lèi)方法{...}
公有類(lèi)SetApplet中引用自定義類(lèi),首先創(chuàng)建類(lèi)的實(shí)例:
apple a=new apple();
其次賦初值:
a.appleweight=0.5;//實(shí)例變量賦值
最后調(diào)用它的方法:
System.out.println(a.bite());//調(diào)用實(shí)例方法
Java類(lèi)的定義和聲明 篇2
定義和聲明的定義區(qū)別
1、一種是需要建立存儲(chǔ)空間的。例如:int a 在聲明的時(shí)候就已經(jīng)建立了存儲(chǔ)空間。
2、另一種是不需要建立存儲(chǔ)空間的。 例如:extern int a 其中變量a是在別的文件中定義的。
聲明是向編譯器介紹名字--標(biāo)識(shí)符。它告訴編譯器“這個(gè)函數(shù)或變量在某處可找到,它的模樣象什么”。
而定義是說(shuō):“在這里建立變量”或“在這里建立函數(shù)”。它為名字分配存儲(chǔ)空間。無(wú)論定義的是函數(shù)還是變量,編譯器都要為它們?cè)诙x點(diǎn)分配存儲(chǔ)空間。
對(duì)于變量,編譯器確定變量的大小,然后在內(nèi)存中開(kāi)辟空間來(lái)保存其數(shù)據(jù),對(duì)于函數(shù),編譯器會(huì)生成代碼,這些代碼最終也要占用一定的內(nèi)存。
總之就是:把建立空間的聲明成為“定義”,把不需要建立存儲(chǔ)空間的成為“聲明”。
基本類(lèi)型變量的聲明和定義(初始化)是同時(shí)產(chǎn)生的;而對(duì)于對(duì)象來(lái)說(shuō),聲明和定義是分開(kāi)的。
下面小編給大家舉個(gè)例子說(shuō)明一下。
例如:類(lèi)A
如果A a;就是一個(gè)聲明,告訴編譯器a是A類(lèi)的一個(gè)對(duì)象變量,但是不進(jìn)行初始化;
如果以后a=new A();這就是初始化,分配了空間。
需要注意的是我們聲明的最終目的是為了提前使用,即在定義之前使用,如果不需要提前使用就沒(méi)有單獨(dú)聲明的必要,變量是如此,函數(shù)也是如此,所以聲明不會(huì)分配存儲(chǔ)空間,只有定義時(shí)才會(huì)分配存儲(chǔ)空間。
用static來(lái)聲明一個(gè)變量的作用有二:
(1)對(duì)于局部變量用static聲明,則是為該變量分配的空間在整個(gè)程序的執(zhí)行期內(nèi)都始終存在。
(2)外部變量用static來(lái)聲明,則該變量的作用只限于本文件模塊。
定義和聲明的具體區(qū)別
所謂定義就是(編譯器)創(chuàng)建一個(gè)對(duì)象,為這個(gè)對(duì)象分配一塊內(nèi)存,并給它取上一個(gè)名字,這個(gè)名字就是就是我們經(jīng)常所說(shuō)的變量名或?qū)ο竺?/p>
聲明有2重含義:
(1) 告訴編譯器,這個(gè)名字已經(jīng)匹配到一塊內(nèi)存上,下面的代碼用到變量或者對(duì)象是在別的地方定義的。聲明可以出現(xiàn)多次。
(2) 告訴編譯器,這個(gè)名字已經(jīng)被預(yù)定了,別的地方再也不能用它來(lái)作為變量名或?qū)ο竺?/p>
定義和聲明最重要區(qū)別
定義創(chuàng)建對(duì)象并為這個(gè)對(duì)象分配了內(nèi)存,聲明沒(méi)有分配內(nèi)存。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn),該文觀(guān)點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 yyfangchan@163.com (舉報(bào)時(shí)請(qǐng)帶上具體的網(wǎng)址) 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除