• /  113
  • 下載費用: 9.90積分  

java程序設計課件2012版JAVA_chap2.ppt

'java程序設計課件2012版JAVA_chap2.ppt'
第 2 章 Java對象設計概述教學目標:概括性地掌握java語言的主要特性,能編寫簡單的java應用程序。2.1 引子Java程序由類構成,從一個類可以創建任意多個對象。類的成分:域和方法。類實質上是描述了由它所創建的每個對象所具有的狀態和方法。例class HelloWorld { public static void main(String[] args) { System.out.println("Hello,World"); }}這段源程序無論如何命名(擴展名必須是java),編譯后的字節碼文件必定為HelloWorld.class,如果該類為public的,則源文件名也必須是HelloWorld。字節碼是運行在JVM上的機器語言。作為程序執行入口的主方法主類與C++不同:java類中的成員方法的定義 必須在類體內完成執行結果是輸出字符串Hello,World。作為java application,必須有一個類含有main方法,這是程序執行的入口。作為一個最簡單的application,沒有域,只有一個main方法,且其中只有一條語句。System是系統定義的一個類,out是它的一個靜態域, println是out的一個方法。2.2 變量內置的基本數據類型:整型:byte 8位整數(帶符號)short 16位整數(帶符號)int 32位整數(帶符號)long 64位整數(帶符號)浮點型:float 32位浮點數double 64位浮點數布爾型:boolean true/false (不同于1/0)字符型:16位unicode字符引用類型:類、接口和數組。程序員定義的對象類型需事先定義。java沒有缺省類型,變量的類型必須顯式定義。變量在初試化之前沒有定義,不能使用未賦值的變量。例class Test { public static void main(String[] args) { int i; int j=i+1; }}例class PartialSum { public static void main(String[] args) { int s=0; int i=1; while(i<=50) { s=s+i*i; i=i+1; System.out.println(s); } }}println是一種名復用方法,可以接受不同類型參數2.3 注釋整行注釋://整段注釋:/*和*/之間文本注釋:/**和*/之間,一般用于描述其后的內容,javadoc工具可以用來提取文本注釋,形成html文檔注釋不能嵌套,例/* ……… /*………………*/……….*/2.4 命名常量常量:程序執行過程中保持不變。使用有名常量的好處:名字能描述量值的含義 ;在一處定義,便于維護。Java中,創建有名常量是用static和final來說明一個變量,并在說明中提供一個初始化值,例class CircleStuff { static final double π=3.1416;} 可以把相關的常量組織起來放在一個類里,例Class Suit { final static int CLUBS=1; final static int DIAMONDS=2; final static int HEARTS=3; final static int SPADES=4;}使用Suit.CLUBS,Suit.HEARTS來訪問2.5 控制流控制流語句描述的是在程序運行時決定執行哪條語句的問題,主要有:while,if/else,for,switch,do/while,還有“塊”,塊是用{}封狀起來的多個語句,也被稱為“分程序”。例: 改進的PartialSum程序,輸出結果中標注了序列號,并用*標注所有偶數。class ImprovedPartialSum { static final int MAX_INDEX=10; static void main(String[] args) { int s=0; String mark; for (int i=1;i<MAX_INDEX;i++) { s=s+i*i; if (s%2==0) mark="*"; else mark= ""; System.out.println(i+":"+s+mark); } }}運行結果:1:12:53:14*4:30*5:556:91…其中輸出語句使用+把表示i的字符串、一個分隔符、表示s的字符串和一個標志字符串連接在一起。對于字符串,+是連接操作,對于算術表達式則是加法運算,例如int i=3,j=2;System.out.println(i+"*"+j+"="+i*j);//3*2=6System.out.println(i+"+"+j+"="+i+j);//3+2=32System.out.println(i+"-"+j+"="+i-j);//編譯報錯2.6 類和對象每個對象都有一種類型,就是對象所屬的類。每個類有兩種主要成員:域和方法。class Point { public double x,y; }2.6.1 創建對象使用關鍵詞new。從類創建對象的過程稱為實例化,對象也稱為實例新創建的對象放在被稱為“堆”的系統存儲區中。對象的訪問通過“對象引用”(object reference):持有一個對象的變量實質上就表示對該對象的引用。當變量不再引用任何對象時,該對象引用就是null。引用是有類型的。把對象傳遞給一個方法實際所做的是把對象的引用傳遞給一個方法。例Point lowerLeft=new Point();Point upperRight=new Point();Point middlePoint=new Point();lowerLeft.x=0.0; lowerLeft.y=0.0;upperRight.x=1280.0; upperRight.y=1024.0;middlePoint.x=640.0; middlePoint.y=512.0;每個Point對象都有獨立的x,y對象中的x,y域稱為實例變量創建三個獨立的Point對象,分別定義三個引用指向它們。例class Demo { static void main(String[] args) { Point p1,p2; new Point(); p1=new Point(); p2=p1; p1.x=1; p1.y=2; System.out.println(p2.x+", "+p2.y);。省略部分。ut.println(y); }}2.13 包把多個類收集在一起成為一組,稱作包(package)使用包便于組織復雜任務,使不同人的代碼分離;容易保證類名的唯一性。包對應于文件系統的目錄,包名與目錄名相同。一個物理上的目錄在邏輯上包括一個命名包和一個非命名包,命名包的名字與目錄名相同。包中不但可以有不同的類,而且可以有子包,對應于子目錄。包的名字具有層次結構,用點符號分割各成分。一個類可以使用它所在(邏輯)包中的所有類,也可以使用來自其他包中的public類。使用其他命名包中public類的兩種方式在類名前加上完整的包名,例java.util.Date today=new java.util.Date();可以移入特定的類或一個包中的所有類。import java.util.Date;import java.util.*;JDK1.5以前,只能移入類,不能移入成員。例,不能移入 System.out。一條移入語句只能移入一個包中的類,不能同時移入其子包中的類。例,import java.*.*(錯)。向包中添加類的方法:把此包的名字放在源文件頭部(類定義之前),并使用關鍵詞package,格式:package 包名;類定義…綜合例:.(當前目錄): Demo.java, Demo.class \package1: OutputPackage1Name.java OutputPackage1Name.class \ package2: OutputPackage2Name.java OutputPackage2Name.class以下是各包中的源文件.\ package1\ package2\OutputPackage2Name.javapackage package1.package2;public class OutputPackage2Name { public static void outputPackage2Name() { System.out.println("package2"); }} 注意:public類的名字必須與其源文件的名字相同,因此,每個public類獨占一個源文件。.\ package1\ OutputPackage1Name.javapackage package1;public class OutputPackage1Name { public static void outputPackage1Name() { System.out.println("package1"); }} .\ Demo.javaimport package1.*;import package1.package2.*;//import package1.OutputPackage1Name;//import package1.package2.OutputPackage2Name;class Demo { static void main(String[] args) { OutputPackage1Name.outputPackage1Name(); OutputPackage2Name.outputPackage2Name(); }} 另外一種 Demo.javaclass Demo { static void main(String[] args) { package1. OutputPackage1Name.outputPackage1Name(); package1.package2. OutputPackage2Name.outputPackage2Name(); }} 完整的包前綴。完整的包前綴。如果沒有用包說明,則這個類在非命名包中,非命名包中的類不能在包外被移入和使用。如果使用了包說明,則這個類的字節碼文件必須放在與該包名對應的子目錄中。java.lang包中的類使用前無需用import移入。任何類都在一個特定的包中,要訪問某個類,必須能準確地定位它。set classpath=…;…; 用來指定類路徑,一方面可以作為包移入和包前綴的參考基準路徑,另一方面編譯器和解釋器會在其中的非命名包中查找要訪問的類。無論類路徑是否包含“.”,編譯器總會在當前目錄下查找文件。jvm在當前路徑下搜索類文件的條件設置類路徑,但以“;”結束,甚至類路徑中僅僅包括“;”不設置類路徑set classpath用來顯示設定的類路徑。set classpath=清除設定的類路徑。例例:chap1\HelloWorld.javapublic class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); OK.main(null);}}chap1\next\OK.javapublic class OK { public static void main(String[] args) { System.out.println("OK");}}例:將HelloWorld放入命名包package chap1;public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); }}靜態移入: 移入類中的靜態成員,允許它們在沒有類前綴時直接按名訪問,例import static java.lang.System.*;public class Test { public static void main(String[] args) { out.println("Hello World"); }}2.14 java的底層結構(自學)2.15 本章小結Java程序由類構成, Java程序設計本質上就是設計類,以及由類組裝程序。類有兩種成員:域和方法。靜態成員定義類的狀態和行為,非靜態成員定義由類創建的每個對象所具有的狀態和行為。同一個類的不同對象具有獨立的非靜態域,共享靜態域。類可以派生子類,java只支持類的單一繼承機制。子類繼承超類的域和方法,可以增加新的成員,繼承下來的方法還可以被改寫。與類相似,接口也是一種類型,但只給出方法的說明,不提供具體實現,方法的實現由類提供,Java支持接口的多重繼承。Java內置了整型、浮點型、布爾型和字符型這四種基本的數據類型,可以用來定義不同類型的變量與基本的數據類型類似,類、接口和數組也可以用來定義不同類型的變量,稱為引用,引用既可以指向與引用相同類型或其子類型的具體對象,也可以不指向任何對象(null)。包是組織復雜軟件和解決命名沖突的有效方法。字符串和數組處理為對象,length方法返回字符串的長度, length域保存數組的大小,數組創建后,大小不能改變。
關 鍵 詞:
java 2012 程序設計 chap chap2
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:java程序設計課件2012版JAVA_chap2.ppt
鏈接地址: http://www.476824.live/p-51617540.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 浙江快乐十二走势图 浙江十一选五开奖结果真准网 浙江11选5 彩票青海十一选五 七星彩开奖结果走势图 福建31体彩的走势图官网 厦门股指期货配资 北京快三开奖走势图 广东好彩1技巧 pk10精准计划软件手机ios