国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

面向?qū)ο蠡A(chǔ)知識(shí)

2019-11-08 01:53:57
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

java學(xué)習(xí)筆記

前言

編程規(guī)范:

l  大括號(hào)成對(duì)寫(xiě)

l  左括號(hào)有空格

l  遇左括號(hào)Tab

l  程序塊之間有空行

l  運(yùn)算符兩側(cè)加空格

l  并排語(yǔ)句之間加空格

 

注釋?zhuān)?/p>

單行注釋     //

多行         /* */

文檔         /** **

 

關(guān)鍵字:

關(guān)鍵字全部小寫(xiě),goto和const為保留字

 

標(biāo)識(shí)符:

不能以數(shù)字開(kāi)頭,_ 和 $都可以

 

大小寫(xiě)規(guī)范:

1.        包(文件夾)   全部小寫(xiě)

2.        類(lèi)和接口       一個(gè)或多個(gè)單詞首字母大寫(xiě)(駝峰)

3.        方法和變量     一個(gè)單詞小寫(xiě),多個(gè)第二個(gè)單詞大寫(xiě),setName

4.        常量           一個(gè)單詞大寫(xiě),多個(gè)加下劃線_  MAX  MAX_NUMBER

1.1理解對(duì)象和類(lèi)

對(duì)象定義:代表現(xiàn)實(shí)世界中可以明確標(biāo)識(shí)的一個(gè)實(shí)體。比方說(shuō)一個(gè)學(xué)生,一個(gè)女人。

對(duì)象有兩部分:

A.      狀態(tài)(state),也稱(chēng)為特征(PRoperty)或者屬性(attribute),是指當(dāng)前的數(shù)據(jù)域。比方說(shuō)吧,一個(gè)女的三維。

B.       行為(behavior)或者叫動(dòng)作(action)由方法定義。調(diào)用對(duì)象的方法就是要求對(duì)象完成一個(gè)動(dòng)作。如果我們把女人當(dāng)作對(duì)象的話,那么調(diào)用測(cè)三維的方法就可以得知該女生三維的具體值。

 

說(shuō)清楚了對(duì)象,我們?cè)賮?lái)總結(jié)下類(lèi),類(lèi)的書(shū)面定義:使用一個(gè)通用類(lèi)來(lái)定義同一個(gè)類(lèi)型的對(duì)象。類(lèi)是一個(gè)模板、藍(lán)本,用來(lái)定義對(duì)象的數(shù)據(jù)域是什么以及該方法是做什么的。一個(gè)對(duì)象(object)是類(lèi)的一個(gè)實(shí)例(instance)。其實(shí)說(shuō)了半天,如果女人是個(gè)對(duì)象的話,各種職業(yè)的女性就是女人的具體實(shí)例(instance),我們用女人這個(gè)類(lèi)來(lái)定義女人的通用特征,比方說(shuō)顏值,三維,身高,體重等等,他還有很多行為(behavior),炒菜呀,做飯呀,化妝呀等等。

 

C.構(gòu)造方法(constructor),一種特殊類(lèi)型的方法,有兩個(gè)作用:

1  創(chuàng)建一個(gè)新對(duì)象;

2  構(gòu)造方法可以完成任何動(dòng)作,但初衷是為了完成初始化動(dòng)作。

 

現(xiàn)在我們清楚了類(lèi)的組成了,下面是一個(gè)例子,

public class Object {       double bust = 30;      //所謂的狀態(tài),數(shù)據(jù)域             Object () {       }             Object(double newBust) {    //有參構(gòu)造和無(wú)參構(gòu)造              bust = newBust;       }             doublegetbust() {          //方法              return bust;       }}

另外類(lèi)的模板和對(duì)象的圖解可以使用統(tǒng)一建模語(yǔ)言(Uified Modeling language,UML)表示,看著挺方便的。在這就不畫(huà)了。以上是自己學(xué)習(xí)時(shí)的理解,如有不妥地方,歡迎指正。

 

1.2對(duì)象的構(gòu)造和引用

 先講一下構(gòu)造方法,構(gòu)造方法作為一種特殊的方法,最主要的作用就是使用new來(lái)構(gòu)造對(duì)象,它們有以下三個(gè)特殊特性:

A.      構(gòu)造方法必須具備和所在類(lèi)相同的名字;

B.       構(gòu)造方法沒(méi)有具體的返回類(lèi)型,甚至連void都沒(méi)有;

C.       構(gòu)造方法是在創(chuàng)建一個(gè)對(duì)象時(shí),使用new操作符時(shí)調(diào)用的,構(gòu)造方法的作用是初始化對(duì)象。另外構(gòu)造方法也可以重載,這樣可以使不同初始數(shù)據(jù)值來(lái)構(gòu)造對(duì)象。

 

一般情況下,一個(gè)類(lèi)會(huì)提供一個(gè)沒(méi)有參數(shù)的構(gòu)造方法,稱(chēng)為無(wú)參構(gòu)造(no-arg(argument)constructor)。沒(méi)有明確定義的話,類(lèi)會(huì)自動(dòng)生成。

 

然后在寫(xiě)一下引用變量,對(duì)象是通過(guò)引用變量(referencevariable)來(lái)訪問(wèn)的,該變量包含對(duì)對(duì)象的引用。下面講如何引用:

1)       聲明:類(lèi)名對(duì)象引用變量,我就直接使用書(shū)上的例子了,Circlemycircle;

2)       引用:對(duì)象引用變量 = new 構(gòu)造方法,myCircle = new Circle();其實(shí)就是new創(chuàng)建一個(gè)對(duì)象,并把該對(duì)象的引用賦給變量。

3)       聲明引用:類(lèi)名 對(duì)象引用變量 =  new 構(gòu)造方法,這樣便完成從創(chuàng)建對(duì)象,聲明引用變量和把該對(duì)象的引用賦值給引用變量,CirclemyCircle = new Circle()。

 

創(chuàng)建一個(gè)對(duì)象之后,可以用圓點(diǎn)運(yùn)算符(.)來(lái)訪問(wèn)和調(diào)用。三個(gè)詞,實(shí)例變量(instancevariable),實(shí)例方法(instancemethod)和調(diào)用對(duì)象(callingobject)。這里有幾個(gè)要注意的點(diǎn);

a)       靜態(tài)方法可以通過(guò)類(lèi)名.實(shí)例方法來(lái)調(diào)用;

b)       創(chuàng)建對(duì)象之后可以不引用,這就是后面的匿名對(duì)象(anonymous object),可以用new 構(gòu)造方法.方法,做一些返回值的使用。

c)       如果沒(méi)有引用任何對(duì)象,

l  引用類(lèi)型默認(rèn)值null;

l  數(shù)值類(lèi)型默認(rèn)值0;

l  Boolean類(lèi)型默認(rèn)值false;

l  Char類(lèi)型默認(rèn)值‘/u0000’;

 

1.3 基本類(lèi)型變量和引用變量的區(qū)別

每個(gè)變量都代表一個(gè)存儲(chǔ)值的內(nèi)存位置。聲明一個(gè)變量,就是再告訴編譯器這個(gè)變量可以存放什么類(lèi)型的值。區(qū)別如下:

i.   基本類(lèi)型變量,存儲(chǔ)的是基本類(lèi)型值;將基本變量賦值給另一個(gè)變量時(shí),是將變量的實(shí)際值賦給另一個(gè)變量;

ii.  引用類(lèi)型變量,存儲(chǔ)的是一個(gè)引用,是對(duì)象的存儲(chǔ)地址;對(duì)于一個(gè)引用變量來(lái)說(shuō),賦值的時(shí)候,是把變量的引用賦值給另一個(gè)變量。

還有需要知道的兩點(diǎn),第一,當(dāng)不需要某個(gè)對(duì)象時(shí),可以顯示賦值null。第二,如果對(duì)象沒(méi)有被任何引用變量所引用,Java虛擬機(jī)將自動(dòng)回收它所占的空間,但不一定是立即回收,所以java程序挺占內(nèi)存的。

另外Java中只有一種參數(shù)傳遞方式:值傳遞(pass byvalue)。

A.      基本類(lèi)型變量,傳遞的是實(shí)參的值。

B.       引用類(lèi)型變量,傳遞的是對(duì)象的引用。傳遞對(duì)象的引用在C里面叫傳遞地址值,個(gè)人感覺(jué)這樣說(shuō)更好理解。傳遞引用類(lèi)型變量時(shí),注意到它是處理相同引用(共同地址的內(nèi)容),還是只處理傳過(guò)來(lái)參數(shù)的指向。

再舉一個(gè)例子,會(huì)了這個(gè)我才覺(jué)得是真的理解了基本類(lèi)型和引用類(lèi)型在值傳遞上的區(qū)別,

 public static void main(String[] args) {              // TODO Auto-generated method stub              Date date = new Date(1234567);                           m1(date);              System.out.println(date.getTime());       }             public static void m1(Date date) {              date = new Date(7654321);              System.out.println(date.getTime());       }}

1.4靜態(tài)變量、常量和方法

一、 靜態(tài)變量:

如果想讓一個(gè)類(lèi)的所有實(shí)例共享數(shù)據(jù),就要使用靜態(tài)變量(static variable),也稱(chēng)之為類(lèi)變量(classvariable)。靜態(tài)變量把變量值存儲(chǔ)在一個(gè)公共的內(nèi)存地址。另外無(wú)需創(chuàng)建實(shí)例,就可以調(diào)用靜態(tài)方法(staticmethod)和靜態(tài)變量(static variable),這樣的好處是提高了程序的可讀性。

提到靜態(tài)變量,不得不再提下靜態(tài)方法,不能從靜態(tài)方法中調(diào)用實(shí)例方法或者引用一個(gè)實(shí)例變量,但是可以從實(shí)例方法中調(diào)用靜態(tài)方法和變量。我們都知道在測(cè)試類(lèi)中,也就是有main的類(lèi)中,用到的大部分是靜態(tài)方法。這些看似不經(jīng)意的小問(wèn)題,現(xiàn)在想想也挺有意思的。因?yàn)閙ain也是靜態(tài)方法,所以它調(diào)用的也必須都是靜態(tài)方法,調(diào)用實(shí)例方法都會(huì)發(fā)生錯(cuò)誤。但是這又是為什么呢?原因很簡(jiǎn)單,靜態(tài)變量和方法創(chuàng)建早于實(shí)例方法和變量。下面就是一個(gè)錯(cuò)誤的例子:

public class Foo {         int i =5;         static int k =2;                           public static void main(String[] args) {                   int j = i;                   m1();         }                 public m1(){                   i = i + k;         }                 public static int m2(int i, int j) {                   return (int)(Math.pow(i, j))         }}改正的話,就是在主方法main中創(chuàng)建一個(gè)Foo對(duì)象然后在引用就ok,

Foofoo = new Foo();

Intj = foo.i;

foo.m1();

二、 常量

常量也應(yīng)該是所有實(shí)例所共享的,常量應(yīng)該被聲明為 final static。

 

三、變量的作用域

       實(shí)例變量和靜態(tài)變量成為類(lèi)變量(class’svariable)或數(shù)據(jù)域(data field)。類(lèi)變量的作用域是整個(gè)作用域。類(lèi)的變量和方法可以以任意順序出現(xiàn)。除了一個(gè)數(shù)據(jù)域是基于另一個(gè)數(shù)據(jù)域初始化的。

       如果一個(gè)局部變量和一個(gè)類(lèi)變量具有相同的名字,那么局部變量?jī)?yōu)先,同名的類(lèi)變量將被隱藏。 想要在方法中使用類(lèi)變量,就要使用this來(lái)引用類(lèi)的隱藏?cái)?shù)據(jù)域(hiddendata field)。當(dāng)然如果是靜態(tài)變量還可以使用類(lèi)名.靜態(tài)變量的方法。 另外,this還可以用來(lái)調(diào)用同一個(gè)類(lèi)的其他構(gòu)造方法。如下例所示:

   public classCircle {       private double radiu;             public Circle (double radiu) {       this.radiu = radiu;} Public Circle() {       this(1);}}

     

1.6 對(duì)象數(shù)組

對(duì)象的數(shù)組實(shí)際上是引用變量的數(shù)組。如下例所示:

聲明創(chuàng)建創(chuàng)建含有5個(gè)Woman對(duì)象的數(shù)組,

Woman[]woman = new Woman[5];

初始化數(shù)組,可以用for循環(huán):

for(int i =0; i < 5; i++) {

woman[i]= new Woman();

}

 


上一篇:動(dòng)態(tài)生成界面

下一篇:PAT 1028

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 三都| 东海县| 乐亭县| 休宁县| 蒙自县| 新绛县| 绥芬河市| 石林| 旬阳县| 连州市| 攀枝花市| 定陶县| 秀山| 宜阳县| 乌兰县| 怀安县| 嘉善县| 东山县| 双牌县| 东明县| 安远县| 龙川县| 元阳县| 望城县| 巩义市| 阳城县| 布尔津县| 富民县| 浙江省| 台南市| 南雄市| 高邮市| 浦北县| 彭阳县| 福州市| 广昌县| 宁乡县| 辽源市| 澜沧| 县级市| 古蔺县|