java面向?qū)ο笏枷虢庾x_第1頁
java面向?qū)ο笏枷虢庾x_第2頁
java面向?qū)ο笏枷虢庾x_第3頁
java面向?qū)ο笏枷虢庾x_第4頁
java面向?qū)ο笏枷虢庾x_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 Java平臺有三個版本-JavaME:微型版,用于開發(fā)小型設備、(是做手機軟件的)-JavaSE標準版,用于創(chuàng)建桌面應用。-JavaEE企業(yè)版,用于創(chuàng)建企業(yè)應用。礎依然是JavaSE核心算法依然使用智能卡、 移動終端應用;(使用率較低)(企業(yè)用JavaSE建桌面應用較少)(JavaEE是JavaSE的升級版,語言基JavaSE)簡單地說- Java SE是做電腦上運行的軟件。(坦克大戰(zhàn),QQ,掃雷,連連看)- Java EE是用來做網(wǎng)站的-(我們常見的JS限術(shù))- Java ME是做手機軟件的。學習JAVA從哪開始?或者我們可以說,需要先學習那個java 版本?有道是“萬丈高樓平地起”,通

2、過上面的介紹我們就可以知道,學習java 編程,無論想從事哪個方面的程序開發(fā),必須要把基礎打好,因此,學習java應該從java se開始學習。學習JavaS所能做什么?- 可以做桌面應用程序,例如掃雷游戲、連連看游戲- 可以做C/S結(jié)構(gòu)的網(wǎng)絡應用,例如即時通訊軟件 學習JavaS詬不能做什么?- 不能做 Web應用,例如網(wǎng)上商城- 不能做Android應用為什么要學JavaSE?- 是JavaEE勺必備基礎- 是Android應用開發(fā)的必備基礎- 是掌握面向?qū)ο缶幊趟枷氲谋匾n程Java語言的特點 跨平臺 解釋執(zhí)行 面向?qū)ο螅☉鸩浇⒚嫦驅(qū)ο蟮木幊趟枷耄┳詣永厥蒸敯糁С侄嗑€程編程簡單性

3、Java語言特點- 跨平臺(可移植、一次編寫,處處運行)簡言之,跨平臺的含義是使用Java語言開發(fā)應用,不需要為不同的平臺開發(fā)不同的程序,而是只開發(fā)一套應用,就可以運行在不同的平臺上。Java語言特點- 解釋執(zhí)行解釋執(zhí)行的含義是,Java程序編譯之后,只是生成了class文件,稱為字節(jié)碼,并不是機器碼。在執(zhí)行時,JVM中的解釋器,會根據(jù)當前平臺的特征,對class文件進行 解釋,生成符合當前規(guī)范的機器碼,得以運行。Java語言特點-面向?qū)ο蟮恼Z言Java語言是一門面向?qū)ο笳Z言,具備面向?qū)ο笳Z言三大特征:封裝、繼承、多態(tài)。Java語言特點-自動垃圾回收程序員無權(quán)回收內(nèi)存。系統(tǒng)級線程跟蹤每一個存儲

4、空間的分配情況,在JVM 空閑周期,垃圾收集線程檢查,釋放內(nèi)存。Java語言特點-魯棒魯棒即健壯的意思,Java 語言從編譯到運行期,都有很多機制,以保證其程序的魯棒性,如異常處理機制,也是保證魯棒性的重要手段。Java語言特點支持多線程編程Java語言特點學習Java編程相對容易Java語言取消了很多容易混淆的概念,比如多繼承、 goto語句等。Java也沒有指針的概念,也不支持頭文件2 JDK簡介-JDK(Java Development Kit):給Java開發(fā)人員使用的工具包,包括 Java的開 發(fā)工具,也包括 JRE其中開發(fā)工具中包括編譯工具(javac.exe)、運行工具 (jav

5、a.exe)、打包工具(jar.exe)等。JRE (Java Runtime Enviroment) Java 的運行環(huán)境,包括 Java虛擬機和 Java程 序運行所需的核心類庫。-兩者之間的關(guān)系? JDK=JRE+發(fā)工具? JRE=JVM核心類庫在記事本中編寫 Java類public class Testpublic static void main(String args)System.out.println("Test");使用命令行編譯運行-javac Test.java-java Test創(chuàng)建工作空間,即work space;選擇適合的 Perspective

