java內(nèi)容yang_第1頁
java內(nèi)容yang_第2頁
java內(nèi)容yang_第3頁
java內(nèi)容yang_第4頁
java內(nèi)容yang_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、課 題:第1章 Java語言概述 授課時(shí)間:第1次課初學(xué)Java注意的問題:1、對一個(gè)簡單的例子也要有耐心去琢磨、調(diào)試、改動(dòng)。 2、在學(xué)習(xí)的過程中一定要?jiǎng)邮肿?、寫代碼,而不是抱一本書看看就行。3、很多東西和體會(huì)必須自己動(dòng)手才能真正屬于自己。4、不但要掌握這門語言語法本身,更重要的是學(xué)會(huì)編程的思想,這是所有程序設(shè)計(jì)語言的基礎(chǔ)。一、 Java語言的誕生和發(fā)展Java語言誕生于20世紀(jì)90年代初,它的基礎(chǔ)是C語言和C+語言。隨著Internet的普及和迅猛發(fā)展,以及web技術(shù)的不斷滲透,使得java語言在現(xiàn)代社會(huì)的經(jīng)濟(jì)發(fā)展和科學(xué)研究中占據(jù)越來越重要的地位。Java三大平臺(tái):Java ME(Java

2、Micro Edition),以前的版本稱為J2ME,是Java平臺(tái)的精簡版。主要應(yīng)用于嵌入是系統(tǒng)開發(fā),如手機(jī)和PDA的編程。Java SE(Java Standard Edition),以前的版本稱為J2SE,是Java平臺(tái)的標(biāo)準(zhǔn)版。主要用于桌面應(yīng)用軟件的編程。Java EE(Java Enterprise Edition),企業(yè)級(jí)應(yīng)用,以前的版本稱為J2EE,是Java平臺(tái)的企業(yè)版。主要用于分布式的網(wǎng)絡(luò)程序的開發(fā),如電子商務(wù)網(wǎng)站和ERP系統(tǒng),后期課程信息管理系統(tǒng)將會(huì)詳細(xì)講解JavaEE。二、Java語言的特點(diǎn)平臺(tái)無關(guān)性:(“Write once,run anywhere” ,Java虛擬機(jī)

3、),目標(biāo)代碼“沒有因機(jī)器的不同而不同” 或“由編譯器決定”。面向?qū)ο螅悍艞壛硕嘀乩^承、友元類和運(yùn)算符重載,采用“單重繼承+接口”的方式代替多重繼承,提供語言級(jí)的內(nèi)存自動(dòng)管理和異常處理方式。支持網(wǎng)絡(luò)編程:Java的小程序(Applet)是動(dòng)態(tài)、安全、跨平臺(tái)的網(wǎng)絡(luò)應(yīng)用程序。安全性強(qiáng):Java平臺(tái)的安全性(沙箱機(jī)制),Java虛擬機(jī)的安全機(jī)制。不支持指針,這樣避免了對內(nèi)存的非法訪問;自動(dòng)單元回收功能防止內(nèi)存丟失等動(dòng)態(tài)內(nèi)存分配導(dǎo)致的問題;Java解釋器運(yùn)行時(shí)實(shí)施檢查,可發(fā)現(xiàn)數(shù)組和字符串訪問的越界;提供了異常處理機(jī)制。支持多線程:線程是比進(jìn)程更小的可并發(fā)執(zhí)行的單位。C+沒有內(nèi)置的多線程機(jī)制,需調(diào)用操作系

4、統(tǒng)的多線程功能來進(jìn)行多線程序設(shè)計(jì)。Java卻提供了多線程支持。Java語法簡單易學(xué):Java放棄了C+語言的全程變量、goto語句、宏定義、全局函數(shù)以及結(jié)構(gòu)、聯(lián)合和指針數(shù)據(jù)類型。 三、Java虛擬機(jī)Java程序的運(yùn)行過程如圖所示:字節(jié)碼是Java虛擬機(jī)的指令組。字節(jié)碼最大的好處是可跨平臺(tái)運(yùn)行,即Java的字節(jié)碼可以編寫一次,到處運(yùn)行。 任何一種可以運(yùn)行Java字節(jié)碼的軟件均可看成是Java的“虛擬機(jī)” ,可以把Java的字節(jié)碼看成是JVM上所運(yùn)行的機(jī)器碼(machine code) 。4、 Java程序的種類和結(jié)構(gòu)使用Java語言可以編寫兩種類型的程序:Application應(yīng)用程序和Appl

