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

首頁 > 學院 > 開發設計 > 正文

JAVA程序員必讀

2019-11-18 14:22:49
字體:
來源:轉載
供稿:網友

  java是有SUN公司開發的新一代編程語言,它可以用在各種不同的機器、操作系統的網絡環境中進行開發。不論你使用哪種瀏覽器或者使用哪種操作系統(Windows、Unix等等),只要瀏覽器支持JAVA,你就可以看到生動的主頁。JAVA正在逐步成為Internet應用的主要開發語言,它徹底改變了應用軟件的開發模式,為迅速發展的信息世界增添了新的活力。所以作為Internet應用的開發技術人員不可不看JAVA,而JAVA程序不可不先從基礎學起,這正是JAVA程序員必讀:基礎篇的用意。

  本JAVA教程將討論JAVA編程語言的基礎知識。其中內容涉及以下幾個方面:

1.面向對象編程概念

  將教會你面向對象編程的核心概念,比如對象、消息、類和繼續等等。本節教程最后將給出實例將這些概念編程代碼實現。假如你對面向對象編程很熟悉了,你可以跳過本節日教程,直接進入第二節教程。

2.語言基礎

  本節教程講述了傳統的語言特性,其中包括變量、數據類型、運算符以及控制流程等等。

3.對象和簡單數據對象

  本節教程將介紹常規的創建和使用任何類型對象的原則。然后,本教程還描述了怎樣使用數組、字符串以及數字對象,它們都通常被用于對象類型。最后,還將介紹怎樣為輸出格式化數據。

4.類和繼續

  描述了怎樣編寫從已經創建了的對象來編寫類。

5.接口和包

  界面和包是JAVA編程語言的特性,它幫助你組織和構造類以及跟其它類的關系。

6.編程中的一些共同的問題

  解釋了在學習JAVA語言過程中可以出現的問題的解決方法。

假如你以前從來沒有使用面向對象語言,你需要在開始編寫JAVA代碼之前先理解這個概念。你需要理解什么是對象、什么是類、對象和類的關系怎樣以及使用消息怎樣在對象之間進行通訊。本教程的前面部分將描述面向對象編程的概念,而后面的教程將教你怎樣將這個概念編成代碼。


2.1什么是對象

  對象是一些相關的變量和方法的軟件集。軟件對象經常用于模擬現實世界中我們身邊的一些對象。對象是理解面向對象技術的要害。你在學習之前可以看看現實生活中的對象,比如狗、桌子、電視、自行車等等。你可以發現現實世界中的對象有兩個共同特征:它們都有狀態和行為。比如狗有自己的狀態(比如名字、顏色、生育以及饑餓等等)和行為(比如搖尾巴等等)。同樣自行車也有自己的狀態(比如當前檔位、兩個輪子等等)和行為(比如剎車、加速、減速以及改變檔位等等)。

  而軟件對象實際上是現實世界對象的造型,因為它同樣有狀態和行為。一個軟件對象利用一個或者多個變量來維持它的狀態。變量是由用戶標識符來命名的數據項。軟件對象用它的方法來執行它的行為。方法是跟對象有關聯的函數(子程序)。

  你可以利用軟件對象來代表現實世界中的對象。你可能想用一個動畫程序來代表現實世界中的狗,或者用可以控制電子自行車的程序來代表現實世界的自行車。同樣你可以使用軟件對象來造型抽象的概念,比如,事件是一個用在GUI窗口系統的公共對象,它可以代表用戶按下鼠標按鈕或者鍵盤上的按鍵的反應。

  軟件對象的狀態和行為都可以用在對象中的變量和方法來表達。構造現實世界的自行車的軟件對象要有指示自行車的當前狀態的變量:速度為20mph,它的當前檔位為第三檔。這些變量就是我們熟知的實例變量,因為它們包含了用于非凡自行車對象的狀態,并且在面向對象技術中,非凡的對象稱為實例。

如圖2所示,是作為軟件對象的自行車造型。

2.2什么是消息

軟件對象之間進行交互作用和通訊是利用消息的。

單一的一個對象通常不是很有用的。相反,一個對象通常是一個包含了許多其它對象的更大的程序或者應用程序。通過這些對象的交互作用,程序員可以獲得高階的功能以及更為復雜的行為。你的自行車假如不使用它的時候,它就是一堆鋁合金和橡膠,它沒有任何的活動。而只有當有其它的對象來和它交互的時候才是有用的。