6、,如 Java Perspective;創(chuàng)建 Java Project;在src目錄下創(chuàng)建 Java Class;運行有main方法的Java類,在Console視圖中查看結(jié)果。安裝結(jié)束后,打開安裝后的路徑,一般情況下位于:C:Program FilesJava 下path 主要為了能找到開發(fā)過程中使用的工具,比如javac、 java 等Java_home為了能找到JDK的安裝路徑可以根據(jù)情況為學生介紹一些DOS命令,但是不推薦用太多時間,可以穿插在課程中。臨時環(huán)境變量配置(要用到命令行方式,用到set 命令的使用,在dos 里面進行運行)查看:set path配置:set path=hah

7、ah刪除:set path=查看版本:javac -version要是想保留已有的環(huán)境那么就用:setpath=C:programejdkjre;%path%磁盤符號:/* 用于執(zhí)行打開一個磁盤*/dir:使用來查看文件夾中的文件目錄cd( change direction )+文件路徑,用于進入某個文件md :創(chuàng)建目錄cd .用于返回上一級目錄,返回cd 的最近的一次操作直接回到根目錄rd:刪除目錄windows 在命令行刪除一個文件夾,是從里面往外面刪del:刪除文件exit 退出命令行參數(shù)超級強大的命令:help在工作過程中,都會使用集成開發(fā)工具來寫程序,因此, 我們也要盡快熟悉常用的集

8、成開發(fā)工具Eclipse。解釋工作空間(work space)、透視圖(perspective)、Project (工程)的概念。工作空間就是使用Eclipse編程時,文件存儲的一個目錄,下面可以有多個工程。透視圖是Eclipse 中的一個概念,不同的透視圖將展示一種當前主題下便捷的視圖布局。Project 是組織源文件的一個概念。聲明一個類,類中有屬性、方法。保證編譯成功。public class Person String name;int age;public void setAge(int age)this.age=age; (答案不唯一)3 類的聲明形式類的聲明形式(【】中是可選項,

9、即可有可無)【訪問權(quán)限修飾符】【修飾符】class 類名 類體訪問修飾符有兩種public, default修飾符:final, synchronized,abstract類的作用:類就是一個模板,定義多個對象共同的屬性和方法public class Studentprivate String name;public void study()聲明一個公共的學生類。public class Student 3 屬性屬性的定義屬性即對象的數(shù)據(jù)注: 屬性又稱為成員變量,是聲明在類中的變量,在方法體中聲明的變量稱為局部變量或臨時變量,后續(xù)詳細學習。屬性的聲明方式【訪問權(quán)限修飾符】【修飾符】數(shù)據(jù)類型屬性

10、名【=初值】;private String name;private double salary;private static int count=0;1 .類的屬性是聲明在類體中的數(shù)據(jù),通常使用private 權(quán)限修飾符。指的是該屬性只能在當前類中使用。也可以選擇使用public、 protected 或者默認權(quán)限。2 .屬性必須在聲明的時候指定數(shù)據(jù)類型。Java中有兩種數(shù)據(jù)類型,一種是基本數(shù) 據(jù)類型,如 byte、short、int、long、float、double、char、boolean。其他的都是 引用類型。在學生類中,聲明一個私有屬性姓名,一個公有屬性學號,一個私有屬性年齡。學號

11、的初始值是“ 000132 ”public class Student private String name; public String stuNo="000132" private int age;4 方法的聲明形式Java類中的方法聲明形式(中的內(nèi)容是可選項,即可有可無)【訪問權(quán)限修飾符】【修飾符】返回值數(shù)據(jù)類型方法名(形式參數(shù)列表)執(zhí)行語句;return 返回值 ;方法即對象的行為什么是方法- 方法就是定義在類中具有特定功能的一段獨立的小程序- 方法也稱為函數(shù)。訪問權(quán)限修飾符及修飾符- 訪問權(quán)限控制方法被調(diào)用的范圍一修飾符包括 static/final/abstr

12、act/synchronized- 都在后續(xù)學習中詳細學習返回值類型- 方法運行后的返回結(jié)果的數(shù)據(jù)類型,如果沒有返回值使用void。參數(shù)類型- 形式參數(shù)的數(shù)據(jù)類型。形式參數(shù)- 就是一個變量,用于存儲調(diào)用方法時傳遞給方法的實際參數(shù)。return- 用于結(jié)束方法。返回值該方法執(zhí)行后的結(jié)果,該結(jié)果會返回給調(diào)用者特殊情況:沒有返回值類型用void 關(guān)鍵字來表示。return 的后面直接用;號結(jié)束,return 可以省略不寫。方法的特點:定義方法可以將功能代碼進行封裝。便于該功能進行復用。方法只有被調(diào)用才會被執(zhí)行。方法的出現(xiàn)提高代碼的復用性。方法若沒有返回值,則用關(guān)鍵字void 表示,那么該方法中的re