5、et小程序。這兩種程序開發(fā)原理是相同的,但是在運(yùn)行環(huán)境和計(jì)算結(jié)構(gòu)上有著顯著的不同。1、Application程序舉例(代碼在eclipse中運(yùn)行并查看運(yùn)行結(jié)果)import java.io.*; /導(dǎo)入java.io類庫中的所有類public class App1_1 /定義類:App1_1 public static void main(String args) char c= ' ' System.out.print("請輸入一個(gè)字符:"); try c=(char)System.in.read(); catch(IOException s) Syste

6、m.out.println("您輸入的字符是:"+c); 注意:Java嚴(yán)格區(qū)分大小寫。一個(gè)程序中可以有多個(gè)類,但只能有一個(gè)類是主類。在Java應(yīng)用程序中,這個(gè)主類是指包含main()方法的類。Java小程序里,這個(gè)主類是一個(gè)繼承自系統(tǒng)類Applet的子類。應(yīng)用程序的主類不一定要求是public類,但小程序的主類一定要求是public類。主類是Java程序執(zhí)行的入口點(diǎn)。同一個(gè)Java程序中定義的若干類之間沒有嚴(yán)格的邏輯關(guān)系要求,但它們通常是在一起協(xié)同工作的,每一個(gè)類都可能需要使用其他類中定義的靜態(tài)屬性或方法。main()方法:方法頭必須按照下面的格式書寫:public st

7、atic void main(String args ) 所有的Java Application程序執(zhí)行的入口點(diǎn);Java源代碼文件中可以定義多個(gè)類,但是其中只能有一個(gè)類含有main方法;main方法是程序執(zhí)行的入口點(diǎn),而一個(gè)Java Application程序只能有一個(gè)入口點(diǎn);含有main方法的類稱為主類,按慣例該類名就是Java源文件名。2、 Applet小程序舉例 /App2_2.java import java.awt.*; import javax.swing.JApplet;public class App2_2 extends JAppletpublic void paint(G

8、raphics g) g.drawString(“Hello Java!”,50,50);<html><applet code=”App2_2.class”Width=”200”Heigth=”120”Alt=”很抱歉,您的瀏覽器不支持Java Applet”、</applet></html>Applet是嵌入在HTML文檔中的Java程序,必須搭配瀏覽器來運(yùn)行,由Web瀏覽器內(nèi)帶的Java解釋器來解釋運(yùn)行,因此稱為小程序,也有人稱為網(wǎng)頁向?qū)?。課 題:第2章 Java語言開發(fā)環(huán)境 授課時(shí)間:第2次課一、Java開發(fā)工具1、輸入網(wǎng)址下載并安裝,本門課可以

9、安裝JDK1.6,1.7或1.8版本,我們在sun公司網(wǎng)站上下載JDK,選最新版本。JDK下載完成可以用壓縮工具打開并查看目錄結(jié)構(gòu),java:基本編程工具JDK;bin:包含編譯器、解釋器等可執(zhí)行文件;include:該目錄存放與C相關(guān)的頭文件;jre:存放與java 運(yùn)行環(huán)境相關(guān)的文件;Java Runtime Environment;lib :存放程序庫,即java類庫。2、 JDK安裝過程傻瓜式安裝,安裝成功后會(huì)有兩個(gè)文件夾jdk和jre,打開jdk文件夾如下圖:Javac.exe:Java編譯器,用于將java程序編譯成字節(jié)碼。java.exe:Java解釋器,執(zhí)行已轉(zhuǎn)換成字節(jié)碼的ja

10、va程序。jdb.exe:Java調(diào)試器,用來調(diào)試java程序。javadoc.exe:根據(jù)Java源代碼和注釋說明語句生成Java程序HTML文件的幫助文檔。appletviwer.exe:Java解釋器(小程序?yàn)g覽器),用來解釋已經(jīng)轉(zhuǎn)換成字節(jié)碼的java小程序(applet)。jar.exe: 創(chuàng)建擴(kuò)展名為.jar(Java Archive)的壓縮文件,與zip壓縮文件格式相同。3、JDK系統(tǒng)環(huán)境設(shè)置JDK安裝完成之后需要配置環(huán)境變量才能正常開發(fā)Java代碼。在桌面上右擊“計(jì)算機(jī)”或“我的電腦”圖標(biāo),在彈出的快捷菜單中選擇“屬性”命令,在彈出窗口的左側(cè)窗格中點(diǎn)擊“系統(tǒng)保護(hù)”選項(xiàng),彈出“系統(tǒng)