軟件對象與其它對象進行交互與通訊是利用發送給其它對象來實現的。當對象A想對象B來執行一個B中的方法,對象A就會消息給對象B。

有時候,接收的對象需要更多的信息就至于它可以正確知道該如何做。比如,當你想改變自行車的齒輪,你就必須指出哪個齒輪。這個信息是將信息作為參數來傳遞的。如圖4所示的現實了一個信息由三個組件組成:


被尋址消息的對象(YourBicycle)


要執行方法的名字(changeGears)


這個方法需要的所有參數(lowerGear)



上面的三個組件對于接收方的對象執行相應的方法是給出了充分的信息。再也不需要其它的信息或者上下文了。

消息提供了兩個重要的好處:


對象的行為是通過它的方法來表達的,因此消息傳遞支持所有在對象之間的可能的交互。


對象不需要在相同的進程或者相同的機器上來發送和接收消息給其它的對象

2.3什么是類

類實際上是對某種類型的對象定義變量和方法的原型。

在現實世界中,你經常看到相同類型的許多對象。比如 ,你的自行車只是現實世界中許多自行車的其中一輛。使用面向對象技術,我們可以說你的自行車是自行車對象類的一個實例。通常,自行車有一些狀態(當前檔位、兩個輪子等等)以及行為(改變檔位、剎車等等)。但是,每輛自行車的狀態都是獨立的并且跟其它自行車不同。

當廠家制造自行車的時候,廠商利用了自行車共有的特性來根據相同的藍圖制造許多自行車。假如制造一輛自行車就要產生一個新藍圖,那效率就太低了。

在面向對象軟件中,同樣地,可以讓相同種類地許多對象來共有一些特性,比如矩形、雇員記錄、視頻夾等等。就象自行車制造商人,你可以利用相同種類的對象是相似的事實并且你可以為這些對象創建一個藍圖。對對象的軟件藍圖叫做類。

自行車的類需要定義一些實例變量來包括當前檔位、當前速度等等。這個類將為實例方法定義和提供實施方法,它答應騎車者改變檔位、剎車以及改變腳踏板的節奏,


當你創建了自行車類以后,你可以從這個類創建任意個自行車對象。當你創建了一個類的實例后,系統將為這個對象和的實例變量分配內存。每個實例將給所有實例變量的副本定義在類中。

除了實例變量,類還要定義類的變量。類變量包含了被類所有實例共享的信息。比如,假設所有的自行車有相同的檔位數。在本例子中,要定義一個實例變量來容納檔位數。每一個實例都會有變量的副本,但是在每一個實例中數值都是相同的。在這樣的情況下,你可以定義一個類變量來包含檔位數,這樣所有的類的實例都共享這個變量。假如一個對象改變了變量,它就為改變那個類的所有對象。類同樣可以定義類方法。你可以直接從類中調用類方法,然而你必須在特定的實例中調用實例方法

2.4實例和類成員

2.4.1理解實例和類成員

下面具體討論一下實例和類成員,具體涉及變量和方法以及類變量和方法:

你這樣聲明一個成員變量,比如在類Myclass中有一個float型的aFloat:

class MyClass {

float aFloat;

}

這樣你就聲明一個實例變量。每次你創建一個類的實例的時候,系統就為實例創建了類的每一個實例變量的副本。你可以從對象中訪問對象的實例變量。

實例變量跟類變量是不一樣的,類變量示使用靜態修改量來聲明的。不管類創建了多少個實例,系統為每個類變量分配了類變量。系統為類變量分配的內存是在它第一次調用類的時候發生的。所有的實例共享了類的類變量的相同副本。你可以通過實例或者通過類本身來訪問類變量。

它們的方法是類似的:你的類可以有實例方法和類方法。實例方法是對當前對象的實例變量進行操作的,而且訪問類變量。另外一個方法,類方法不能訪問定義在類中的實例變量,除非它們創建一個新的對象并通過對象來訪問它們。同樣,類方法可以在類中被調用,你不必需要一個實例來調用一個類方法。

缺省地,除非其它的成員被指定,一個定義在類中成員就是一個實例成員。這個在下面定義的類有一個實例變量,有一個整型的x,兩個實例方法x和setX,它們設置其它對象以及查詢x的數值。

class AnIntegerNamedX {

int x;

public int x() {

return x;

}

public void setX(int newX) {

x = newX;

}

}

