版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Java編程語言概述1.1Java的歷史與發(fā)展1.1.1Java的歷史最初命名為Oak(橡樹)小組主要成員:JamesGosling等最初目的:與家用電器一起使用1994年,小組意識(shí)到Oak非常適合用于Internet于1995年5月發(fā)布第一個(gè)非試用版本于1996年發(fā)布Java技術(shù)是免費(fèi)的JamesGoslingJavaOne大會(huì)1996年5月,第一界JavaOne大會(huì)在舊金山召開。1.1.2Java的發(fā)展1995.5.23Java誕生1997.2.18JDK1.1(Java1.1API)
VJ++、cafe、JBuilder….支持
1998.12JDK1.2(Java2SDK1.2)
目前版本J2SDK1.4.2網(wǎng)址(查詢新動(dòng)向)《ThinkinginJava》,BruceEckel, 機(jī)械工業(yè)出版社1.1.3Java的設(shè)計(jì)目標(biāo)
創(chuàng)建一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言
易于移植到不同的平臺(tái)(一次編譯,到處運(yùn)行)
吸收C和C++的優(yōu)點(diǎn),使程序員容易掌握
去掉C和C++中影響程序健壯性的部分,例如指針、內(nèi)存申請(qǐng)和釋放,使程序更安全穩(wěn)定
實(shí)現(xiàn)多線程,使得程序能夠同時(shí)執(zhí)行多個(gè)任務(wù)
為分布式環(huán)境提供動(dòng)態(tài)下載程序代碼的機(jī)制
提供代碼校驗(yàn)機(jī)制以保證安全性1.2Java的工作方式計(jì)算機(jī)的高級(jí)編程語言類型: -編譯型
-解釋型編譯型:跨平臺(tái)性差解釋型:跨平臺(tái),速度慢Java文件類型.java Java源文件.class 二進(jìn)制字節(jié)碼文件Java編譯器Importjava.io.*;classtest{….}test.javaDFBA0988……..test.class編譯過程Java虛擬機(jī)Java虛擬機(jī)的建立需要針對(duì)不同的軟硬件平臺(tái)做專門的實(shí)現(xiàn),既要考慮處理器的型號(hào),也要考慮操作系統(tǒng)的種類。如下圖所示,目前在SPARC、X86、MIPS和PPC等嵌入式處理芯片上、在UNIX、Linux、windows和部分實(shí)時(shí)操作系統(tǒng)上都有java虛擬機(jī)的實(shí)現(xiàn)。Java源程序編譯字節(jié)碼文件Java虛擬機(jī)執(zhí)行LinuxWindowsMac
1.2.2Java平臺(tái) TheJavaVirtualMachine(JVM)
TheJava應(yīng)用編程接口(JavaAPI):
Java應(yīng)用編程接口是已編譯的可在我們的程序中使用的代碼庫(基礎(chǔ)類庫)。它們使我們能夠添加現(xiàn)成的可定制的功能,以節(jié)約編程時(shí)間。
JavaPlatform2J2SE:StandardEdition針對(duì)桌面計(jì)算機(jī)開發(fā)(主要有JavaApplet和JavaApplication應(yīng)用程序J2EE:EnterpriseEdition用來開發(fā)企業(yè)應(yīng)用的平臺(tái),基于組件技術(shù)的應(yīng)用開發(fā)框架J2ME:MircoEdition針對(duì)嵌入式技術(shù)1.3Java語言的特點(diǎn)
Asimple,object-oriented,distributed,interpreted,robust,secure,architecture-neutral,portable,high-performance,multi-threaded,dynamiclanguage1.簡單、面向?qū)ο蠛头植际?/p>
2.解釋執(zhí)行、魯棒并且安全
3.結(jié)構(gòu)中立并且可以移植
4.高性能
5.多線程并且是動(dòng)態(tài)的簡單:KISSC++like無指針自動(dòng)內(nèi)存回收面向?qū)ο笸耆陬?、?duì)象封裝、繼承、多態(tài)取消多繼承、模版、運(yùn)算符重載分布式動(dòng)態(tài)下載程序代碼的機(jī)制完全是為了適應(yīng)網(wǎng)絡(luò)分布式計(jì)算的特點(diǎn)Java簡化了網(wǎng)絡(luò)支持,使得網(wǎng)絡(luò)編程比較簡單。遠(yuǎn)程方法調(diào)用(RMI)技術(shù)使得分布式計(jì)算實(shí)現(xiàn)起來非常容易。Java對(duì)XML的強(qiáng)大支持進(jìn)一步提高了分布式環(huán)境下的計(jì)算。解釋執(zhí)行穩(wěn)定性檢查數(shù)據(jù)類型的匹配,數(shù)組下標(biāo)越界檢查無指針自動(dòng)內(nèi)存管理,保護(hù)內(nèi)存數(shù)據(jù)、程序碎片收集例外控制機(jī)制,正確處理運(yùn)行時(shí)錯(cuò)誤
安全性代碼檢測垃圾收集機(jī)制,自動(dòng)內(nèi)存回收無指針可移植
JVM統(tǒng)一的數(shù)據(jù)類型
int-32bit char-16bitunicode高效JIT(Just-In-Time)及時(shí)編譯器的代碼生成技術(shù)可按需編譯字節(jié)代碼為機(jī)器代碼,提高運(yùn)行速度。多線程支持多任務(wù)動(dòng)態(tài)動(dòng)態(tài)下載程序代碼的機(jī)制,程序可以根據(jù)需要把代碼實(shí)時(shí)的從服務(wù)器中下載過來執(zhí)行
1.4JAVA開發(fā)工具JDK系列(Sun)命令行JavaWorkShop(Sun) SymantecCAFéJBuilder(Borland)VisualJ++(MicroSoft)JCreator:IDE開發(fā)工具OPTIONAL
Java技術(shù)編程入門新術(shù)語在Java技術(shù)中:變量=屬性方法=操作類仍然稱作類所謂類就是一類屬性(變量)和操作(方法)的描述。其中,屬性可用一系列的變量表達(dá),而操作用一系列方法表示。一類人員Person:抽象出下列屬性:名字、年齡、身高、婚否、性別,分別用變量name、age、height、marriage、sex表示(見名知義),吃飯,講話,走路等行為可表示為相應(yīng)的方法eat(),speak(),walk()等。用Java語言描述Person類如下:classPerson{//以下5個(gè)是變量Stringname;intage;doubleheight;booleanmarriage;charsex;
speak(…)//方法{…}
eat(…)//方法{…}}
對(duì)Person類中某一特定的人,上述變量就有特定的值,如name(張三),age(20),height(1.76),marriage(false),sex(’m’)。主要的應(yīng)用程序組件類代碼塊是程序的主要結(jié)構(gòu)變量是程序執(zhí)行所使用的數(shù)據(jù)方法代碼塊是用于程序操作的結(jié)構(gòu)使用大括號(hào){和}來定義代碼塊在操作的結(jié)尾使用分號(hào)查看結(jié)果:Shirt.java
javacHello.javaD:\Lesson3>
javaHelloD:\Lesson3>Hello,JavaWorld!編譯、運(yùn)行應(yīng)用程序Application:Debugging調(diào)試檢查錯(cuò)誤消息中指出的行檢查分號(hào)檢查大括號(hào)數(shù)是否為偶數(shù)使用基本數(shù)據(jù)類型將數(shù)據(jù)存儲(chǔ)在變量中基本類型包括:整型——byte,short,int和long浮點(diǎn)型——float和double字符型——char邏輯型——boolean基本數(shù)據(jù)類型
數(shù)據(jù)類型名占用內(nèi)存空間數(shù)值范圍缺省值說明byte1字節(jié)(-128)~1270整型short2字節(jié)(-32768)~327670int4字節(jié)(-2147483648)~21474836470long8字節(jié)(-9223372036854775808)~92233720368547758070float4字節(jié)0.0F浮點(diǎn)型double8字節(jié)0.0Dchar2字節(jié)字符型boolean——true或falsefalse布爾型類型長度范圍byte8bit-27~27-1(-128~127)short16bit-215~215-1(-32768~32767)int32bit-231~231-1(-2147483648~2147483647)long64bit-263~263-1(-9223372036854775808~9223372036854775807)存儲(chǔ)沒有小數(shù)部分的數(shù)據(jù)類型
Java各整數(shù)類型有固定的表數(shù)范圍和字段長度,而不受具體操作系統(tǒng)的影響,以保證Java程序的可移植性1、整型
數(shù)值20在內(nèi)存中的存儲(chǔ)形式
00010100
byte(1字節(jié))00000000
00010100
short
(2字節(jié))高位置000000000
00000000
00000000
00010100
int
(4字節(jié))00000000
00000000
00000000
00000000
00000000
00000000
00000000
00010100
Long
(8字節(jié))2、浮點(diǎn)型
浮點(diǎn)型是帶有小數(shù)部分的數(shù)據(jù)類型,包括兩種不同的數(shù)據(jù)類型:float和double。float類型的變量占用4個(gè)字節(jié)(32位),double類型的數(shù)據(jù)則需要8個(gè)字節(jié)(64位)內(nèi)存。在許多程序中,就其表示的數(shù)值范圍而言,使用float類型來存儲(chǔ)浮點(diǎn)數(shù)已經(jīng)足夠了。浮點(diǎn)數(shù)據(jù)有兩種表示形式十進(jìn)制數(shù)形式,必須含有小數(shù)點(diǎn),例如: 3.14314.0.314科學(xué)記數(shù)法形式,如3.14e23.14E-12Java浮點(diǎn)數(shù)據(jù)默認(rèn)為double型,如要聲明一個(gè)常量為float型,則需在數(shù)字后面加f或F,如:
doubled=3.14; floatf=3.14f;3、布爾型(boolean)
布爾數(shù)據(jù)類型用于表達(dá)兩個(gè)邏輯狀態(tài)之一的值:true(真)或false(假)。布爾型數(shù)據(jù)只有兩個(gè)值true和false,且它們不對(duì)應(yīng)于任何整數(shù)值。布爾型變量的定義如:
booleanb=true;
4、字符型(char)字符型數(shù)據(jù)類型用于存放單個(gè)字符,每個(gè)字符占用2個(gè)字節(jié)(16位)的存儲(chǔ)空間。將一個(gè)字符放到一個(gè)字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應(yīng)的Unicode代碼放到存儲(chǔ)單元中。
charc1=‘t’; charc2=‘3’;char基于Unicode編碼,\u前綴標(biāo)志著這是一個(gè)Unicode值 例如,\u0061代表字符’a’。標(biāo)識(shí)符Java保留字(又稱關(guān)鍵字)
關(guān)鍵字不能作為標(biāo)識(shí)符; 關(guān)鍵字是具有專門的意義和用途,不能當(dāng)作一般的標(biāo)識(shí)符使用,這些標(biāo)識(shí)符稱為保留字(reservedword),下面列出了java語言中的所有保留字:abstractdoimplementsprotectedthrowsbooleandoubleimportpublictransientbreakelseinstanceofreturntruethisthrowbyteextendsintshorttrysynchronizedcasefalseinterfacestaticvoidcontinuecatchfinallongstrictpfvolatilegotodefaultcharfinallynativesuperwhilepackageclassfloatnewswitchconstfornullifprivatejava中的關(guān)鍵字均用小寫字母表示。合法的標(biāo)識(shí)符identifieruserNameUser_Name_sysval$change A98_23
_abc非法的標(biāo)識(shí)符
2mail room# classA-4
3_1
>the變量(屬性)
變量是用來存放指定類型的數(shù)據(jù),其值在程序運(yùn)行過程中是可變的。
在使用Java中的每個(gè)變量之前,都必須對(duì)它進(jìn)行聲明。變量的聲明形式如下:
類型
變量名;
變量聲明包括指明變量的數(shù)據(jù)類型、變量名和作用域其中數(shù)據(jù)類型說明了這個(gè)變量能存放什么樣的數(shù)據(jù)。變量名是用來標(biāo)識(shí)該變量的,我們存取變量的內(nèi)容(變量的值)都是通過變量名來實(shí)現(xiàn)的。變量名
在Java中用標(biāo)識(shí)符來表示變量名。象Person這個(gè)類,我們使用了name、age、tall、marriage、sex這幾個(gè)標(biāo)識(shí)符,分別定義了五個(gè)變量。程序員應(yīng)該為變量取有意義的名稱,以利于程序的閱讀和理解。(見名知義)但變量取名時(shí)還有一些限制:變量名由字母、數(shù)字、下劃線或美元符“$”組成的變量名不能以數(shù)字作為第一個(gè)字符區(qū)分大小寫下面是合法的變量名:
Month(不同于month),student_name,class1,dollar$,$abc而下面的變量名都不合法:
3a46,a>b,abc-d,#ef.
變量名
變量名中字母大寫和小寫是有區(qū)別的,name和Name表示兩個(gè)不同的變量名。Java中約定,變量名以小寫字母開頭,若一個(gè)變量名由超過一個(gè)單詞所組成,則第一個(gè)單詞之后的所有單詞都以大寫字母開頭,以便于理解該變量名。例如:anIntVar表示一個(gè)整型變量。變量的初始化
賦予變量一個(gè)初值,稱為變量的初始化。可在定義變量的同時(shí)進(jìn)行變量的初始化,如:intanIntVar=1;charaCharVar=’A’;floataFloatVar=1.23f;booleanaBooleanVar=true;也可定義變量后再單獨(dú)初始化,如:intanIntVar;charaCharVar;floataFloatVar;booleanaBooleanVar;anIntVar=1;aCharVar=’A’;aFloatVar=1.23f;aBooleanVar=true;兩種方法都完成了定義變量:anIntVar、aCharVar、aFloatVar、aBooleanVar,并分別給它們賦初值:1、’A’、1.23、true。變量的作用域
變量的作用域:變量的使用范圍。假定在某代碼段中能夠使用一特定變量,則此段代碼即是該變量的作用域。在類中聲明的類成員變量,可在該類的各個(gè)成員方法中使用;在某個(gè)方法體中或參數(shù)表中聲明的變量,只能在該方法體中使用;在某個(gè)語句塊中聲明的變量,只能在該語句塊中使用。變量的作用域publicclassVariableLifeTime{ publicstaticvoidmain(String[]args) { intsum=0;
intA=10; for(intx=1;x<=5;x++) {
inty=0; y=y+A; sum=sum+y; System.out.print("x="+x); System.out.print("y="+y); System.out.println("sum="+sum); } System.out.println("sum="+sum); }}查看結(jié)果:VariableLifeTime.javaclassPerson{//以下5個(gè)成員變量
Stringname; intage; doubletall; booleanmarriage; charsex;
//以下2個(gè)方法
eat(Stringeatwhat){ System.out.println(name+”ateupthe“+eatwhat); }}
Speak(Stringsaywhat,inttime){inti;for(i=0;i<time;i++)System.out.println(name+”say:”+saywhat);}變量name、age、tall、marriage、sex的作用域變量i的作用域下圖為變量作用域的示意圖:由左圖可以看出,變量name、age、tall、marriage、sex和變量i的作用域是不同的。變量name、age、tall、marriage、和sex的作用域是整個(gè)類,在類的方法中也可使用它們。這種變量稱之為成員變量。確切地講,成員變量是在類當(dāng)中、但不是在其類的方法中定義的變量。而變量i是定義在speak方法中,它的作用域僅限于speak方法中。這類定義在某方法中的變量叫做局部變量。注意:同一作用域中不可有同名的變量。如上面的代碼在speak方法中不能再定義一個(gè)名字為i的變量。常量
常量是指在程序運(yùn)行過程中其值不變的量。定義常量的方法有兩種:(1)在定義變量的類型前面加final關(guān)鍵字,并同時(shí)進(jìn)行初始化,如下所示:finalintaFinalVar=0;finaldoublePI=3.14159;
(2)在定義變量的類型前面加final關(guān)鍵字,不進(jìn)行初始化。通過另外的語句進(jìn)行賦值。如下所示:finalintaFinalVar;…aFinalVar=0;常量和變量常量與變量之間最根本的區(qū)別是:常量在經(jīng)過定義并給它一個(gè)值之后,不能再對(duì)它進(jìn)行修改。而變量則無此限制。對(duì)于常量a,進(jìn)行如下的操作是錯(cuò)誤的:finalinta=1;….a=2;
而對(duì)于變量a,如下這段代碼則是正確的。inta=1;…a=2;示例:
publicclassAssign{
publicstaticvoidmain(String[]args) {
intx;
inty;//定義x,y兩個(gè)整型變量
floatz=1.234f;//指定變量z為float型,且賦初值為1.234
doublew=1.234;//指定變量w為double型,且賦初值為1.234
booleanflag=true;//指定變量flag為boolean型,且賦初值為true
charc;//定義字符型變量c
Stringstr;//定義字符串變量str
Stringstr1="Hi";//指定變量str1為String型,且賦初值為Hi
c='A';//給字符型變量c賦值'A'
str="bye";//給字符串變量str賦值"bye"
x=12;//給整型變量x賦值為12
y=x;//給整型變量y賦值為12
}
}
Java區(qū)分大小寫類定義不能嵌套一個(gè)程序中可以有一個(gè)或多個(gè)類,但其中只能有一個(gè)public類源程序編寫完畢,應(yīng)該以主類名作為文件名,再加后綴.java存儲(chǔ)編寫Java程序需要注意的幾點(diǎn)在Java中嵌套的程序塊的內(nèi)層和外層,不允許定義相同的變量名,否則將導(dǎo)致編譯錯(cuò)誤。publicclassScopeError{ publicstaticvoidmain(String[]args) { intE=999;
{ intE=999; System.out.println(“E="+E); }
}}變量類型轉(zhuǎn)換短類型
長類型:默認(rèn)長類型
短類型:強(qiáng)制例:inta; longb; b=a; a=(int)b;不同類型數(shù)據(jù)間的優(yōu)先關(guān)系如下:
低------------------------------------------->高byte,short,char->int->long->float->double高級(jí)數(shù)據(jù)類型要轉(zhuǎn)換成低級(jí)數(shù)據(jù)類型,需要用到強(qiáng)制類型轉(zhuǎn)換。 其一般形式為:(類型名)(表達(dá)式)如:int i;byteb;i=356;b=(byte)i;//強(qiáng)制轉(zhuǎn)換后丟失一部分?jǐn)?shù)據(jù),使得b的值為100。一般使用強(qiáng)制類型轉(zhuǎn)換可能會(huì)導(dǎo)致數(shù)值溢出或精度的下降,應(yīng)盡量避免。習(xí)題1.判斷下面標(biāo)識(shí)符,哪些是合法的標(biāo)識(shí)符?哪些是不合法的標(biāo)識(shí)符?
myName、2mail、room#、value-1、dollar$、class2.請(qǐng)指出下面數(shù)值的類型:(1)178(2)8876L(3)37.266D(4)37.266D(5)87.363F(6)26.77E3(7)‘c’(8)true
對(duì)象和編程結(jié)構(gòu)
創(chuàng)建一個(gè)引用對(duì)象的變量需要分3個(gè)步驟:1、聲明一個(gè)對(duì)對(duì)象的引用2、創(chuàng)建對(duì)象3、賦值創(chuàng)建對(duì)象引用變量
步驟1——聲明
ClassName
identifier;例:Shirt
myShirt;變量類型是reference_to_ClassName(對(duì)Shirt的引用)步驟2——初始化
identifier=newClassName();
例:myShirt=newShirt();或者聲明和初始化同時(shí)進(jìn)行ClassNameidentifier=newClassName();例:ShirtmyShirt=newShirt();步驟3——賦值還未給對(duì)象變量賦值,如myShirt.price變量初始化為缺省值。要給對(duì)象變量賦值:聲明并初始化對(duì)象變量設(shè)定值時(shí)指定對(duì)象引用創(chuàng)建對(duì)象
基本數(shù)據(jù)類型的值:428802,’A’等對(duì)象引用的值:對(duì)對(duì)象的引用,指向?qū)ο笞兞康闹祷咀兞亢蛯?duì)象引用變量的值查看結(jié)果:Equivalence.java查看結(jié)果:BoxDemo.java查看結(jié)果:Assign.java
使用String類存儲(chǔ)一串非數(shù)值型字符。在JavaAPI中包含有String。形成String有兩種方式:使用或不使用new修飾符。將String類用作數(shù)據(jù)類型聲明
ClassName
identifier;例:String
myName;初始化和賦值
identifier=newClassName(“string_value”);例:myName=newString(“DavidSt.Hubbins”);或者在一行中完成兩個(gè)步驟:
StringmyName=newString(“DavidSt.Hubbins”);StringmyString=newString(“Thisisatest”);使用String和new修飾符聲明
ClassName
identifier;例:String
myName;初始化和賦值
identifier=string_value;例:myName=“DavidSt.Hubbins”;或者在一行中完成兩個(gè)步驟:
StringmyName=“DavidSt.Hubbins”;StringmyString=“Thisisatest”;System.out.println(myString);使用String但不用new修飾符類似于基本類型:字符常量Stringname=”NigelTufnel“;表達(dá)式:Stringname=”Nigel”+“Tufnel“;其它變量:StringhisName=”NigelTufnel“;StringmyName=hisName;方法調(diào)用“abCDef”.toUpperCase();Strings=“abCDef”;s.toUpperCase();可以賦給String的值方法包含程序要做的工作。所有的類都可以使用“全能”的main方法。main方法是JVM的入口點(diǎn)。main調(diào)用并協(xié)調(diào)程序的其余部分。使用main方法查看結(jié)果:Hello.java查看結(jié)果:CustomerInfo.java使用pringln添加回車換行;print則沒有。 System.out.print(“Carpediem”);System.out.println(“Seizetheday”); System.out.println();可以用空的顯示語句來顯示一個(gè)空行在一個(gè)語句中顯示多個(gè)內(nèi)容:文本用引號(hào)括起來;使用空格時(shí)將空格放在引號(hào)內(nèi)用+連接多個(gè)內(nèi)容(”Priceis:”+price)還可以顯示表達(dá)式結(jié)果(price*discount)使用System.out.println利用(Stringargs[])可以將值從命令行傳遞到main。
publicclassIntroductions{publicstaticvoidmain(Stringargs[]){System.out.println(“Mynameis”+ars[0]+”andIam”+args[1]);}}
命令行輸入:javaintroductionsFloyd29顯示:MynameisFloydandIam29使用main方法獲取命令行輸入查看結(jié)果:Introductions.javamain將所有參數(shù)都看作是String。使用Integer.parseInt可以將參數(shù)轉(zhuǎn)換成int
Integer.parseInt(variable_to_convert)例:Intgrade=Integer.parseInt(args[0]);將String參數(shù)轉(zhuǎn)換成整數(shù)查看結(jié)果:Introductions.java區(qū)分引用變量和變量如果數(shù)據(jù)類型是一個(gè)類的名字,就是引用變量String
是個(gè)類firstNumber,secondNumber是引用變量如果數(shù)據(jù)類型是一個(gè)基本數(shù)據(jù)類型,就是變量double
是一個(gè)基本數(shù)據(jù)類型number1,number2是變量StringfirstNumber;
StringsecondNumber;
doublenumber1;
doublenumber2;
寫類聲明來表示基于OOD的對(duì)象。類聲明中包含類名稱、變量、方法。聲明類查看結(jié)果:Person.java注釋語句//用于單行注釋。只對(duì)當(dāng)前行有效。/*…*/用于多行注釋。注釋從/*開始,到*/結(jié)束,且這種注釋不能互相嵌套。/**…*/是Java所特有的文檔注釋。它以/**開始,到*/結(jié)束。
繼承繼承概述有重復(fù)成員的類繼承:Manager和CSR繼承Employee繼承的定義一個(gè)類中定義一些公共成員(變量和方法),其他類可以擴(kuò)展該類而共享成員被擴(kuò)展的類是:超類或父類繼承了的類是:子類查看結(jié)果:Employee.java繼承:Employee和Customer繼承Person測試?yán)^承類一次只能繼承一個(gè)父類(單繼承)使用“是一個(gè)(isa)”短語驗(yàn)證繼承Employee、Manager和CSR示例中繼承是正確的一個(gè)Manager是一個(gè)Employee一個(gè)CSR是一個(gè)Employee測試?yán)^承錯(cuò)誤原因:不滿足“isa”短語正確原因:滿足“isa”短語查看結(jié)果:AddTest.javasupersuper用來引用當(dāng)前對(duì)象的父類(1)訪問父類被隱藏的成員變量,如:
super.variable;(2)調(diào)用父類中被重寫的方法,如:
super.Method([paramlist]);(3)調(diào)用父類的構(gòu)造函數(shù),如:
super([paramlist]);查看結(jié)果:OverTest.java包import語句格式:importpackage1[.package2…].(classname|*);從目錄classpath\package1\package2…中查找。
classname指明所要引入的類,例如:
importjava.awt.Button;*表明要從一個(gè)包中引入多個(gè)類,例如:
importjava.awt.*;Java編譯器為所有程序自動(dòng)引入包java.lang,因此不必用import語句引入它包含的所有類,但若需要使用其它包中的類,必須用import語句引入。也可以在使用類的地方指明包,這樣就不必用import語句引入該類了,例如下面兩種情況時(shí)等價(jià)的:
importjava.util.*;classmyDateextendsDate{ ……}或者
classmyDateextendsjava.util.Date{}
面向?qū)ο蟮腏ava程序封裝操作和屬性總稱為對(duì)象的成員對(duì)象成員可以public(公有的)或private(私有的)。大多數(shù)或全部變量都為私有。變量通過它們自己類的方法修改。其他類都只與另一個(gè)類中很少的幾部分接口。不影響接口的情況下可更改實(shí)現(xiàn)。如果一個(gè)變量或方法定義為公有的,則它是接口的一部分,而且其他類可以訪問它;如果一個(gè)變量或方法定義為私有的,則它是實(shí)現(xiàn)的一部分,只能類自己的成員訪問它,而其他類不能訪問它;實(shí)現(xiàn)封裝在類成員前設(shè)置public或privateprivateintmyInt;publicStringname;publicvoidgetName(){ returnname;}通過聲明類的訪問控制符可以使整個(gè)程序結(jié)構(gòu)清晰、嚴(yán)謹(jǐn),減少可能產(chǎn)生類間干擾和錯(cuò)誤。get和set方法當(dāng)變量是私有的時(shí),必須通過成員方法訪問。
get和set方法取值和存值查看結(jié)果:AccessTest.javamain方法設(shè)置對(duì)于要運(yùn)行的任何程序,所運(yùn)行文件中的類必須包含一個(gè)main方法如果沒有此方法,將出現(xiàn)如下消息:Inclassclass:voidmain(Stringargs[])isnotdefined如果從另一個(gè)使用了main方法的類中調(diào)用該類的組成部分,程序?qū)⒛苷_運(yùn)行
變量的作用域并不是所有的變量在整個(gè)程序中都能使用變量作用域指變量可在程序中使用的位置
name的作用域age的作用域查看結(jié)果:VariableLifeTime.java構(gòu)造器(構(gòu)造函數(shù))構(gòu)造器允許創(chuàng)建對(duì)象時(shí)指定對(duì)象的值多數(shù)課程中使用缺省構(gòu)造器構(gòu)造器的名稱與所屬類的名稱相同查看結(jié)果:BoxDemo6.java
構(gòu)造函數(shù)的作用是構(gòu)造并初始化對(duì)象。構(gòu)造函數(shù)的特點(diǎn)有:(1)構(gòu)造函數(shù)和類具有相同的名字(2)一個(gè)類可以有多個(gè)構(gòu)造函數(shù)(3)構(gòu)造函數(shù)可以有0個(gè)、1個(gè)或多個(gè)參數(shù)(4)構(gòu)造函數(shù)沒有返回值和返回類型(5)構(gòu)造函數(shù)總是和new運(yùn)算符一起被調(diào)用,在創(chuàng)建一個(gè)類的新對(duì)象的同時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用該類的構(gòu)造函數(shù)為新對(duì)象初始化。注意:在構(gòu)造方法里不用return語句返回一個(gè)值。如何才能使用構(gòu)造器缺省構(gòu)造器顯式創(chuàng)建的構(gòu)造器缺省構(gòu)造器若某類沒有構(gòu)造器,編譯器將插入一個(gè)缺省的構(gòu)造器。當(dāng)用new修飾符來實(shí)例化對(duì)象時(shí),new將自動(dòng)調(diào)用缺省構(gòu)造器。
Shirtshirt1=newShirt();編譯器將插入一個(gè)缺省構(gòu)造器,如下所示:
構(gòu)造器的作用所有的初始化代碼處在一個(gè)地方,這樣使得代碼更容易維護(hù)和閱讀。缺省值可以清除地知道。非常靈活可設(shè)置值,傳遞參數(shù)等示例:如果不指定姓名,可使用構(gòu)造器創(chuàng)建名為NewCustomer的Customer對(duì)象
查看結(jié)果:Test2.java聲明和使用構(gòu)造器查看結(jié)果:SimpleConstructor.java聲明和使用構(gòu)造器重載構(gòu)造器查看結(jié)果:Person1.java星期五上機(jī)實(shí)驗(yàn)6-1,6-2,6-3
面向?qū)ο蟮姆治雠c設(shè)計(jì)對(duì)象(object)我們可以把生活所在的真實(shí)世界(RealWorld)當(dāng)作是由許多大小不同的對(duì)象所組成的。對(duì)象可以是有生命的個(gè)體,比如一個(gè)人或一只鳥。對(duì)象
對(duì)象也可以是無生命的個(gè)體,比如一輛汽車或一臺(tái)計(jì)算機(jī)。對(duì)象也可以是一件抽象的概念,如天氣的變化或鼠標(biāo)所產(chǎn)生的事件。對(duì)象的特征
對(duì)象有兩個(gè)特征:屬性和行為例如: 人有他的身高或體重作屬性,有他的行為——如唱歌、打球、騎摩托車、開汽車。 狗有它的顏色作屬性,有它的行為,如吠叫或跳躍。
電視機(jī)有它的外形、尺寸和顏色,有它的行為,如開、關(guān),接收信號(hào),轉(zhuǎn)換頻道,調(diào)節(jié)音量。換檔開大燈煞車開冷氣顏色排檔數(shù)排氣量輪胎型號(hào)汽車對(duì)象
以汽車為例,我們可定義其屬性與方法如:
本教程
中使用下面的示例來應(yīng)用面向?qū)ο蟮姆治雠c設(shè)計(jì)原理。公司名稱:DirectClothing公司按月生成目錄客戶可以打電話、使用郵寄和傳真必須每個(gè)檢查訂購項(xiàng)的存貨水平DirectClothing接受支票和信用卡案例研究
系統(tǒng)建模技術(shù)嘗試描述一個(gè)系統(tǒng)在現(xiàn)實(shí)生活中的情形定義系統(tǒng)的:對(duì)象——讓對(duì)象工作的問題對(duì)象屬性——對(duì)象的特征對(duì)象操作——所能執(zhí)行的任務(wù)面向?qū)ο蟾攀?/p>
對(duì)象:
找出問題描述領(lǐng)域中的主要名詞對(duì)象可能是:簡單的或復(fù)雜的(襯衣,銀行)真實(shí)的或概念的(銀行出納員,帳戶)對(duì)象有:屬性(顏色,尺寸)操作(下訂單,取消訂單)確定對(duì)象
屬性:是對(duì)象的特征可以是數(shù)據(jù)或?qū)ο髮?duì)Order對(duì)象來說,可能包括orderID和items操作:是對(duì)象執(zhí)行的動(dòng)作可以是對(duì)象做出的或施加給對(duì)象的動(dòng)作對(duì)Order對(duì)象來說,可能是place和cancel確定對(duì)象屬性和操作
建模對(duì)象
屬性類型
與問題域的相關(guān)性對(duì)象是否在問題陳述的界限之內(nèi)?系統(tǒng)是否必須有此對(duì)象才能完成任務(wù)?在用戶與系統(tǒng)的交互中是否必須有此對(duì)象?獨(dú)立存在性屬性和操作測試對(duì)象
分析問題域?qū)嶒?yàn)?zāi)繕?biāo):找出問題域中的對(duì)象,及其屬性和操作步驟:1、列出有關(guān)的對(duì)象(名詞)
2、列出這些對(duì)象的屬性和操作
3、為對(duì)象設(shè)置合理的屬性和操作
4、應(yīng)用上述的3條評(píng)判規(guī)則檢驗(yàn)對(duì) 象的有效性練習(xí) Anobject-orienteddesignforaJavaapplicationthattrackssoccerscores.Theprogramshouldtrack:ThenumberofgoalseachplayerscoresineachgameWhatteamstheplayersplayforandwhatseasonthegameswereplayin
類(class)在真實(shí)世界里,有許多同“種類”的對(duì)象。而這些同“種類”的對(duì)象可被歸類為一個(gè)“類”。例如我們可將世界上所有的汽車歸類為汽車類,所有的動(dòng)物歸為動(dòng)物類。動(dòng)物類汽車類什么是類?是同種對(duì)象的集合與抽象
類與對(duì)象的關(guān)系 類
對(duì)象抽象定義實(shí)例
電視機(jī)
一臺(tái)長虹電視機(jī)學(xué)生
學(xué)生王強(qiáng)
類與對(duì)象如果將對(duì)象比作汽車,那么類就是汽車的設(shè)計(jì)圖紙。所以面向?qū)ο蟪绦蛟O(shè)計(jì)的重點(diǎn)是類的設(shè)計(jì),而不是對(duì)象的設(shè)計(jì)。
實(shí)例(instance)汽車類有些共同的狀態(tài)(汽缸排氣量,排檔數(shù),顏色,輪胎數(shù)……)和行為(換檔,開燈,開冷氣……),但每一臺(tái)汽車個(gè)別的狀態(tài)及方法可不同于且獨(dú)立于其他汽車。你的汽車只是這世界中許多汽車中的一個(gè)。我們就稱你的汽車對(duì)象是汽車類中的一個(gè)實(shí)例(instance)。汽車類(class)實(shí)例(instance)NEW你的車OO的真正意義
OO的真正意義是使得軟件開發(fā)接近人類的正常思維,將許多原來由人完成的工作交給機(jī)器去完成:
-機(jī)器語言 匯編語言 高級(jí)語言
-面向過程 面向模塊 面向?qū)ο?/p>
OO包括一套比較完整的方法,程序設(shè)計(jì)只是其中一個(gè)環(huán)節(jié)。
-面向?qū)ο蟮姆治?/p>
-面向?qū)ο蟮脑O(shè)計(jì)
-面向?qū)ο蟮某绦蛟O(shè)計(jì)
-代碼重用面向?qū)ο笈c面向過程公共數(shù)據(jù)函數(shù)函數(shù)函數(shù)函數(shù)算法+數(shù)據(jù)結(jié)構(gòu)屬性數(shù)據(jù)方法方法屬性數(shù)據(jù)方法方法過程式程序設(shè)計(jì)OOP程序設(shè)計(jì)對(duì)象+消息消息面向過程面向?qū)ο驩OP三大特性:封裝、繼承與多態(tài)
封裝(encapsulation)
封裝是一種信息隱藏技術(shù)。是指利用抽象數(shù)據(jù)類型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,數(shù)據(jù)被保護(hù)在抽象數(shù)據(jù)類型的內(nèi)部,系統(tǒng)的其他部分只有通過在數(shù)據(jù)外面的被授權(quán)的操作才能夠與這個(gè)抽象數(shù)據(jù)類型進(jìn)行交互。在面向?qū)ο蟮木幊讨?,用類來封裝相關(guān)的數(shù)據(jù)和方法,保證了數(shù)據(jù)的安全和系統(tǒng)的嚴(yán)密性。
倉庫屬性操作價(jià)格表,物品,賬單,電話,等等提供物品,賬單等等考慮一個(gè)倉庫,外部只能通過管理員獲取物品。抽象封裝的優(yōu)點(diǎn)隱藏類的實(shí)現(xiàn)細(xì)節(jié),實(shí)現(xiàn)了信息的隱藏及安全性;提高了程序的模塊化,且易于維護(hù);具體實(shí)現(xiàn)是編寫該類的人控制的,讓使用者只能通過事先定制好的方法來訪問數(shù)據(jù),可以方便地加入控制邏輯,限制對(duì)屬性的不合理操作繼承(inheritance)
OOP是以類來定義一個(gè)對(duì)象的。當(dāng)一個(gè)類擁有另一個(gè)類的所有數(shù)據(jù)和方法時(shí),就稱這兩個(gè)類之間具有繼承關(guān)系?,F(xiàn)以下圖來說明:汽車類轎車巴士計(jì)程車轎車、出租車、巴士都是汽車,故屬汽車類,我們稱其繼承(inherit)汽車類,而轎車、出租車、巴士也都可自成一種類。這樣汽車類就稱為超類(superclass)或父類,而轎車、出租車、巴士就稱作子類。繼承交通工具車船飛機(jī)汽車火車父類/超類(superclass)子類(subclass)Java僅支持單繼承優(yōu)點(diǎn): 使程序結(jié)構(gòu)清晰,減少了編碼和維護(hù)的工作量,子類可以使用父類所提供的方法,實(shí)現(xiàn)了代碼的復(fù)用。多態(tài)用同一個(gè)名字調(diào)用實(shí)現(xiàn)不同操作的方法方式1:父類和子類之間的同名方法(覆蓋:子類方法的名稱和參數(shù)與父類方法的名稱和參數(shù)相同,在執(zhí)行過程中,子類的方法將覆蓋父類的方法)方式2:同一類中參數(shù)不同的同名方法(重載:不是子類對(duì)父類同名方法的重新定義,而是類對(duì)自身已有的同名方法的重新定義。重載方法的參數(shù)必須不同,或者是參數(shù)個(gè)數(shù)不同,或者是參數(shù)類型不同)使用方便,且降低了維護(hù)和編程量
覆蓋
classA { publicintx,y; A(inta,intb) { x=a; y=b; } publicvoiddisplay() { intz; z=x+y; System.out.println(“add=”+z); } } classBextendsA { B(inta,intb) { super(a,b); } publicvoiddisplay() { intz; z=x*y; System.out.println(“product=”+z); } }classABextendsB { AB(intx,inty) { super(x,y); } publicstaticvoidmain(String[]args) { Anum1=newA(4,10); Bnum2=newB(4,10); ABnum3=newAB(4,10); num1.display(); num2.display(); num3.display();
} }重載classMethodOverloading { voidreceive(inti) { System.out.println(“一個(gè)整數(shù)”); System.out.println(“i=”+i); } voidreceive(intx,inty) { System.out.println(“兩個(gè)整數(shù)”); System.out.println(“x=”+x+”y=”+y); } voidreceive(doubled) { System.out.println(“一個(gè)浮點(diǎn)數(shù)”); System.out.println(“d=”+d); } voidreceive(Strings) { System.out.println(“一個(gè)字符串”); System.out.println(“s=”+s); } }
publicclassMethodOverloadingTest { publicstaticvoidmain(String[]args) { MethodOverloadingMO=newMethodOverloading(); mo.receive(1); mo.receive(2,3); mo.receive(12.56); mo.receive(“Hello”);
} }面向?qū)ο蟮娜筇卣?.封裝:將數(shù)據(jù)成員(DataMember)和屬于此數(shù)據(jù)的操作方法(OperatingMethod),放在同一個(gè)實(shí)體(Entity)或?qū)ο笾小?.繼承:父類定義(Define)一些通用的屬性與行為,其孩子繼續(xù)使用。3.多態(tài):在同一個(gè)類中可有許多同名的方法,但其參數(shù)數(shù)量與數(shù)據(jù)類型不同,而且操作過程與返回值也可能會(huì)不同。(1)模塊化
(2)信息隱藏
(1)實(shí)現(xiàn)代碼復(fù)用
(2)簡化設(shè)計(jì)過程解決其他語言中不能重名的問題
接口Interface這個(gè)英文字的意思是一種裝置或系統(tǒng),使得不同性質(zhì)的實(shí)體(entities)能夠交互地運(yùn)作。比如,計(jì)算機(jī)的操作系統(tǒng)(operatingsystem),可把它稱作是一種“人機(jī)接口”??墒沟檬褂谜撸ㄈ耍┡c計(jì)算機(jī)(機(jī)),通過鼠標(biāo)或鍵盤等裝置,而作為一種溝通接口,來與計(jì)算機(jī)做溝通,以指揮計(jì)算機(jī)做事。另外像RS232串行端口,常作為輸入/輸出設(shè)備傳輸接口,是計(jì)算機(jī)與輸入/輸出設(shè)備間的接口。而在Java里,設(shè)計(jì)接口的用意,是可使得類不必受限于單一繼承的關(guān)系,而可靈活地同時(shí)繼承一些共有的特性,達(dá)到多重繼承的目的,而免去C++中多重繼承的復(fù)雜關(guān)系所產(chǎn)生的bug。像下圖中的出租車,可繼承“營業(yè)車”、“小車”、“汽油車”等類,卻不一定非要與同樣繼承“自用車”、“小車”,“汽油車”的轎車有上下繼承的關(guān)系。汽車類自用車營業(yè)車小車大車汽油車柴油車轎車出租車巴士上類接口次類改變程序的一部分不影響其他部分。程序的其他部分與類的接口(“外部”)進(jìn)行交互更改類的實(shí)現(xiàn)(“內(nèi)部”)而不更改接口封裝的汽車:實(shí)現(xiàn)細(xì)節(jié)隱藏在車蓋下;駕駛員不必知道汽車是怎樣工作的汽車的部分零件改變或更換,駕駛員不必改變對(duì)汽車的駕駛接口和實(shí)現(xiàn)
接口的定義
接口可以理解為一個(gè)特殊的類,只有常量和抽象方法組成的特殊類。
interfaceCollection { intMAX_NUM=100; voidadd(inta); voiddelete(intb); intfind(intc); intcurrentCount(); }以前編寫的操作可以在其他工程中再次使用,可提高開發(fā)效率,縮短開發(fā)周期復(fù)用
面向?qū)ο筌浖_發(fā)過程(軟件生命周期)1、搜集和分析要求2、設(shè)計(jì)系統(tǒng)3、為系統(tǒng)編寫代碼4、測試系統(tǒng)的所有方面5、讓客戶和用戶測試系統(tǒng)6、維護(hù)系統(tǒng)
數(shù)組思考:為什么需要使用數(shù)組?示例:創(chuàng)建從1-10號(hào)同學(xué)的編號(hào)問題:創(chuàng)建同一個(gè)類型的多個(gè)變量缺點(diǎn):難于管理方法笨拙重復(fù)工作每個(gè)變量需要唯一標(biāo)識(shí)符解決方案:數(shù)組根據(jù)需要可以存儲(chǔ)許多值在一個(gè)數(shù)組中。數(shù)組可以是基本數(shù)據(jù)類型或引用類型。
char[]status; //chararrayint[]numbers; //intarrayString[]names; //StringarrayShirt[]shirts; //Shirtarray數(shù)組的每個(gè)部分稱為一個(gè)元素。
numbers[6]; //第7個(gè)元素
numbers[10]; //第11個(gè)元素?cái)?shù)組和main方法在命令行中,main方法中使用參數(shù)數(shù)組
publicstaticvoidmain(Stringargs[])
args[0] args[1]…… args[10]數(shù)組創(chuàng)建基本類型數(shù)組基本數(shù)據(jù)類型數(shù)組或引用類型數(shù)組都是對(duì)象三個(gè)步驟:
1、聲明
2、實(shí)例化
3、初始化
1、聲明基本數(shù)據(jù)類型數(shù)組int num[];
double total[];
charstatus[];
int[]num;
double[] total;
char[] status;
注:數(shù)組大小聲明后不能再被改變
。
2、實(shí)例化基本數(shù)據(jù)類型數(shù)組聲明和實(shí)例化基本數(shù)據(jù)類型數(shù)組
int[]x=newint[100];
double[]total=newdouble[1000];
char[] status=newchar[20];3、初始化基本數(shù)據(jù)類型數(shù)組數(shù)組的初始化方式有兩種:一種方式是在聲明和實(shí)例子化數(shù)組之后給數(shù)組的每個(gè)元素賦初值。一次初始化一個(gè)元素。 例如:
int[]x=newint[100]; x[0]=1; x[1]=2; x[2]=3; x[3]=4; x[4]=5;
…x[99]=99;另一種方式是在聲明數(shù)組的同時(shí)進(jìn)行初始化。 例如:int[]a={1,2,3,4,5};上述語句聲明并創(chuàng)建了數(shù)組a,并且為數(shù)組每個(gè)元素賦值即初始化,使a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=5。由上可見,數(shù)組初始化可由花括號(hào)“{}”括起的一串由逗號(hào)分隔的表達(dá)式組成,逗號(hào)(,)分隔數(shù)組元素中的值。 在語句中不必明確指明數(shù)組的長度,因?yàn)樗呀?jīng)體現(xiàn)在所給出的數(shù)據(jù)元素個(gè)數(shù)之中了,系統(tǒng)會(huì)自動(dòng)根據(jù)所給的元素個(gè)數(shù)為數(shù)組分配一定的內(nèi)存空間。如上例中數(shù)組a的長度自動(dòng)設(shè)置為5。注:
“{}”里的每一個(gè)數(shù)組元素的數(shù)據(jù)類型必須是相同的。int[]a={1,2,3,4,5};//正確int[]a;a={1,2,3,4,5};//錯(cuò)誤創(chuàng)建引用類型數(shù)組三個(gè)步驟:
1、聲明
2、實(shí)例化
3、初始化
1、聲明引用類型數(shù)組Stringnames[];
Shirtshirts[];
String[]names;
Shirt[] shirts;
2、實(shí)例化引用類型數(shù)組names=newString[7];
shirts=newShirt[5];
或String[]names=newString[7];
Shirt[]shirts=newShirt[5];
3、初始化引用類型數(shù)組方式一:
Shirt[0]=newShirt();
Shirt[1]=newShirt(“Nike”,”L”);
Shirt[2]=newShirt(“Adidas”,”XL”);Shirt[]shirts={newShirt(),
newShirt(“Nike”,”L”),
newShirt(“Adidas”,”XL”)};方式二:訪問數(shù)組內(nèi)的變量數(shù)組中的每個(gè)元素都可以通過一個(gè)表示該元素在數(shù)組中位置的索引來訪問。注:數(shù)組中第1個(gè)元素索引為0,依次類推示例:
status[0]=‘3’;
names[1]=“WangJian”; ages[1]=19; price[2]=29.99F; inti=ages[1]; //將數(shù)組元素賦給另一個(gè)變量int
list[]=newint[3];它有3個(gè)元素,分別為:list[0],list[1]和list[2]。(注意:不存在list[3])數(shù)組在內(nèi)存中的存儲(chǔ)方式所有數(shù)組都是對(duì)象定義數(shù)組就是聲明引用變量基本數(shù)據(jù)類型數(shù)組在內(nèi)存中的存儲(chǔ)方式引用類型數(shù)組在內(nèi)存中的存儲(chǔ)方式數(shù)組邊界數(shù)組是一種對(duì)象,對(duì)象有自己的狀態(tài)所以數(shù)組也有它自己的長度,數(shù)組的長度也叫數(shù)組邊界
month[12]數(shù)組的邊界是從month[0]——month[11]數(shù)組中元素的數(shù)目作為數(shù)組對(duì)象的一部分存儲(chǔ)試圖訪問實(shí)際不存在的數(shù)組元素將引起錯(cuò)誤確定數(shù)組的長度可以在運(yùn)行時(shí)使用length成員變量來確定數(shù)組的長度
float[]salesAmounts=newfloat[10];遍歷整個(gè)數(shù)組
float[]salesAmounts=newfloat[10]; for(inti=0;i<salesAmounts.length;i++) {
循環(huán)體;
}查看結(jié)果:Arrays.java使用循環(huán)設(shè)置數(shù)組的值查看結(jié)果:CreatStreets.java思考:
1、查找一個(gè)數(shù)組中特定的某個(gè)數(shù)值
2、實(shí)現(xiàn)對(duì)一組數(shù)進(jìn)行排序,從小到大的顯示。二維數(shù)組二維數(shù)組的創(chuàng)建過程和使用方法與一維數(shù)組相同。二維數(shù)組聲明的格式為: 類型
[][]數(shù)組名;例如: int[][]intArray;與一維數(shù)組一樣,需要用new關(guān)鍵字來創(chuàng)建數(shù)組。示例:
int[][]repSales=newint[5][12];二維數(shù)組
數(shù)組也可以用“數(shù)組的數(shù)組”方式來產(chǎn)生二維數(shù)組。例如:int[
][
]number=newint[3][3];number[0][0]=1;number[0][1]=2;number[0][2]=3;number[1][0]=4;number[1][1]=5;number[1][2]=6;number[2][0]=7;number[2][1]=8;number[2][2]=9;
若要簡化上面的設(shè)置,可用一組嵌套式大括號(hào)來完成。Int[][]number={{1,2,3},{4,5,6},{7,8,9}};注意:在使用運(yùn)算符new來分配內(nèi)存時(shí),對(duì)于多維數(shù)組至少要給出最高維的大小。例如:如果在程序中出現(xiàn)inta2[][]=newint[][];編譯器將出現(xiàn)錯(cuò)誤:例:遍歷二維數(shù)組fiveYears的兩個(gè)維(一個(gè)維12表示12個(gè)月,一個(gè)維5表示5年)的值
循環(huán)結(jié)構(gòu)循環(huán)循環(huán)語句的作用是反復(fù)執(zhí)行同一塊代碼直到滿足結(jié)束條件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江省杭州求是高級(jí)中學(xué)2025屆高三上物理期中檢測模擬試題含解析
- 2025屆四川省資陽市物理高一第一學(xué)期期末考試模擬試題含解析
- 廣西欽州市浦北縣2025屆高三物理第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 2025屆西藏自治區(qū)昌都市第三高級(jí)中學(xué)物理高一上期中預(yù)測試題含解析
- 2025屆貴州六盤水育才中學(xué)高一物理第一學(xué)期期中達(dá)標(biāo)測試試題含解析
- 山西省陽泉市(2024年-2025年小學(xué)五年級(jí)語文)統(tǒng)編版專題練習(xí)(上學(xué)期)試卷及答案
- 情境寫作講解課件
- 急性闌尾炎超聲診斷護(hù)理課件
- 2024年藝術(shù)吊頂采購安裝合同范本
- 2024年一樓工廠出售合同范本
- 2023-2024學(xué)年山東省濟(jì)南市歷城區(qū)九年級(jí)(上)期中英語試卷
- 2024年全國注冊(cè)消防工程師之消防技術(shù)綜合能力考試歷年考試題(詳細(xì)參考解析)
- IWAY6.0實(shí)施計(jì)劃完整
- 《慈母情深》教學(xué)設(shè)計(jì)與指導(dǎo)課件(第二課時(shí))
- 消防隊(duì)消防員勞動(dòng)合同
- 法律顧問服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 人教版八年級(jí)上冊(cè)數(shù)學(xué)期中考試壓軸題專練
- 中國環(huán)衛(wèi)機(jī)械行業(yè)市場發(fā)展態(tài)勢及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 當(dāng)代社會(huì)政策分析 課件 第九章 婦女社會(huì)政策
- 《基本政治制度》名師教案
- 2024年網(wǎng)格員考試題庫1套
評(píng)論
0/150
提交評(píng)論