11、屬性”對話框,在該對話框中選擇“高級(jí)”選項(xiàng)卡,如下圖所示。在“高級(jí)”選項(xiàng)卡中點(diǎn)擊“環(huán)境變量”按鈕后,彈出如下圖所示的“環(huán)境變量”對話框。在系統(tǒng)變量中新建JAVA_HOME 和CLASSPATH 變量名:JAVA_HOME 變量值:C:Program FilesJavajdk1.8.0(根據(jù)實(shí)際安裝路徑來填寫,比如:D:Program FilesJavajdk1.8.0_25)變量名:CLASSPATH變量值:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;變量名:Path (將JDK的安裝路徑添加到系統(tǒng)環(huán)境變量)變量值:%JAVA_HOME%bin

12、; %JAVA_HOME%jrebin;關(guān)于path和classpath的含義:path變量的含義就是讓系統(tǒng)在任何路徑下都可以識(shí)別java,javac命令 。classpath變量的含義是告訴jvm要使用或執(zhí)行的class放在什么路徑上,便于JVM加載class文件,.;表示當(dāng)前路徑。tools.jar和dt.jar為類庫路徑。如果不用Swing里面的東西,可以不加dt.jar。 tools.jar里面是最基本的工具類,比如javac,不加是無法做開發(fā)的。 二、 JDK的使用1、編寫的源程序。public class HelloWorld public static void main (St

13、ring args) System.out.println("HelloWorld!"); 2、 編譯與運(yùn)行程序課 題:第3章 Java語言基礎(chǔ)(3.1-3.6) 授課時(shí)間:第3次課1、 數(shù)據(jù)類型1、標(biāo)識(shí)符和保留字(1)標(biāo)識(shí)符Java語言中,標(biāo)識(shí)符是以字母,下劃線(_),美元符($)開始的一個(gè)字符序列,后面可以跟字母,下劃線,美元符,數(shù)字。例如,identifier,userName,User_Name,_sys_val, $change為合法的標(biāo)識(shí)符,而2mail room#,class 為非法的標(biāo)識(shí)符。(2)保留字具有專門的意義和用途,不能當(dāng)作一般的標(biāo)識(shí)符使用,這些標(biāo)識(shí)

14、符稱為保留字(reserved word),也稱為關(guān)鍵字(如下表),java語言中的保留字均用小寫字母表示。abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseextendsFALSEfinalfinallyfloatforgotoifimplementsimporttrueintinterfacelongsynchronizednullnewpackageprivateprotectedpublicreturnshortstaticstrictfpsuperswitchnativeth

15、isvolatilethrowstransientinstanceoftryvoidwhile2、數(shù)據(jù)類型概述(1)java中的數(shù)據(jù)類型劃分java語言的數(shù)據(jù)類型有簡單類型和復(fù)合類型:簡單數(shù)據(jù)類型包括:整數(shù)類型(Integer):byte, short, int, long浮點(diǎn)類型(Floating):float,double字符類型(Textual):char布爾類型(Logical):boolean復(fù)合數(shù)據(jù)類型包括:class interface 數(shù)組(2)常量和變量常量:用保留字final來實(shí)現(xiàn) 如:final int NUM=100;變量:是java 程序中的基本存儲(chǔ)單元,它的定義包括

16、變量名、變量類型和作用域幾個(gè)部分。其定義格式如下:如:int count; char c='a'變量的作用域指明可訪問該變量的一段代碼,聲明一個(gè)變量的同時(shí)也就指明了變量的作用域。按作用域來分,變量可以有下面幾種:局部變量、類變量、方法參數(shù)和例外處理參數(shù)。在一個(gè)確定的域中,變量名應(yīng)該是唯一的。局部變量在方法或方法的一個(gè)塊代碼中聲明,它的作用域?yàn)樗诘拇a塊(整個(gè)方法或方法中的某塊代碼)。類變量在類中聲明,而不是在類的某個(gè)方法中聲明,它的作用域是整個(gè)類。方法參數(shù)傳遞給方法,它的作用域就是這個(gè)方法。例外處理參數(shù)傳遞給例外處理代碼,它的作用域就是例外處理部分。3、簡單數(shù)據(jù)類型(1)

17、布爾類型-boolean布爾型數(shù)據(jù)只有兩個(gè)值true和false,且它們不對應(yīng)于任何整數(shù)值。布爾型變量的定義格式如下:如:boolean b=true; (2)字符類型-char字符常量:字符常量是用單引號(hào)括起來的一個(gè)字符,如'a','A'字符型變量:類型為char,它在機(jī)器中占16位,其范圍為065535。字符型變量的定義如:char c='a' /指定變量c為char型,且賦初值為'a'(3)整型數(shù)據(jù) 整型常量: 十進(jìn)制整數(shù) 如123,456,0 八進(jìn)制整數(shù) 以0開頭,如0123表示十進(jìn)制數(shù)83,011表示十進(jìn)制數(shù)9。 十六進(jìn)