每次你從一個類實例化一個新的對象,你可以得到每個類的實例變量的副本。這些副本都是跟新對象有關系的。因此,每次你從這個類實例化一個新的AnIntegerNamedX對象的時候,你得以得到跟新的AnIntegerNamedX對象有關的新副本。

一個類的所有實例共享一個實例方法的相同的實行;所有的AnIntegerNamedX實例都共享x和setX的相同執行。這里注重,兩個方法x和setX是指對象的實例變量x。但是,你可能會問:假如所有AnIntergerNamedX共享x和setX的相同執行,會不會造成模棱兩可的狀態?答案當然是:不是。在實例方法中,實例變量的名字是指當前對象的實例變量,假如實例變量不是由一個方法參數來隱藏的。這樣在x和setX中,x就等價于這個x,而不會造成混亂。

語言基礎

  我們先看看一個具體例子,給你們有個先入為主的感覺。以下是一個BasicsDemo程序,它的作用是從1加到10,并顯示結果:

public class BasicsDemo {

public static void main(String[] args) {

int sum = 0;

for (int current = 1; current < = 10; current++) {

sum += current;

}

System.out.Operator op //前綴記號

后綴記號是指運算對象出現在操作符之前,例如:

op operator //后綴記號

所有的雙元操作符使用中綴記號,即操作符出現在兩個運算對象的中間:

op1 operator op2 //中綴記號

三元操作符也是使用中綴記號,例如:

op1 ? op2 : op3 //中綴記號

操作除了執行一個操作,還返回一個數值。返回數值和它的類型依靠于操作符號和運算對象的類型。比如,算術操作符它完成基本的算術操作(加、減)并且返回數值作為算術操作的結果。由算術操作符返回的數據類型依靠于它的運算對象的類型:假如你對兩個整型數相加,你就會得到一個整型數。

我們可以將操作符分成以下幾類:

算術運算符

關系和條件運算符

移位和邏輯運算符

賦值運算符

其它的運算符

下面我們逐個介紹。

JAVA編程語言為所有的浮點型和整型數支持多種算術運算符。這些運算符為+(加)、-(減)、*(乘)、/(除)以及%(模)。


  以下有一個例程,ArithmeticDemo,它定義了兩個整型數和兩個雙精度的浮點數并且使用五種算術運算符來完成不同的運算操作。這個程序同時使用了+符號來連接字符串。程序如下:

public class ArithmeticDemo {

public static void main(String[] args) {



//定義幾個數

int i = 37;

int j = 42;

double x = 27.475;

double y = 7.22;

System.out.println("變量數值...");

System.out.println(" i = " + i);

System.out.println(" j = " + j);

System.out.println(" x = " + x);

System.out.println(" y = " + y);

//加

System.out.println("加...");

System.out.println(" i + j = " + (i + j));

System.out.println(" x + y = " + (x + y));

//減

System.out.println("減...");

System.out.println(" i - j = " + (i - j));

System.out.println(" x - y = " + (x - y));

//乘

System.out.println("乘...");

System.out.println(" i * j = " + (i * j));

System.out.println(" x * y = " + (x * y));

//除

System.out.println("除...");

System.out.println(" i / j = " + (i / j));

System.out.println(" x / y = " + (x / y));

//從除法中求得余數

System.out.println("計算余數...");

System.out.println(" i % j = " + (i % j));

System.out.println(" x % y = " + (x % y));

//混合類型

System.out.println("混合類型...");

System.out.println(" j + y = " + (j + y));

System.out.println(" i * x = " + (i * x));

}

}
這個程序得輸出為:

變量數值...

i = 37

j = 42

x = 27.475

y = 7.22

加...

i + j = 79

x + y = 34.695

減...

i - j = -5

x - y = 20.255

乘...

i * j = 1554

x * y = 198.37

除...

i / j = 0

x / y = 3.8054

計算余數...

i % j = 37

x % y = 5.815

混合類型...

j + y = 49.22

i * x = 1016.58

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遂宁市| 西宁市| 德令哈市| 吉首市| 吉安县| 顺昌县| 龙岩市| 镇巴县| 翁牛特旗| 博爱县| 桑日县| 手机| 凉城县| 杨浦区| 嵊泗县| 喀喇沁旗| 宣武区| 贵州省| 普陀区| 山阳县| 五莲县| 房产| 方城县| 东光县| 铜鼓县| 嘉峪关市| 新宁县| 琼中| 密山市| 大田县| 金乡县| 榆中县| 商河县| 石狮市| 甘德县| 青海省| 黔西| 萍乡市| 纳雍县| 北川| 东乡|