- 相關(guān)推薦
Java類的定義和聲明
Java編程語(yǔ)言是面向?qū)ο蟮,處理的最小的完整單元為?duì)象。而現(xiàn)實(shí)生活中具有共同特性的對(duì)象的抽象就稱之為類。類由類聲明和類體構(gòu)成,類體又由變量和方法構(gòu)成。下面一起來(lái)了解一下Java類的定義和聲明!
Java類的定義和聲明 篇1
1、類聲明的基本格式
訪問(wèn)說(shuō)明符class類名extends超類名implements接口名
其中:
(1)訪問(wèn)說(shuō)明符為public或者缺省。public用來(lái)聲明該類為有類,可以被別的對(duì)象訪問(wèn)。聲明為公有的類存儲(chǔ)的文件名為類名。
(2)類名:用戶自定義的標(biāo)識(shí)符,用來(lái)標(biāo)志這個(gè)類的引用。
(3)超類名:是指已經(jīng)存在的類,可以是用戶已經(jīng)定義的,也可以是系統(tǒng)類。
(4)接口名:即后面講到的接口。
例如:
public class HelloApplet extends Applet
訪問(wèn)說(shuō)明符為public,類名HelloApplet,擴(kuò)展類為JDK包自帶的java.applet.Applet類。由于public的存在,所以文件名必須存為HelloApplet.java,同類名保持一致。
2、類體
類體包括成員變量和方法。
(1)成員變量:
指類的一些屬性定義,標(biāo)志類的靜態(tài)特征,它的基本格式如下:
訪問(wèn)說(shuō)明符 數(shù)據(jù)類型 變量名
其中:
訪問(wèn)說(shuō)明符有public、private和protected三種:
public:省略時(shí)默認(rèn)為公有類型,可以由外部對(duì)象進(jìn)行訪問(wèn)。
private:私有類型,只允許在類內(nèi)部的方法中使用,若從外部訪問(wèn),必須通過(guò)構(gòu)造函數(shù)間接進(jìn)行。
protected:受保護(hù)類型,子類訪問(wèn)受到限制。
數(shù)據(jù)類型包括基本類型以及用戶自定義的擴(kuò)展類型。
(2)方法:
昌類的操作定義,標(biāo)志類的動(dòng)態(tài)特征,它的基本格式如下:
訪問(wèn)說(shuō)明符 數(shù)據(jù)類型 方法名(數(shù)據(jù)類型1 變量名1,數(shù)據(jù)類型2 變量名2)
其中:
訪問(wèn)說(shuō)明符為public、private和protected,其使用方法與成員變量訪問(wèn)說(shuō)明符的使用方法一致。
數(shù)據(jù)類型:包括基本數(shù)據(jù)類型和用戶自定義的`擴(kuò)展類型。
數(shù)據(jù)類型為參數(shù)。
3、創(chuàng)建類的實(shí)例
使用關(guān)鍵字new進(jìn)行創(chuàng)建,例如:
HelloApplet hp=new HelloApplet();
例1中,自定義類apple,訪問(wèn)標(biāo)識(shí)符缺省,定義三個(gè)屬性:
long applecolor;//對(duì)應(yīng)蘋(píng)果的顏色
double appleweight;//蘋(píng)果的重量
boolean eatup;//是否吃完
一個(gè)方法為:
public boolean bite()//類方法{...}
公有類SetApplet中引用自定義類,首先創(chuàng)建類的實(shí)例:
apple a=new apple();
其次賦初值:
a.appleweight=0.5;//實(shí)例變量賦值
最后調(diào)用它的方法:
System.out.println(a.bite());//調(diào)用實(shí)例方法
Java類的定義和聲明 篇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ǔ)空間的成為“聲明”。
基本類型變量的聲明和定義(初始化)是同時(shí)產(chǎn)生的;而對(duì)于對(duì)象來(lái)說(shuō),聲明和定義是分開(kāi)的。
下面小編給大家舉個(gè)例子說(shuō)明一下。
例如:類A
如果A a;就是一個(gè)聲明,告訴編譯器a是A類的一個(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)存。
【Java類的定義和聲明】相關(guān)文章:
Java中定義與聲明的區(qū)別05-21
Java數(shù)組的定義和使用03-23
Java多線程的定義狀態(tài)和屬性12-25
Java對(duì)象和類04-03
override和Java overload的定義及異同點(diǎn)分析05-16
關(guān)于Java類的定義以及執(zhí)行順序?qū)W習(xí)教程02-03
Java 對(duì)象和類的介紹07-14
Java類和對(duì)象的概念02-19
理解java和python類變量05-06