18、制整數(shù) 以0x或0X開頭,如0x123表示十進(jìn)制數(shù)291,0X12表示十進(jìn)制數(shù)18。整型變量:(4)浮點(diǎn)型(實(shí)型)數(shù)據(jù)實(shí)型常量: 十進(jìn)制數(shù)形式 由數(shù)字和小數(shù)點(diǎn)組成,且必須有小數(shù)點(diǎn),如0.123, 1.23, 123.0 科學(xué)計(jì)數(shù)法形式 如:123e3或123E3,其中e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。 float型的值,必須在數(shù)字后加f或F,如1.23f。數(shù)據(jù)類型使用綜合舉例: public class UseVariable public static void main(String args) boolean b = true; short si = 128; int

19、i = -99; long l = 123456789L; char ch = J; float f = 3.1415925F; double d = -1.04E-5; String s = 你好!; System.out.println(布爾型變量 b= + b); System.out.println(短整型變量 si= + si); System.out.println(整型變量i= + i); System.out.println(長整型變量l= + l); System.out.println(字符型變量ch= + ch); System.out.println(浮點(diǎn)型變量f= +

20、 f); System.out.println(雙精度型變量d= + d); System.out.println(字符型對象s= + s); 二、數(shù)據(jù)類型轉(zhuǎn)換1、不同類型數(shù)據(jù)間的優(yōu)先關(guān)系如下:低->高byte,short,char-> int -> long -> float -> double2、自動(dòng)類型轉(zhuǎn)換規(guī)則整型,實(shí)型,字符型數(shù)據(jù)可以混合運(yùn)算。運(yùn)算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型,然后進(jìn)行運(yùn)算,轉(zhuǎn)換從低級(jí)到高級(jí);3、強(qiáng)制類型轉(zhuǎn)換高級(jí)數(shù)據(jù)要轉(zhuǎn)換成低級(jí)數(shù)據(jù),需用到強(qiáng)制類型轉(zhuǎn)換,如:int i;byte b=(byte)i; /*把int型變量i強(qiáng)制轉(zhuǎn)換為by

21、te型*/類型轉(zhuǎn)換舉例1:public class App3_2 public static void main(String args) int a=155; int b=9; float g,h; System.out.println("a="+a+",b="+b); g=a/b; /將a除以b的結(jié)果放在g中 System.out.println("a/b="+g+"n"); /輸出g的值 System.out.println("a="+a+",b="+b); h=(fl

22、oat)a/b; /先將a強(qiáng)制轉(zhuǎn)換成float類型后再參加運(yùn)算 System.out.println("a/b="+h); /輸出h的值 運(yùn)行結(jié)果如下:a=155,b=9a/b=17.0a=155,b=9a/b=17.222221類型轉(zhuǎn)換舉例2:class Promote public static void main(String args) byte b = 42; char c = 'a' short s = 1024; int i = 50000; float f = 5.67f; double d = .1234; double result =

23、(f * b) + (i / c) - (d * s); System.out.println(f * b) + " + " + (i / c) + " - " + (d * s); System.out.println("result = " + result); 測試并查看運(yùn)行結(jié)果。課 題:第3章Java語言基礎(chǔ)(3.7) 授課時(shí)間:第4次課一、運(yùn)算符對各種類型的數(shù)據(jù)進(jìn)行加工的過程成為運(yùn)算,表示各種不同運(yùn)算的符號(hào)稱為運(yùn)算符,參與運(yùn)算的數(shù)據(jù)稱為操作數(shù)。1、按操作數(shù)的數(shù)目來分,可有: 一元運(yùn)算符運(yùn)算符運(yùn)算例功能等價(jià)+自增a+或+aa&

24、#160;= a + 1-自減a-或-aa = a - 1-求相反數(shù)-aa = -a 二元運(yùn)算符運(yùn)算符運(yùn)算例功能+加a + b求a與b相加的和-減a - b求a與b相減的差*乘a * b求a與b相乘的積/除a / b求a除以b的商%取余a % b求a除以b所得的余數(shù) 三元運(yùn)算符:?:例如:c=a>b?a:b2、基本的運(yùn)算符按功能劃分,有下面幾類: 算術(shù)運(yùn)算符: +,*,/,%,+,。 例如:3+2;