13、turn 語句如果在最后一行可以省略不寫。方法中可以調(diào)用方法,不可以在方法內(nèi)部定義方法。定義方法時,方法的結(jié)果應返回給調(diào)用者,交由調(diào)用者來處理定義方法需思考三點- 方法是否有返回的結(jié)果,如果有,返回什么類型的結(jié)果?- 明確方法是否需要參數(shù),如果需要,需要幾個什么類型的參數(shù)?- 方法如何才能正確得到想要的結(jié)果?在學生類中,聲明一個私有屬性姓名,一個公有屬性學號,一個私有屬性年齡。學號的初始值是“ 000132 ”。對三個屬性聲明 get 和 set 方法。public class Student private String name; public String stuNo="000

14、132" private int age; public String getName() return name; public void setName(String name) = name; public String getStuNo() return stuNo; public void setStuNo(String stuNo) this.stuNo = stuNo; public int getAge() return age; public void setAge(int age) this.age = age; 5 方法重載定義:在Java中

15、如果有多個同名但是不同參數(shù)的方法就成為“方法的重載” 編譯器會根據(jù)調(diào)用時傳遞的實際參數(shù)自動判斷具體調(diào)用的是哪個重載方法,如:/*add 方法的重載*/int add(int x, int c) float add(float x, int c) double add(double x, double x) long add(int x , int x, int x) 方法重載的三大原則方法名相同 參數(shù)不同(可以有三方面的不同)- 數(shù)量不同- 類型不同- 順序不同同一作用域注意:方法重載跟方法的返回值類型沒有任何關(guān)系。也就是說,只有返回值 不同的方法不能構(gòu)成重載。/*錯誤的方法重載*/void

16、fun(int x) ;int fun(int x) ;方法重載的作用域規(guī)則只有屬于同一作用域范圍內(nèi)的方法才能構(gòu)成重載。class Firstpublic void show() class Secondpublic void show(int x) 方法重載注意同一作用域注意:方法重載跟方法的返回值類型沒有任何關(guān)系。也就是說,只有返回值 不同的方法不能構(gòu)成重載。/*錯誤的方法重載*/void fun(int x) ;int fun(int x) ;請勿將功能完全不一樣的方法進行重載!方法重載的代碼實例public class OverloadTest /定義一個方法求兩個整數(shù)的相加publi

