




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、Java 基礎語法一個Java程序可以認為是一系列對象的集合,而這些對象通過調(diào)用彼此的方法來協(xié)同工作。下面簡要介紹下類、對象、方法和實例變量的概念。· 對象:對象是類的一個實例,有狀態(tài)和行為。例如,一條狗是一個對象,它的狀態(tài)有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。· 類:類是一個模板,它描述一類對象的行為和狀態(tài)。· 方法:方法就是行為,一個類可以有很多方法。邏輯運算、數(shù)據(jù)修改以及所有動作都是在方法中完成的。· 實例變量:每個對象都有獨特的實例變量,對象的狀態(tài)由這些實例變量的值決定。第一個Java程序下面看一個簡單的Java程序,它將打印字符串
2、160;Hello World實例public class HelloWorld /* 第一個Java程序 * 它將打印字符串 Hello World */ public static void main(String args) System.out.println("Hello
3、World"); / 打印 Hello World 基本語法編寫Java程序時,應注意以下幾點:· 大小寫敏感:Java是大小寫敏感的,這就意味著標識符Hello與hello是不同的。· 類名:對于所有的類來說,類名的首字母應該大寫。如果類名由若干單詞組成,那么每個單詞的首字母應該大寫,例如 MyFirstJavaClass 。· 方法名:所有的方法名都應該以小寫字母開頭。如果方法名含有若干單詞,則后面的每個單詞首字母大寫。· 源文件名:源文件名必須和類名相同。當保存文件的時候,你應該使用
4、類名作為文件名保存(切記Java是大小寫敏感的),文件名的后綴為.java。(如果文件名和類名不相同則會導致編譯錯誤)。· 主方法入口:所有的Java 程序由public static void main(String args)方法開始執(zhí)行。Java標識符Java所有的組成部分都需要名字。類名、變量名以及方法名都被稱為標識符。關于Java標識符,有以下幾點需要注意:· 所有的標識符都應該以字母(A-Z或者a-z),美元符($)、或者下劃線(_)開始· 首字符之后可以是任何字符的組合· 關鍵字不能用作標識符· 標識符是大小寫敏感的·
5、合法標識符舉例:age、$salary、_value、_1_value· 非法標識符舉例:123abc、-salaryJava修飾符像其他語言一樣,Java可以使用修飾符來修飾類中方法和屬性。主要有兩類修飾符:· 可訪問修飾符 : default, public , protected, private· 不可訪問修飾符 : final, abstract, strictfp在后面的章節(jié)中我們會深入討論Java修飾符。Java變量Java中主要有如下幾種類型的變量· 局部變量· 類變量(靜態(tài)變量)· 成員變量(非靜態(tài)變量)Java數(shù)組
6、數(shù)組是儲存在堆上的對象,可以保存多個同類型變量。在后面的章節(jié)中,我們將會學到如何聲明、構(gòu)造以及初始化一個數(shù)組。Java枚舉Java 5.0引入了枚舉,枚舉限制變量只能是預先設定好的值。使用枚舉可以減少代碼中的bug。例如,我們?yōu)楣暝O計一個程序,它將限制果汁為小杯、中杯、大杯。這就意味著它不允許顧客點除了這三種尺寸外的果汁。實例class FreshJuice enum FreshJuiceSize SMALL, MEDUIM, LARGE FreshJuiceSize size;public class FreshJuiceTest public static void main(Stri
7、ng args) FreshJuice juice = new FreshJuice(); juice.size = FreshJuice. FreshJuiceSize.MEDUIM ; 注意:枚舉可以單獨聲明或者聲明在類里面。方法、變量、構(gòu)造函數(shù)也可以在枚舉中定義。Java關鍵字下面列出了Java保留字。這些保留字不能用于常量、變量、和任何標識符的名稱。關鍵字描述abstract抽象方法,抽象類的修飾符assert斷言條件是否滿足boolean布爾數(shù)據(jù)類型break跳出循環(huán)或者label代碼段byte8-bit 有符號數(shù)據(jù)類型caseswitch語句的一個條件catch和try搭配撲捉異常
8、信息char16-bit Unicode字符數(shù)據(jù)類型class定義類const未使用continue不執(zhí)行循環(huán)體剩余部分defaultswitch語句中的默認分支do循環(huán)語句,循環(huán)體至少會執(zhí)行一次double64-bit雙精度浮點數(shù)elseif條件不成立時執(zhí)行的分支enum枚舉類型extends表示一個類是另一個類的子類final表示一個值在初始化之后就不能再改變了表示方法不能被重寫,或者一個類不能有子類finally為了完成執(zhí)行的代碼而設計的,主要是為了程序的健壯性和完整性,無論有沒有異常發(fā)生都執(zhí)行代碼。float32-bit單精度浮點數(shù)forfor循環(huán)語句goto未使用If條件語句impl
9、ements表示一個類實現(xiàn)了接口import導入類instanceof測試一個對象是否是某個類的實例int32位整型數(shù)interface接口,一種抽象的類型,僅有方法和常量的定義long64位整型數(shù)native表示方法用非java代碼實現(xiàn)new分配新的類實例package一系列相關類組成一個包private表示私有字段,或者方法等,只能從類內(nèi)部訪問protected表示字段只能通過類或者其子類訪問子類或者在同一個包內(nèi)的其他類public表示共有屬性或者方法return方法返回值short16位數(shù)字static表示在類級別定義,所有實例共享的strictfp浮點數(shù)比較使用嚴格的規(guī)則super表示
10、基類switch選擇語句synchronized表示同一時間只能由一個線程訪問的代碼塊this表示調(diào)用當前實例或者調(diào)用另一個構(gòu)造函數(shù)throw拋出異常throws定義方法可能拋出的異常transient修飾不要序列化的字段try表示代碼塊要做異常處理或者和finally配合表示是否拋出異常都執(zhí)行finally中的代碼void標記方法不返回任何值volatile標記字段可能會被多個線程同時訪問,而不做同步whilewhile循環(huán)Java注釋類似于C/C+,Java也支持單行以及多行注釋。注釋中的字符將被Java編譯器忽略。public class HelloWorld /* 這是第一個Java程
11、序 *它將打印Hello World * 這是一個多行注釋的示例 */ public static void main(String args) / 這是單行注釋的示例 /* 這個也是單行注釋的示例 */ System.out.println("Hello World"); Java 空行空白行,或者有注釋的的行,Java編譯器都會忽略掉。繼承在Java中,一個類可以由其他類派生。如果你要創(chuàng)建一個類,而且已經(jīng)存在一個類具有你所需要的屬性或方法,那么你可以將新創(chuàng)建的類繼承該類。利用繼承的方法,可以重用已存在類的方法和屬性,而不用重寫這些代碼。被繼承的類稱為超類(super c
12、lass),派生類稱為子類(subclass)。接口在Java中,接口可理解為對象間相互通信的協(xié)議。接口在繼承中扮演著很重要的角色。接口只定義派生要用到的方法,但是方法的具體實現(xiàn)完全取決于派生類。下一節(jié)介紹Java編程中的類和對象。之后你將會對Java中的類和對象有更清楚的認識。Java 對象和類Java作為一種面向?qū)ο笳Z言。支持以下基本概念:45· 多態(tài)· 繼承· 封裝· 抽象· 類· 對象· 實例· 方法· 重載本節(jié)我們重點研究對象和類的概念。· 對象:對象是類的一個實例,有狀態(tài)和行為。例如
13、,一條狗是一個對象,它的狀態(tài)有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。· 類:類是一個模板,它描述一類對象的行為和狀態(tài)。Java中的對象現(xiàn)在讓我們深入了解什么是對象??纯粗車鎸嵉氖澜?,會發(fā)現(xiàn)身邊有很多對象,車,狗,人等等。所有這些對象都有自己的狀態(tài)和行為。拿一條狗來舉例,它的狀態(tài)有:名字、品種、顏色,行為有:叫、搖尾巴和跑。對比現(xiàn)實對象和軟件對象,它們之間十分相似。軟件對象也有狀態(tài)和行為。軟件對象的狀態(tài)就是屬性,行為通過方法體現(xiàn)。在軟件開發(fā)中,方法操作對象內(nèi)部狀態(tài)的改變,對象的相互調(diào)用也是通過方法來完成。Java中的類類可以看成是創(chuàng)建Java對象的模板。通過下面一個簡單的類來
14、理解下Java中類的定義:public class Dog String breed; int age; String color; void barking() void hungry() void sleeping() 一個類可以包含以下類型變量:· 局部變量:在方法、構(gòu)造方法或者語句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方法中,方法結(jié)束后,變量就會自動銷毀。· 成員變量:成員變量是定義在類中,方法體之外的變量。這種變量在創(chuàng)建對象的時候?qū)嵗?。成員變量可以被類中方法、構(gòu)造方法和特定類的語句塊訪問。· 類變量:類變量也聲明在類中,方法體之外,但必須
15、聲明為static類型。一個類可以擁有多個方法,在上面的例子中:barking()、hungry()和sleeping()都是Dog類的方法。構(gòu)造方法每個類都有構(gòu)造方法。如果沒有顯式地為類定義構(gòu)造方法,Java編譯器將會為該類提供一個默認構(gòu)造方法。在創(chuàng)建一個對象的時候,至少要調(diào)用一個構(gòu)造方法。構(gòu)造方法的名稱必須與類同名,一個類可以有多個構(gòu)造方法。下面是一個構(gòu)造方法示例:public class Puppy public Puppy() public Puppy(String name) / 這個構(gòu)造器僅有一個參數(shù):name 創(chuàng)建對象對象是根據(jù)類創(chuàng)建的。在Java中,使用關鍵字new來創(chuàng)建一個新
16、的對象。創(chuàng)建對象需要以下三步:· 聲明:聲明一個對象,包括對象名稱和對象類型。· 實例化:使用關鍵字new來創(chuàng)建一個對象。· 初始化:使用new創(chuàng)建對象時,會調(diào)用構(gòu)造方法初始化對象。下面是一個創(chuàng)建對象的例子:public class Puppy public Puppy(String name) /這個構(gòu)造器僅有一個參數(shù):name System.out.println("Passed Name is :" + name ); public static void main(String args) / 下面的語句將創(chuàng)建一個Puppy對象 Pup
17、py myPuppy = new Puppy( "tommy" ); 編譯并運行上面的程序,會打印出下面的結(jié)果:Passed Name is :tommy訪問實例變量和方法通過已創(chuàng)建的對象來訪問成員變量和成員方法,如下所示:/* 實例化對象 */ObjectReference = new Constructor();/* 訪問其中的變量 */ObjectReference.variableName;/* 訪問類中的方法 */ObjectReference.MethodName();實例下面的例子展示如何訪問實例變量和調(diào)用成員方法:public class Puppy int
18、 puppyAge; public Puppy(String name) / 這個構(gòu)造器僅有一個參數(shù):name System.out.println("Passed Name is :" + name ); public void setAge( int age ) puppyAge = age; public int getAge( ) System.out.println("Puppy's age is :" + puppyAge ); return puppyAge; public static void main(String args)
19、 /* 創(chuàng)建對象 */ Puppy myPuppy = new Puppy( "tommy" ); /* 通過方法來設定age */ myPuppy.setAge( 2 ); /* 調(diào)用另一個方法獲取age */ myPuppy.getAge( ); /*你也可以像下面這樣訪問成員變量 */ System.out.println("Variable Value :" + myPuppy.puppyAge ); 編譯并運行上面的程序,產(chǎn)生如下結(jié)果:Passed Name is :tommyPuppy's age is :2Variable Valu
20、e :2源文件聲明規(guī)則在本節(jié)的最后部分,我們將學習源文件的聲明規(guī)則。當在一個源文件中定義多個類,并且還有import語句和package語句時,要特別注意這些規(guī)則。· 一個源文件中只能有一個public類· 一個源文件可以有多個非public類· 源文件的名稱應該和public類的類名保持一致。例如:源文件中public類的類名是Employee,那么源文件應該命名為Employee.java。· 如果一個類定義在某個包中,那么package語句應該在源文件的首行。· 如果源文件包含import語句,那么應該放在package語句和類定義之間。
21、如果沒有package語句,那么import語句應該在源文件中最前面。· import語句和package語句對源文件中定義的所有類都有效。在同一源文件中,不能給不同的類不同的包聲明。類有若干種訪問級別,并且類也分不同的類型:抽象類和final類等。這些將在訪問控制章節(jié)介紹。除了上面提到的幾種類型,Java還有一些特殊的類,如:內(nèi)部類、匿名類。Java包包主要用來對類和接口進行分類。當開發(fā)Java程序時,可能編寫成百上千的類,因此很有必要對類和接口進行分類。Import語句在Java中,如果給出一個完整的限定名,包括包名、類名,那么Java編譯器就可以很容易地定位到源代碼或者類。Im
22、port語句就是用來提供一個合理的路徑,使得編譯器可以找到某個類。例如,下面的命令行將會命令編譯器載入java_installation/java/io路徑下的所有類import java.io.*;一個簡單的例子在該例子中,我們創(chuàng)建兩個類:Employee和EmployeeTest。首先打開文本編輯器,把下面的代碼粘貼進去。注意將文件保存為Employee.java。Employee類有四個成員變量:name、age、designation和salary。該類顯式聲明了一個構(gòu)造方法,該方法只有一個參數(shù)。import java.io.*;public class Employee String
23、 name; int age; String designation; double salary; / Employee 類的構(gòu)造器 public Employee(String name) = name; / 設置age的值 public void empAge(int empAge) age = empAge; /* 設置designation的值*/ public void empDesignation(String empDesig) designation = empDesig; /* 設置salary的值*/ public void empSalary(dou
24、ble empSalary) salary = empSalary; /* 打印信息 */ public void printEmployee() System.out.println("Name:"+ name ); System.out.println("Age:" + age ); System.out.println("Designation:" + designation ); System.out.println("Salary:" + salary); 程序都是從main方法開始執(zhí)行。為了能運行這個程
25、序,必須包含main方法并且創(chuàng)建一個實例對象。下面給出EmployeeTest類,該類實例化2個Employee類的實例,并調(diào)用方法設置變量的值。將下面的代碼保存在EmployeeTest.java文件中。import java.io.*;public class EmployeeTest public static void main(String args) /* 使用構(gòu)造器創(chuàng)建兩個對象 */ Employee empOne = new Employee("James Smith"); Employee empTwo = new Employee("Mary
26、Anne"); / 調(diào)用這兩個對象的成員方法 empOne.empAge(26); empOne.empDesignation("Senior Software Engineer"); empOne.empSalary(1000); empOne.printEmployee(); empTwo.empAge(21); empTwo.empDesignation("Software Engineer"); empTwo.empSalary(500); empTwo.printEmployee(); 編譯這兩個文件并且運行EmployeeTest類
27、,可以看到如下結(jié)果:C :> javac Employee.javaC :> vi EmployeeTest.javaC :> javac EmployeeTest.javaC :> java EmployeeTestName:James SmithAge:26Designation:Senior Software EngineerSalary:1000.0Name:Mary AnneAge:21Designation:Software EngineerSalary:500.0Java 基本數(shù)據(jù)類型變量就是申請內(nèi)存來存儲值。也就是說,當創(chuàng)建變量的時候,需要在內(nèi)存中申請空
28、間。內(nèi)存管理系統(tǒng)根據(jù)變量的類型為變量分配存儲空間,分配的空間只能用來儲存該類型數(shù)據(jù)。因此,通過定義不同類型的變量,可以在內(nèi)存中儲存整數(shù)、小數(shù)或者字符。Java的兩大數(shù)據(jù)類型:· 內(nèi)置數(shù)據(jù)類型· 引用數(shù)據(jù)類型內(nèi)置數(shù)據(jù)類型Java語言提供了八種基本類型。六種數(shù)字類型(四個整數(shù)型,兩個浮點型),一種字符類型,還有一種布爾型。byte:· byte數(shù)據(jù)類型是8位、有符號的,以二進制補碼表示的整數(shù);· 最小值是-128(-27);· 最大值是127(27-1);· 默認值是0;· byte類型用在大型數(shù)組中節(jié)約空間,主要代替整數(shù),因為
29、byte變量占用的空間只有int類型的四分之一;· 例子:byte a = 100,byte b = -50。short:· short數(shù)據(jù)類型是16位、有符號的以二進制補碼表示的整數(shù)· 最小值是-32768(-215);· 最大值是32767(215 - 1);· Short數(shù)據(jù)類型也可以像byte那樣節(jié)省空間。一個short變量是int型變量所占空間的二分之一;· 默認值是0;· 例子:short s = 1000,short r = -20000。int:· int數(shù)據(jù)類型是32位、有符號的以二進制補碼表示的
30、整數(shù);· 最小值是-2,147,483,648(-231);· 最大值是2,147,485,647(231 - 1);· 一般地整型變量默認為int類型;· 默認值是0;· 例子:int a = 100000, int b = -200000。long:· long數(shù)據(jù)類型是64位、有符號的以二進制補碼表示的整數(shù);· 最小值是-9,223,372,036,854,775,808(-263);· 最大值是9,223,372,036,854,775,807(263 -1);· 這種類型主要使用在需要比較大整數(shù)
31、的系統(tǒng)上;· 默認值是0L;· 例子: long a = 100000L,Long b = -200000L。float:· float數(shù)據(jù)類型是單精度、32位、符合IEEE 754標準的浮點數(shù);· float在儲存大型浮點數(shù)組的時候可節(jié)省內(nèi)存空間;· 默認值是0.0f;· 浮點數(shù)不能用來表示精確的值,如貨幣;· 例子:float f1 = 234.5f。double:· double數(shù)據(jù)類型是雙精度、64位、符合IEEE 754標準的浮點數(shù);· 浮點數(shù)的默認類型為double類型;· doub
32、le類型同樣不能表示精確的值,如貨幣;· 默認值是0.0d;· 例子:double d1 = 123.4。boolean:· boolean數(shù)據(jù)類型表示一位的信息;· 只有兩個取值:true和false;· 這種類型只作為一種標志來記錄true/false情況;· 默認值是false;· 例子:boolean one = true。char:· char類型是一個單一的16位Unicode字符;· 最小值是u0000(即為0);· 最大值是uffff(即為65,535);· char數(shù)
33、據(jù)類型可以儲存任何字符;· 例子:char letter = A。實例對于數(shù)值類型的基本類型的取值范圍,我們無需強制去記憶,因為它們的值都已經(jīng)以常量的形式定義在對應的包裝類中了。請看下面的例子:public class PrimitiveTypeTest public static void main(String args) / byte System.out.println("基本類型:byte 二進制位數(shù):" + Byte.SIZE); System.out.println("包裝類:java.lang.Byte"); System.ou
34、t.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE); System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE); System.out.println(); / short System.out.println("基本類型:short 二進制位數(shù):" + Short.SIZE); System.out.println("包裝類:java.lang.Short"); System.out.println(&qu
35、ot;最小值:Short.MIN_VALUE=" + Short.MIN_VALUE); System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE); System.out.println(); / int System.out.println("基本類型:int 二進制位數(shù):" + Integer.SIZE); System.out.println("包裝類:java.lang.Integer"); System.out.println("最小值:In
36、teger.MIN_VALUE=" + Integer.MIN_VALUE); System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE); System.out.println(); / long System.out.println("基本類型:long 二進制位數(shù):" + Long.SIZE); System.out.println("包裝類:java.lang.Long"); System.out.println("最小值:Long.MI
37、N_VALUE=" + Long.MIN_VALUE); System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE); System.out.println(); / float System.out.println("基本類型:float 二進制位數(shù):" + Float.SIZE); System.out.println("包裝類:java.lang.Float"); System.out.println("最小值:Float.MIN_VALUE=&quo
38、t; + Float.MIN_VALUE); System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE); System.out.println(); / double System.out.println("基本類型:double 二進制位數(shù):" + Double.SIZE); System.out.println("包裝類:java.lang.Double"); System.out.println("最小值:Double.MIN_VALUE=" +
39、 Double.MIN_VALUE); System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE); System.out.println(); / char System.out.println("基本類型:char 二進制位數(shù):" + Character.SIZE); System.out.println("包裝類:java.lang.Character"); / 以數(shù)值形式而不是字符形式將Character.MIN_VALUE輸出到控制臺 System.out.p
40、rintln("最小值:Character.MIN_VALUE=" + (int) Character.MIN_VALUE); / 以數(shù)值形式而不是字符形式將Character.MAX_VALUE輸出到控制臺 System.out.println("最大值:Character.MAX_VALUE=" + (int) Character.MAX_VALUE); 編譯以上代碼輸出結(jié)果如下所示:基本類型:byte 二進制位數(shù):8包裝類:java.lang.Byte最小值:Byte.MIN_VALUE=-128最大值:Byte.MAX_VALUE=127基本類型
41、:short 二進制位數(shù):16包裝類:java.lang.Short最小值:Short.MIN_VALUE=-32768最大值:Short.MAX_VALUE=32767基本類型:int 二進制位數(shù):32包裝類:java.lang.Integer最小值:Integer.MIN_VALUE=-2147483648最大值:Integer.MAX_VALUE=2147483647基本類型:long 二進制位數(shù):64包裝類:java.lang.Long最小值:Long.MIN_VALUE=-9223372036854775808最大值:Long.MAX_VALUE=922337203685477580
42、7基本類型:float 二進制位數(shù):32包裝類:java.lang.Float最小值:Float.MIN_VALUE=1.4E-45最大值:Float.MAX_VALUE=3.4028235E38基本類型:double 二進制位數(shù):64包裝類:java.lang.Double最小值:Double.MIN_VALUE=4.9E-324最大值:Double.MAX_VALUE=1.7976931348623157E308基本類型:char 二進制位數(shù):16包裝類:java.lang.Character最小值:Character.MIN_VALUE=0最大值:Character.MAX_VALUE=
43、65535Float和Double的最小值和最大值都是以科學記數(shù)法的形式輸出的,結(jié)尾的"E+數(shù)字"表示E之前的數(shù)字要乘以10的多少次方。比如3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。實際上,JAVA中還存在另外一種基本類型void,它也有對應的包裝類 java.lang.Void,不過我們無法直接對它們進行操作。引用類型· 引用類型變量由類的構(gòu)造函數(shù)創(chuàng)建,可以使用它們訪問所引用的對象。這些變量在聲明時被指定為一個特定的類型,比如Employee、Pubby等。變量
44、一旦聲明后,類型就不能被改變了。· 對象、數(shù)組都是引用數(shù)據(jù)類型。· 所有引用類型的默認值都是null。· 一個引用變量可以用來引用與任何與之兼容的類型。· 例子:Animal animal = new Animal(“giraffe”)。Java常量常量就是一個固定值。它們不需要計算,直接代表相應的值。常量指不能改變的量。 在Java中用final標志,聲明方式和變量類似:final double PI = 3.1415927;雖然常量名也可以用小寫,但為了便于識別,通常使用大寫字母表示常量。字面量可以賦給任何內(nèi)置類型的變量。例如:byte a = 68
45、;char a = 'A'byte、int、long、和short都可以用十進制、16進制以及8進制的方式來表示。當使用常量的時候,前綴0表示8進制,而前綴0x代表16進制。例如:int decimal = 100;int octal = 0144;int hexa = 0x64;和其他語言一樣,Java的字符串常量也是包含在兩個引號之間的字符序列。下面是字符串型字面量的例子:"Hello World""twonlines"""This is in quotes""字符串常量和字符常量都可以包含任何
46、Unicode字符。例如:char a = 'u0001'String a = "u0001"Java語言支持一些特殊的轉(zhuǎn)義字符序列。符號字符含義n換行 (0x0a)r回車 (0x0d)f換頁符(0x0c)b退格 (0x08)s空格 (0x20)t制表符"雙引號'單引號反斜杠ddd八進制字符 (ddd)uxxxx16進制Unicode字符 (xxxx)這一節(jié)講解了Java的基本數(shù)據(jù)類型。下一節(jié)將探討不同的變量類型以及它們的用法。Java 變量類型在Java語言中,所有的變量在使用前必須聲明。聲明變量的基本格式如下:type identifi
47、er = value, identifier = value . ;格式說明:type為Java數(shù)據(jù)類型。identifier是變量名??梢允褂枚禾柛糸_來聲明多個同類型變量。以下列出了一些變量的聲明實例。注意有些包含了初始化過程。int a, b, c; / 聲明三個int型整數(shù):a、 b、 d = 3, e, f = 5; / d聲明三個整數(shù)并賦予初值。byte z = 22; / 聲明并初始
48、化z。double pi = 3.14159; / 聲明了pi。char x = 'x' / 變量x的值是字符'x'。Java語言支持的變量類型有:· 局部變量· 成員變量· 類變量Java局部變量· 局部變量聲明在方法、構(gòu)造方法或者語句塊中;· 局部變量在方法、構(gòu)造方法、或者語句塊被執(zhí)行的時候創(chuàng)建,當它們執(zhí)行完成后,變量將會被銷毀;· 訪問修飾符不能用于局部變量;· 局部變量只在聲明它的方法、構(gòu)造方法或者語句
49、塊中可見;· 局部變量是在棧上分配的。· 局部變量沒有默認值,所以局部變量被聲明后,必須經(jīng)過初始化,才可以使用。實例1在以下實例中age是一個局部變量。定義在pubAge()方法中,它的作用域就限制在這個方法中。public class Test public void pupAge() int age = 0; age = age + 7; System.out.println("Puppy age is : " + age); public static void main(String args) Test test = new Test(); t
50、est.pupAge(); 以上實例編譯運行結(jié)果如下:Puppy age is: 7實例2在下面的例子中age變量沒有初始化,所以在編譯時出錯。public class Test public void pupAge() int age; age = age + 7; System.out.println("Puppy age is : " + age); public static void main(String args) Test test = new Test(); test.pupAge(); 以上實例編譯運行結(jié)果如下:Test.java:4:variable
51、number might not have been initializedage = age + 7; 1 error實例變量· 實例變量聲明在一個類中,但在方法、構(gòu)造方法和語句塊之外;· 當一個對象被實例化之后,每個實例變量的值就跟著確定;· 實例變量在對象創(chuàng)建的時候創(chuàng)建,在對象被銷毀的時候銷毀;· 實例變量的值應該至少被一個方法、構(gòu)造方法或者語句塊引用,使得外部能夠通過這些方式獲取實例變量信息;· 實例變量可以聲明在使用前或者使用后;· 訪問修飾符可以修飾實例變量;· 實例變量對于類中的方法、構(gòu)造方法或者語句塊是可見的
52、。一般情況下應該把實例變量設為私有。通過使用訪問修飾符可以使實例變量對子類可見;· 實例變量具有默認值。數(shù)值型變量的默認值是0,布爾型變量的默認值是false,引用類型變量的默認值是null。變量的值可以在聲明時指定,也可以在構(gòu)造方法中指定;· 實例變量可以直接通過變量名訪問。但在靜態(tài)方法以及其他類中,就應該使用完全限定名:ObejectReference.VariableName。實例:import java.io.*;public class Employee / 這個成員變量對子類可見 public String nam
53、e; / 私有變量,僅在該類可見 private double salary; /在構(gòu)造器中對name賦值 public Employee (String empName) name = empName; /設定salary的值 public void setSalary(double empSal) sal
54、ary = empSal; / 打印信息 public void printEmp() System.out.println("name : " + name ); System.out.println("salary :" + salary); public static vo
55、id main(String args) Employee empOne = new Employee("Ransika"); empOne.setSalary(1000); empOne.printEmp(); 以上實例編譯運行結(jié)果如下:name : Ransikasalary :1000.0類變量(靜態(tài)變量)· 類變量也稱為靜態(tài)變量,在類中以static關鍵字
56、聲明,但必須在方法構(gòu)造方法和語句塊之外。· 無論一個類創(chuàng)建了多少個對象,類只擁有類變量的一份拷貝。· 靜態(tài)變量除了被聲明為常量外很少使用。常量是指聲明為public/private,final和static類型的變量。常量初始化后不可改變。· 靜態(tài)變量儲存在靜態(tài)存儲區(qū)。經(jīng)常被聲明為常量,很少單獨使用static聲明變量。· 靜態(tài)變量在程序開始時創(chuàng)建,在程序結(jié)束時銷毀。· 與實例變量具有相似的可見性。但為了對類的使用者可見,大多數(shù)靜態(tài)變量聲明為public類型。· 默認值和實例變量相似。數(shù)值型變量默認值是0,布爾型默認值是false,引
57、用類型默認值是null。變量的值可以在聲明的時候指定,也可以在構(gòu)造方法中指定。此外,靜態(tài)變量還可以在靜態(tài)語句塊中初始化。· 靜態(tài)變量可以通過:ClassName.VariableName的方式訪問。· 類變量被聲明為public static final類型時,類變量名稱必須使用大寫字母。如果靜態(tài)變量不是public和final類型,其命名方式與實例變量以及局部變量的命名方式一致。實例:import java.io.*;public class Employee /salary是靜態(tài)的私有變量 private static double salary; /
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年金融行業(yè)數(shù)據(jù)治理與數(shù)據(jù)資產(chǎn)化在金融行業(yè)金融科技風險管理人才中的應用報告
- 城市污水處理廠擴建項目2025年社會穩(wěn)定風險評估與公眾參與評估報告
- 2025年教育行業(yè)質(zhì)量評估與認證體系教育質(zhì)量評價體系教育質(zhì)量改進策略研究報告
- 民間文化保護與傳承的創(chuàng)新模式
- 覆蓋端到端設計流程的試題與答案
- 2025年工業(yè)互聯(lián)網(wǎng)平臺入侵檢測系統(tǒng)在物聯(lián)網(wǎng)設備安全防護中的威脅檢測與防御
- 西方政黨制度的試題及答案
- 機電工程2025年市場動態(tài)研究試題及答案
- 固體力學基本原理試題及答案
- 2025年食品飲料包裝印刷行業(yè)綠色轉(zhuǎn)型研究報告
- 2025年標準育兒嫂合同樣本
- 打印消防安全制度
- 文言文18個虛詞及文言文120個實詞的解釋
- 江蘇省淮陰區(qū)2025屆高三下第一次測試數(shù)學試題含解析
- 人工智能賦能教師數(shù)字素養(yǎng)提升
- C919機組培訓-導航系統(tǒng)
- 藥理學知到智慧樹章節(jié)測試課后答案2024年秋哈爾濱商業(yè)大學
- 智能病歷質(zhì)控系統(tǒng)需求說明
- 山東省煙臺市萊州市一中2025屆高考數(shù)學押題試卷含解析
- 2023年高考真題-生物(遼寧卷) 含答案
- 叉車出租行業(yè)市場調(diào)研分析報告
評論
0/150
提交評論