25、a-b; i+; -i; 關(guān)系運(yùn)算符 運(yùn)算符運(yùn)算= =等于! =不等于>大于<小于>=大于等于<=小于等于例如: count>3; I=0; n!=-1; 布爾邏輯運(yùn)算符運(yùn)算符運(yùn)算例運(yùn)算規(guī)則&非簡潔與(邏輯與)x & yx, y都真時(shí)結(jié)果才為真|非簡潔或(邏輯或)x | yx, y都假時(shí)結(jié)果才為假!取反(邏輯非)! xx真時(shí)為假,x假時(shí)為真異或x  yx, y同真假時(shí)結(jié)果為假&&簡潔與x &&am

26、p; yx, y都真時(shí)結(jié)果才為真|簡潔或x | yx, y都假時(shí)結(jié)果才為假例如:flag=true; !(flag); flag&&false; 賦值運(yùn)算符 =,及其擴(kuò)展賦值運(yùn)算符如+=,=,*=,/=等。 例如:i=3; i+=3; /等效于i=i+3; 條件運(yùn)算符 ? :例如:result=(sum= =0 ? 1 : num/sum); 其它:包括分量運(yùn)算符· ,下標(biāo)運(yùn)算符 ,實(shí)例運(yùn)算符instanceof,內(nèi)存分配運(yùn)算符new,強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 (類型),方法調(diào)用運(yùn)算符 () 等。例如:System.out.

27、println("hello world");int array1=new int4;二、表達(dá)式表達(dá)式是由操作數(shù)和運(yùn)算符按一定的語法形式組成的符號(hào)序列。一個(gè)常量或一個(gè)變量名字是最簡單的表達(dá)式,其值即該常量或變量的值;表達(dá)式的值還可以用作其他運(yùn)算的操作數(shù),形成更復(fù)雜的表達(dá)式。1、 表達(dá)式的類型表達(dá)式的類型由運(yùn)算以及參與運(yùn)算的操作數(shù)的類型決定,可以是簡單類型,也可以是復(fù)合類型。例如:布爾型表達(dá)式: x&&y|z; 整型表達(dá)式: num1+num2;2、 運(yùn)算符的優(yōu)先次序 表達(dá)式的運(yùn)算按照運(yùn)算符的優(yōu)先順序從高到低進(jìn)行,同級(jí)運(yùn)算符從左到右進(jìn)行。優(yōu)先級(jí)描述運(yùn)算符結(jié)合性

28、1最高優(yōu)先級(jí). ( )左/右2單目運(yùn)算- ! + - 強(qiáng)制類型轉(zhuǎn)換符右3算術(shù)乘除運(yùn)算* / %左4算術(shù)加減運(yùn)算+ -左5移位運(yùn)算>> << >>>左6大小關(guān)系運(yùn)算< <= > >=左7相等關(guān)系運(yùn)算= !=左8按位與,非簡潔與&左9按位異或運(yùn)算左10按位或,非簡潔或|左11簡潔與&&左12簡潔或|左13三目條件運(yùn)算? :右14簡單、復(fù)雜賦值= 運(yùn)算符 =右例如,下述條件語句分四步完成:Result=sum=0?1:num/sum;第1步:result=sum=0?1:(num/sum)第2步:result=

29、(sum=0)?1:(num/sum)第3步:result=(sum=0)?1:(num/sum)第4步:result= 3、表達(dá)式中的類型轉(zhuǎn)換當(dāng)有不同種類的混合運(yùn)算時(shí)由左到右進(jìn)行轉(zhuǎn)換:int、long、float、double,所有的byte, short, char 等轉(zhuǎn)為int。例如:a 5.0 + a (a - b) * c - 4 i < 30 && i % 10 != 0課 題:第4章 流程控制(4.1-4.3) 授課時(shí)間:第5次課一、語句與復(fù)合語句Java語言中語句可以是以分號(hào)“;”結(jié)尾的簡單語句,也可以是用一對花括號(hào)“”括起來的復(fù)合語句。例如:System

30、.out.println(“Hello World”);a = 3 + x;b = a > 0 ? a : -a;s = TextBox1.getText();d = Integer.parseInt(s);Java語言的復(fù)合語句與C+復(fù)合語句不同的是:Java語言不允許在兩個(gè)嵌套的復(fù)合語句內(nèi)聲明兩個(gè)同名的變量。例如:public static void main(String args) int a; int b; int a; /錯(cuò)誤,因變量a前面已定義 Java中的注釋形式:單行: /多行:/* */文件注釋(Java特有的):/* */2、 分支語句分支語句提供了一種控制機(jī)制,使