17、c void add(int a,int b)int sum = a+b;Systemout.println("兩個整數(shù)相加的和是:"+(a+b);/定義一個方法求三個整數(shù)的相加public int add(int a,int b,int c)return a+b+c;/ 定義一個方法求兩個浮點數(shù)的相加protected double add(double a,double b)return a+b;/ 定義一個方法求一個整數(shù)數(shù)和一個小數(shù)的相加void add(int a,double b)double sum = a+b;System.out.println("

18、 兩個整數(shù)相加的和是:"+sum);自行設計一個類,設計類中方法重載。public class Calculator public int add(int x,int y)return x+y;public String add(String s1,String s2)return s1+s2; (答案不唯一)6 構(gòu)造方法作用要想使用Java類,必須創(chuàng)建類的對象,即對類進行實例化。而創(chuàng)建對象就必須使用構(gòu)造方法。因此,構(gòu)造方法幾乎是一個類必須有的元素。構(gòu)造方法的作用:用來對類進行實例化,即創(chuàng)建對象。構(gòu)造方法的組成【訪問權(quán)限修飾符】類名(形式參數(shù)列表)方法體舉例public class

19、Car private String color;private double price;public Car() public Car(String color) this.color=color;public Car(String color,double price) this.color=color;this.price=price;構(gòu)造方法與方法區(qū)別構(gòu)造方法是用在實例化對象的時候調(diào)用的沒有返回值,連void都沒有方法名必須與類名相同不能使用修飾符,包括static、 final、 abstract方法分靜態(tài)方法和非靜態(tài)方法可以使用修飾符,包括static、 final、 abstr

20、act靜態(tài)方法可用類名直接調(diào)用,非靜態(tài)方法要用對象調(diào)用(后續(xù)學習)返回值可有可無,如果沒有聲明時要加void方法名最好不跟類名一樣默認構(gòu)造方法為什么創(chuàng)建了類后,不寫構(gòu)造方法,依然可以使用new 進行實例化呢?任何一個Java 類都默認有一個無參構(gòu)造方法。也就是說,即使類中沒有聲明無參的構(gòu)造方法,照樣可以直接使用沒有參數(shù)的構(gòu)造方法。然而,只要在一個Java 類中定義了一個構(gòu)造方法后,默認的無參構(gòu)造方法即失效。設計銀行賬號類,定義卡號、余額屬性,定義取款存款方法。public class Account private String id;private double balance;public

21、 Account() System.out.println("Account()");public String getId() return id;public void setId(String id) this.id = id;public double getBalance() return balance;public void setBalance(double balance) this.balance = balance;public void deposit(double amount) balance+=amount;inform(" 存款 &

22、quot;+amount);public void withdraw(double amount) balance-=amount;public void inform(String msg)System.out.println(" 卡號是 "+id+" 的客戶請注意:"+msg);7 方法重載定義在一個類中,如果有多個同名但是不同參的方法,稱為“方法重載(overload)所謂不同參,可能是形式參數(shù)的個數(shù)不同,或者類型不同,順序不同。方法重載能夠增強程序的可讀性。構(gòu)造方法重載在什么情況下使用在實際的開發(fā)中,初始化對象時會傳不同的參數(shù),因此需要在一個類中

23、定義多個構(gòu)造方法,即進行構(gòu)造方法重載。public Cars(String color)this.color = color;public Cars(String color,double price) this.color = color;this.price = price;構(gòu)造方法重載注意事項無參的構(gòu)造方法,只有在該類沒有聲明任何構(gòu)造方法的時候,才是默認存在的;只要聲明了其他帶參的構(gòu)造方法,無參的構(gòu)造方法將不會默認存在,而是必須聲明才可以使用。public class Cars private String color;private double price;public Cars(S

24、tring color) this.color = color;Cars類中不再有默認無參數(shù)構(gòu)造方法,如果需要使用,必須顯式聲明無參構(gòu)造方 法。設計銀行賬號類,定義卡號、余額屬性,定義取款存款方法,定義至少兩個構(gòu)造方法。public class Account private String id;private double balance;public Account() System.out.println("Account()");public Account(String id, double balance) this.id = id;this.balance =

25、 balance;System.out.println("Account(String id, double balance)"); public String getId() return id;public void setId(String id) this.id = id;public double getBalance() return balance;public void setBalance(double balance) this.balance = balance;public void deposit(double amount)balance+=am

26、ount;inform(" 存款 "+amount);public void withdraw(double amount) balance-=amount;public void inform(String msg)System.out.println(" 卡號是 "+id+" 的客戶請注意:"+msg);main設計銀行賬號類,定義卡號、余額屬性,定義取款存款方法,定義至少兩個構(gòu)造方法。在方法中創(chuàng)建對象,測試存款取款方法。public class Account private String id;private double b

27、alance;public Account() System.out.println("Account()");public Account(String id, double balance) this.id = id;this.balance = balance;System.out.println("Account(String id, double balance)"); public String getId() return id;public void setId(String id) this.id = id;public double

28、getBalance() return balance; public void setBalance(double balance) this.balance = balance;public void deposit(double amount) balance+=amount;inform(" 存款 "+amount); public void withdraw(double amount) balance-=amount;public void inform(String msg) System.out.println(" 卡號是 "+id+&q

29、uot; 的客戶請注意:"+msg); 8 創(chuàng)建對象的過程假設存在一個類Person ,創(chuàng)建對象語句如下所示Person p=new Person();將上面的語句分為兩個步驟:Person p;p=new Person(); 創(chuàng)建一個對象后,其實有兩個實體:對象引用變量,在??臻g,即 p,稱為引用,或句柄,存的是對象的虛地址 對象本身,即使用new Person() 在堆空間里創(chuàng)建的實體,將對象的屬性值存儲到堆里可以使用引用變量操作對象的屬性和方法盡管它們也是確確實實存在的實體,但是似乎很難準確的“抓”住它。我們仔細研究一下第二句,找找剛創(chuàng)建的對象叫什么名字?有人說,它叫“ Per

30、son"。不 對,“Person'是 類(對象的創(chuàng)建模板)的名字。一個 Person類可以據(jù)此創(chuàng)建出 無數(shù)個對象,這些對象不可能全叫“Person”。 P 被稱為引用,也可以理解成對象變量的一個名字,可以用來調(diào)用對象的屬性和方法 創(chuàng)建對象的過程 package com.chinasofti.corejava.ch02;public class Cars private String color;private double price;public Cars(String color,double price) this.color = color; this.price = price;public void setColor(String color) this.color = color;public void setPrice(double price) this.price = price;public static void main(String口 args) Cars car 1= new Cars("black”,60000);Cars

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論