31、得程序的執(zhí)行可以跳過某些語句不執(zhí)行,而轉(zhuǎn)去執(zhí)行特定的語句。1、 條件語句if-else(1)一般形式:if ( 條件表達(dá)式 ) 語句塊; / if分支else 語句塊; / else分支 條件表達(dá)式用來選擇判斷程序的流程走向。例如:public class App4_1 public static void main(String args) int a=1,b=2,c=3,max,min; if(a>b) max=a; else max=b; if(c>max) max=c; System.out.println("Max="+max); min=a<b

32、 ? a : b; min=c<min ? c : min; System.out.println("Min="+min); (2)缺省else分支,語法格式如下:if ( 條件表達(dá)式 ) 語句塊; / if分支 其他語句;2、多分支語句switchswitch (表達(dá)式) case 判斷值1: 語句塊1 ;break; /分支1 case 判斷值2: 語句塊2;break; /分支2 case 判斷值n: 語句塊n;break; /分支n default:語句塊n+1; /分支n+1 先計(jì)算表達(dá)式的值,這個(gè)值必須是整型或字符型,同時(shí)應(yīng)與各個(gè)case分支的判斷值的類型

33、相一致。將表達(dá)式的值與第一個(gè)case分支的值比較,若相同,則程序轉(zhuǎn)入第一個(gè)case分支的語句塊;否則,再與第二個(gè)case分支比較依此類推。如果與任何一個(gè)case分支都不相同,則轉(zhuǎn)而執(zhí)行最后的default分支;在default分支不存在的情況下,則跳出整個(gè)switch語句。switch語句的每一個(gè)case判斷,都只負(fù)責(zé)指明流程分支的入口點(diǎn),而不負(fù)責(zé)指定分支的出口點(diǎn),分支的出口點(diǎn)需要編程人員用相應(yīng)的跳轉(zhuǎn)語句break來標(biāo)明。例如:package ch004;import java.io.IOException;public class test4 public static void main(

34、String args) throws IOException / TODO Auto-generated method stubint a = 100, b = 6;char oper;oper = (char) System.in.read();switch (oper) case '+':System.out.println("a+b=" + (a + b);break;case '-':System.out.println("a-b=" + (a - b);break;case '*':System

35、.out.println("a*b=" + (a * b);break;case '/':System.out.println("a/b=" + (a / b);break;default:System.out.println("輸入不合法");課 題:第4章 流程控制(4.4-4.5) 授課時(shí)間:第6次課1、 循環(huán)語句循環(huán)結(jié)構(gòu)是在一定條件下,反復(fù)執(zhí)行某段程序的流程結(jié)構(gòu),被反復(fù)執(zhí)行的程序被稱為循環(huán)體。循環(huán)語句分類1while語句initializationwhile (termination) body; iterat

36、ion; 例如: public class Narcissus public static void main(String args) int i, j, k, n = 100, m = 1; while(n < 1000) i = n / 100; j = (n i * 100) / 10; k = n%10; if(Math.pow(i, 3) + Math.pow(j, 3) + Math.pow(k, 3) = n) System.out.println(找到第+ m+ + 個(gè)水仙花數(shù): + n); n+; 2do-while語句initializationdo body; i

37、teration; while (termination);例如:doa=i/100;b=(i-a*100)/10;c=i-a*100-b*10;sum=(int) (Math.pow(a, 3)+Math.pow(b, 3)+Math.pow(c, 3);if(i=sum)System.out.println(i);i+;while(i<=999);3for語句for (initialization; termination; iteration) body; for語句執(zhí)行時(shí),首先執(zhí)行初始化操作,然后判斷終止條件是否滿足,如果滿足,則執(zhí)行循環(huán)體中的語句,最后執(zhí)行迭代部分。完成一次循環(huán)

38、后,重新判斷終止條件。初始化、終止以及迭代部分都可以為空語句(但分號(hào)不能省),三者均為空的時(shí)候,相當(dāng)于一個(gè)無限循環(huán)。在初始化部分和迭代部分可以使用逗號(hào)語句,來進(jìn)行多個(gè)操作。逗號(hào)語句是用逗號(hào)分隔的語句序列。for( i=0, j=10; i<j; i+, j-) 例如:for (int i = 100; i <= 999; i+) a = i / 100;b = (i - a * 100) / 10;c = i - a * 100 - b * 10;sum = (int) (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3);if (i

39、= sum) System.out.println(i);問題:輸出10000之內(nèi)的所有完全數(shù),完全數(shù)是指等于其所有因子和(包括1但不包括這個(gè)數(shù)本身)的數(shù),例如61×2×3,6123,則6是一個(gè)完全數(shù)二、跳轉(zhuǎn)語句1、break語句在switch語中,break語句用來終止switch語句的執(zhí)行。使程序從switch語句后的第一個(gè)語句開始執(zhí)行。在Java中,可以為每個(gè)代碼塊加一個(gè)括號(hào),一個(gè)代碼塊通常是用大括號(hào) 括起來的一段代碼。加標(biāo)號(hào)的格式如下:BlockLabel: codeBlock break語句的第二種使用情況就是跳出它所指定的塊,并從緊跟該塊的第一條語句處執(zhí)行。例如

40、:break BlockLabel;break語句a: /標(biāo)記代碼塊ab: /標(biāo)記代碼塊bc: /標(biāo)記代碼塊cbreak b; /此處的語句塊不被執(zhí)行 /此處的語句塊不被執(zhí)行 /從此處開始執(zhí)行2、continue語句continue語句用來結(jié)束本次循環(huán),跳過循環(huán)體中下面尚未執(zhí)行的語句,接著進(jìn)行終止條件的判斷,以決定是否繼續(xù)循環(huán)。對于for語句,在進(jìn)行終止條件的判斷前,還要先執(zhí)行迭代語句。它的格式為:continue;也可以用continue跳轉(zhuǎn)到括號(hào)指明的外層循環(huán)中,這時(shí)的格式為continue outerLable;例如:outer: for( int i=0; i<10; i+ )

41、/外層循環(huán) inner: for( int j=0; j<10; j+ ) /內(nèi)層循環(huán) if( i<j ) continue outer; 3、返回語句returnreturn語句從當(dāng)前方法中退出,返回到調(diào)用該方法的語句處,并從緊跟該語句的下一條語句繼續(xù)程序的執(zhí)行。返回語句有兩種格式:return expression ;return;return語句通常用在一個(gè)方法體的最后,否則會(huì)產(chǎn)生編譯錯(cuò)誤,除非用在if-else語句中。課 題:第5章 數(shù)組與字符串(5.1-5.4) 授課時(shí)間:第7次課1、 Java的內(nèi)存分配機(jī)制內(nèi)存分配包括棧內(nèi)存和堆內(nèi)存。棧內(nèi)存:基本數(shù)據(jù)類型的變量和對象的引

42、用變量。超出變量的作用域,會(huì)自動(dòng)釋放掉為該變量所分配的內(nèi)存空間。堆內(nèi)存:存放由new運(yùn)算符創(chuàng)建的對象和數(shù)組,在堆中分配的內(nèi)存,由Java虛擬機(jī)的自動(dòng)垃圾回收器來管理。舉例:int x; /引用變量x,在棧內(nèi)存中分配空間 x=new int10;/數(shù)組初始化,在堆內(nèi)存中分配空間棧中的變量x的取值= 數(shù)組在堆內(nèi)存中的首地址,所以棧中的這個(gè)變量就成了數(shù)組的引用變量。舉例String s1; String s2;s1=“a string”; s2=s1;s1s210001a string10001棧內(nèi)存堆內(nèi)存引用變量實(shí)際上保存的是數(shù)組或?qū)ο笤诙褍?nèi)存中的地址(也稱為對象的句柄),所以可以通過使用棧的引用

43、變量來訪問堆中的數(shù)組或?qū)ο蟆R米兞肯喈?dāng)于是為數(shù)組或?qū)ο笃鸬囊粋€(gè)別名。引用變量是普通變量,定義時(shí)在棧中分配,在程序運(yùn)行到其作用域之外被釋放。數(shù)組或?qū)ο螅涸诙阎蟹峙鋬?nèi)存,在沒有引用變量指向它時(shí),也不會(huì)釋放,但會(huì)變?yōu)槔?,不能再被使用。在隨后一個(gè)不確定的時(shí)間被垃圾回收器收走(釋放)。null:引用常量,如果某個(gè)引用變量值為null,表示不指向任何對象或數(shù)組。二、數(shù)組的概念數(shù)組是由同類型的數(shù)據(jù)元素構(gòu)成的一種數(shù)據(jù)結(jié)構(gòu)。每個(gè)數(shù)組都有一個(gè)名為length成員變量,用來表示數(shù)組所包含元素的個(gè)數(shù),數(shù)組創(chuàng)建之后length就不能被改變。如:int arr; arr=new int10;int arr=new i

44、nt10; 三、一維數(shù)組1、一維數(shù)組的定義type arrayName ;類型(type)可以為Java中任意的數(shù)據(jù)類型,包括簡單類型和復(fù)合類型。例如:int intArray ;Date dateArray;2、一維數(shù)組的初始化(1) 靜態(tài)初始化int intArray=1,2,3,4;String stringArray="abc", "How", "you"(2)動(dòng)態(tài)初始化 簡單類型的數(shù)組int intArray; intArray = new int5; 復(fù)合類型的數(shù)組String stringArray ; String s

45、tringArray = new String3;/*為數(shù)組中每個(gè)元素開辟引用空間(32位) */stringArray0= new String("How");/為第一個(gè)數(shù)組元素開辟空間 stringArray1= new String("are");/為第二個(gè)數(shù)組元素開辟空間stringArray2= new String("you");/ 為第三個(gè)數(shù)組元素開辟空間3、一維數(shù)組元素的引用 數(shù)組元素的引用方式為:arrayNameindexindex為數(shù)組下標(biāo),它可以為整型常數(shù)或表達(dá)式,下標(biāo)從0開始。每個(gè)數(shù)組都有一個(gè)屬性length

46、指明它的長度,例如:intArray.length指明數(shù)組intArray的長度。四、二維數(shù)組1、二維數(shù)組的定義二維數(shù)組實(shí)際上就是“數(shù)組的數(shù)組”。type arrayName ; type arrayName;2、二維數(shù)組的初始化(1)靜態(tài)初始化int intArray =1,2,2,3,3,4,5;Java語言中,由于把二維數(shù)組看作是數(shù)組的數(shù)組,數(shù)組空間不是連續(xù)分配的,所以不要求二維數(shù)組每一維的大小相同。(2)動(dòng)態(tài)初始化 直接為每一維分配空間,格式如下:arrayName = new typearrayLength1arrayLength2;int a = new int23; 從最高維開始

47、,分別為每一維分配空間:arrayName = new typearrayLength1 ;arrayName0 = new typearrayLength20;arrayName1 = new typearrayLength21;arrayNamearrayLength1-1 = new typearrayLength2n; 動(dòng)態(tài)初始化舉例:二維簡單數(shù)據(jù)類型數(shù)組的動(dòng)態(tài)初始化如下,int a = new int2 ;a0 = new int3;a1 = new int5;對二維復(fù)合數(shù)據(jù)類型的數(shù)組,必須首先為最高維分配引用空間,然后再順次為低維分配空間。而且,必須為每個(gè)數(shù)組元素單獨(dú)分配空間。例如

48、:String s = new String2 ;s0= new String2;/為最高維分配引用空間s1= new String2; /為最高維分配引用空間s00= new String("Good");/ 為每個(gè)數(shù)組元素單獨(dú)分配空間s01= new String("Luck");/ 為每個(gè)數(shù)組元素單獨(dú)分配空間s10= new String("to");/ 為每個(gè)數(shù)組元素單獨(dú)分配空間s11= new String("You");/ 為每個(gè)數(shù)組元素單獨(dú)分配空間3、二維數(shù)組元素的引用對二維數(shù)組中的每個(gè)元素,引用方式

49、為:arrayNameindex1index2例如: num10;4、二維數(shù)組舉例:例如:兩個(gè)矩陣相乘public class MatrixMultiply public static void main(String args) int i,j,k; int a=new int 23; /動(dòng)態(tài)初始化一個(gè)二維數(shù)組 int b=1,5,2,8,5,9,10,-3,2,7,-5,-18; /靜態(tài)初始化一個(gè)二維數(shù)組int c=new int24; /動(dòng)態(tài)初始化一個(gè)二維數(shù)組for (i=0;i<2;i+)for (j=0; j<3 ;j+) aij=(i+1)*(j+2);for (i=0

50、;i<2;i+) for (j=0;j<4;j+) cij=0; for(k=0;k<3;k+) cij+=aik*bkj; System.out.println("*Matrix C*"); /打印Matrix C標(biāo)記for(i=0;i<2;i+) for (j=0;j<4;j+) System.out.println(cij+" "); System.out.println(); 課 題:第5章 數(shù)組與字符串(5.5) 授課時(shí)間:第8次課一、String類概述String 類對象保存不可修改的Unicode字符序列。一般情況下,一個(gè)String字符串一經(jīng)創(chuàng)建,無論其長度還是內(nèi)容,都不能夠再更改。1、 字符串的定義字符串是由字符組成的序列,用雙引號(hào)括起來的一個(gè)字符序列構(gòu)成了字符串。它不是一種簡單類型,也不是字符數(shù)組(在C/C+中是)。Java中,字符串(String)被定義為一種內(nèi)置對象,字符串(String)類型通常被用來聲明字符串變量,也可以定義字符串?dāng)?shù)組。在進(jìn)行輸出時(shí),也可以使用方法println()進(jìn)行,就像輸出其他類型變量的值一樣。例如:String 類的定義和實(shí)例的生成(三種方式) String str; str=“this is

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論