




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Day01第一個 Java 程序Public sicvoid main(arr args)System.out.pr(“oworld”);3.獨立編寫o world 程序,編譯并運行。class Demopublic sic void main(Stringargs)System.out.prln(“o world”);1. 簡述對 JVM,JRE,JDK 的理解。JVM 虛擬機相當于計算機系統(tǒng)(操作系統(tǒng)+硬件環(huán)境)jre = java 虛擬機 +類庫(輔助 java 虛擬機運行的文件)jdk = jre + java 開發(fā)工具2. 簡述環(huán)境變量 path 和 classpath 的作用?搭建
2、環(huán)境變量path 可以在任意目錄下運行對應目錄的所有軟件作業(yè)4. java 語言是否區(qū)分大小寫? class 的作用,javac,java 的作用?分、class 存放代碼 javac 編譯代碼 Java 執(zhí)行代碼5. 簡述 main 方法(是什么,什么特點,怎么用,何時用?)Main 主方法,一個類有且僅有一個主方法,一個類必須要用一個主方法,程序的筆記計算機 = 硬件 軟件硬件:cpu : cpu 是計算機中的運算算的執(zhí)行。與控制。負責了計算機的指令、與計算機運內存: 數據與 cpu 交互的橋梁。 程序所需要的數據都會先加載到內存中,cpu 是直接內存中數據運算的。特點: 存取速度快。 缺
3、點:斷電或者是程序退出的時候,內存中的數據都會丟失。硬盤(機械硬盤、固態(tài)硬盤):可以性保存數據, 缺點: 存取的速度慢。固態(tài)硬盤:速度非???。軟件:軟件就是按照一定順序組織起來的計算機指令與數據的集合。 軟件 = 數據 +指令軟件的類別:系統(tǒng)軟件:比如: windows 、 linux 、 mac os 、 ios 、 android(改 UI)應用軟件: 應用軟件必須要在系統(tǒng)軟件的基礎上才能使用的。比如:、 迅雷、 飛信.。軟件的本質(軟件為解決了什么問題): 提高了人類與計算機的交互效率。人類與計算機的交互方式:1. 圖形化界面的交互方式: 簡單 、 功能強大。2.通過 dos 命令的交互
4、方式: 特點: 需要大量的 dos 命令, 功能比較弱小。首先具備一個控制臺(命令行提示符窗口)用于輸入 dos 命令:打開一個控制臺的方式:方式一:開始- 所有程序-附件命令提示符方式二:開始-運行輸入 cmd 即可.常見的 dos 命令:盤符:進入指定的盤下面。操作文件夾:dir列出當前控制臺所在的路徑下的所有文件以及文件夾。進入指定的路徑下。回退到上一級目錄上。回退到當前路徑下的根目錄。cd cd cd mdrd路徑.文件夾的名字文件夾的名字創(chuàng)建一個文件夾刪除一個空文件夾。注意:不能用于刪除非空到的文件夾。操作文件:echo 數據文件名type 文件名del 文件名創(chuàng)建一個文件并且指定寫
5、入的數據。查看指定的文件內容。刪除指定的文件。 注意: del 后面如果跟一個文件夾,那么是刪除一個文件夾中的所有文件。*tab通配符(可以匹配任意的文件名)內容補全.cls清屏上下方向鍵找回上一次所寫過令。exit關閉控制臺。計算機語言(更好的與計算機進行交互):計算機的發(fā)展歷史:機器語言:010101010101010匯編語言 通過大量的英文單詞代表計算機的指令。 add 1 1高級計算機語言: C JAVA C+ 1993 , JAVA 初衷: 機互聯網的計算機語言。1994年互聯網剛剛興起,.(高司令林),改造成了面向java 重要特性之 -跨(一次編譯,到處運行).: 操作系統(tǒng)。ja
6、va 的環(huán)境的搭建:jre: java 運行環(huán)境。 jre= java 虛擬機 +類庫(輔助 java 虛擬機運行的文件)jdk: java 開發(fā)工具集jdk = jre + java 開發(fā)工具。安裝 jdk 的路徑要注意: 不能帶有中文路徑或者是空格。jdk 目錄的介紹:bin: 存放的是 java 的開發(fā)工具。db : JDK7 附帶的一個輕量級的數據庫,名字叫做 Derby。 include :存放的調用系統(tǒng)資源的接口文件。jre : java 運行環(huán)境lib :類庫。src.zip : java 源代碼java.exe 啟動 java 虛擬機解釋并執(zhí)行指定的 class 文件。java
7、 工具的使用格式:java 指定的 class 文件javac.exe 啟動 java 編譯器對指定的 java 源文件進行編譯、。編寫第一個 java 的程序:第一步: 新建一個 txt 文件。把后綴名改成 java。第二步: java 代碼全部都是寫到類上面的。如何編寫一個類:使用一個關鍵字 class 即可定義個類。格式:class 類名 備注: 大括號表示是一個類的范圍,在類的范圍之內都可以寫代碼,第三 步: 編寫一個主方法。 主方法的寫法是固定的,是一個程序的方法開始執(zhí)行,代碼從主如何啟動 java 編譯對 java 的源文件進行編譯?javac 的使用格式:javac java 源
8、文件。編譯的過程中煩!就的問題:每次編譯 的時候都需要寫上 java 源文件的完整路徑。解決方案: 如果可以在任意的路徑下都可以找到 java 的開發(fā)工具,那么該問題就解決了。在控制臺寫一個可執(zhí)行文件的文件名的執(zhí)行原理:在控制臺寫一個可執(zhí)行文件的文件名,那么系統(tǒng)首先會在控制臺當前路徑下去搜索是否存在該文件,如果可以找到指定的文件,那么就執(zhí)行該文件,如果找不到該文件,那么系統(tǒng)還會根據 path 的環(huán)境變量所保存的路徑信息下去搜索是否有指定的文件,如果能找到,那么就執(zhí)行該文件。配置 path 環(huán)境變量:如何找到 path 的環(huán)境變量:電腦屬性高級系統(tǒng)設置高級環(huán)境變量path把 javac 所在的路
9、徑拷貝到 path 環(huán)境變量中即可。Day02標識符: 在 java 程序中有些名字是可以自定義的,那么這些自定義的名字稱作為自定義的標識符。就標識符要注意的細節(jié):標識符的組成元素是由 字母(a-zA-Z) 、數字(0-9) 、 下劃線(_)、($).標識符不能以數字開頭。標識符是嚴格區(qū)分大小寫的。標識符的長度是沒有長度限制的。符號5. 標識符名一般要有意義(要做到讓人見名知意)6. 關鍵字、保留字不能用于自定義的標識符。自定義標識符的規(guī)范:1. 類名和接口詞的首字母大寫,其他單詞小寫。 比如: RunTime.變量名與方法名首單詞全部小寫,其他單詞首字母大寫,其他小寫。 比如:doCook(
10、);包名全部單詞小寫。常量全部單詞大寫,單詞與單詞之間使用下劃線分隔。 比如: UP_DIRECTION判斷一下那些是 符合的標識符: 12abc_不合法 數字不能開頭_12abc合法$ab12#不合法abc123不合法#號不屬于標識符組成元素。 號不屬于標識符組成元素。關鍵字:關鍵字就是在 java 程序中具備特殊含義的標識符。關鍵字一般用于描述一個程序的結構或者表示數據類型。*/*需求:編寫一個 java 程序模擬登陸.注釋: 注釋就是使用文字對程序的說明,注釋是寫給程序員看的,編譯器會忽略注釋的容的。內注釋的類別:第一種:單行注釋。/ 注釋的內容第二種:多行注釋。/* 注釋的內容 */*
11、第三種:文檔注釋./* 注釋的內容 */*文檔注釋也是一個多行注釋。注釋要注意的細節(jié):1. 單行注釋可以嵌套使用,多行注意是不能嵌套使用的。注釋的作用:1.2.使用文字對程序說明。調試程序。*/*軟件 =數據+ 指令+ 文檔常量: 常量就是程序在運行過程中其值不能發(fā)生改變的量。常量的類別:整數常量小數常量常量字符常量10 123.14常量只有兩個值: true(正確). false(錯誤)字符常量就是單個字符使用單引號引起來的內容稱作為字符常量。字符串產量 字符串常量就是使引號引起來的內容稱作為字字符串常量。整數常量的表現形式:整數的表現形式主要是以不同的進制(二進制、八進制、表現出來。進制)
12、進制: 十進制(09) 、(七進制 06)、 小時(12 進制(0-11)、 24 進制(023)進制:用有限的數字符號代表所有的數值。計算機的出現是為了服務于人類的,那么人類在現實生活中使用的數據基本上都是十進制的數據,那么計算機是否有可以現實生活中的數據呢?如果可以又以哪種形式呢?二進制由來。電腦現實生活中的數據都是使用二進制進行的,那么就要懂得如何把十進制數據轉換成二進制。十進制與二進制之間的轉換:十進制轉二進制的方法:使用十進制的數據不斷除以 2,直到商為 0 為止。從下往上取余數就是對應的二進制。10(十進制)1010(二進制)二進制轉十進制:使用二進制的每一位乘以 2 的 n 次方
13、,n 從 0 開始,每次遞增 1,然后把各部分的數據相加即可。1110(二進制) - 14(十進制)二進制的弊端: 二進制的書寫太長了,不方便人類。二進制的數據特點: 由 01 組成。解決方案:每三個二進制位就就一個數字。1000(十進制)- 001,111,101,000(二進制) = 1,7,5,0一個八進制的數據就是相當于三個二進制位。十進制與八進制之間的轉換:十進制轉八進制:使用十進制的數據不斷除以 8,直到商為 0 為止。從下往上取余數就是對應的八進制。45(十進制)- 55 (八進制)八進制轉十進制:使用八進制的每一位乘以 8 的n 次方,n 從 0 開始,每次遞增 1,然后把各部
14、分的數據相加即可。23(八進制)(十進制)八進制數據的特點: 只有 07 這八個字符組成的。進制的數據: 09 , a(10)b (11),c(12),d(13), e(14),f(15), 四個二進制位進制的數據.就是一個進制的數據是有 09、a-f 這幾個字符組成的。十進制轉換成進制:使用十進制的數據不斷除以 16,直到商為 0 為止。從下往上取余數就是對應的進制。38(十進制)26(進制)進制轉十進制:使用遞增 1,然后把各部分的數據相加即可。進制的每一位乘以 16 的 n 次方,n 從 0 開始,每次34(進制)52(十進制)*/二進制 , 如果一個數據要表示二進制,那么要在該數據的前
15、面加上 0b 開頭/八進制數據, 八進制的數據需要以 0 開頭/進制數據,進制的數據需要以 0 x 開頭如果一個數據沒有加上任何的標識之前,默認就是十進制的數據。/*變量的方式:變量的方式一:數據類型 變量名;變量的方式二:了多個相同類型變量數據類型 變量名 1 , 變量 2.注意:1.2.變量是必須先再使用。在一個作用域中不能同名 的變量。*/*軟件 =數據 + 指令 + 文檔(使用者文檔+ 開發(fā)者文檔)文檔注釋與多行注釋的區(qū)別:多行注釋與文檔注釋的區(qū)別: 多行注釋的內容不能用于生成一個開發(fā)者文檔,而文檔注釋 的內容可以生產一個開發(fā)者文檔。使用 javadoc 開發(fā)工具即可生成一個開發(fā)者文檔
16、。javadoc 工具的使用格式:javadoc -d 存放文檔的路徑java 的源文件使用 javadoc 工具要注意細節(jié):如果一個類需要使用 javadoc 工具生成一個軟件的開發(fā)者文檔,那么該類必須使用public 修飾。文檔注釋注釋的內容一般都是位于類或者方法的上面的。寫注釋的規(guī)范:一般單行注釋是位于代碼的右側,多行注釋與文檔注釋一般是寫在類或者方法的上面的。*/*在現實生活中有很多數據是經常會發(fā)生變化 的。比如: 天氣 、 心情 、 時間、.變量: 變量就是在程序運行過程中其值可以發(fā)生變化的量.變量就是一個數據的容器。容器具備什么特點:1. 容量(大小)。2.一定格式的數據。3. 名
17、字.(定義)一個變量的格式:容量 變量名字 = 數據。變量名名規(guī)范: 首單詞小寫,其他單詞首字母大寫,其他小寫。java 表示一個變量的容量多大是使用了數據類型描述的。在 java 中 的數據類型主要有兩種數據類型基本數據類型數據類型java 中的八種基本數據類型:整數的數據類型:byte(字節(jié)) short(短整型)(整型)long(長整型)8 位(bit) 16bit 32bit64bit28 = 256-128127216 = 65536264 =注意: 如果一個整數沒有加上任何的標識的時候,那么默認是類型的數據。如果需要把該數據表示成一個 long 類型的數據,那么需要加數據后面加上
18、L 表示,L是不區(qū)分大小寫的,但是建議使用大寫。疑惑:整數可以使用四種數據類型,那么具體怎么選擇使用呢?選用數據類型的原則: 在能滿足需求的情況下,能小就小。節(jié)省內存空間。小數的數據類型:float(單精度浮點型)32bitdouble(雙精度浮點型)64bit注意:如果一個小數沒有加上任何標識的時候,那么該小數默認是 double 類型的數據,如果需要表示成 float 類型,那么需要在小數的后面加上f 表示。f 不區(qū)分大小寫的。類型:類型只有兩個 值,true 或者 false。1 字節(jié)或者 4 個字節(jié)如果使用如果使用 一個字節(jié)。一個基本類型的變量時,那么該變量占 4 個字節(jié),一個數組類型
19、 的時候,那么每個數組的元素占字符類型:char 2 字節(jié)(16bit)八種基本數據類型: 整數:byte short小數: float double:字符: charlong字符串的數據類型是:String數據類型,不屬于基本數據類型。*/Day03/*控制流程語句之(if)判斷語句if 判斷語句的格式:格式 1:適用于一種情況使用。if(判斷的條件)符合條件執(zhí)行的代碼;格式 2 : 適用于兩種情況下去使用的。if(判斷條件)符合條件執(zhí)行的代碼else不符合條件執(zhí)行的代碼;三元運算符的格式:表達式?值 1:值 2;if-else 與三元運算符非常像:三元運算符的優(yōu)點: 結構比較簡潔。三元運算
20、符的缺點: 符合條件必須要返回一個結果,不能執(zhí)行語句。格式三: 適用于多種情況下去使用的。if(判斷條件 1)符合條件 1 執(zhí)行的代碼else if(判斷條件 2)符合條件 2 執(zhí)行的代碼else if(判斷條件 3)符合條件 3 執(zhí)行的代碼.else都不符合上述 的條件執(zhí)行的代碼if 語句要注意的細節(jié):如果符合條件后只有一個語句需要執(zhí)行,那么可以省略大括號。但是建議不要省略,因為結構不清晰。if 語句的判斷條件后不能添加分號,否則會影響到執(zhí)行的效果的,需求 1:工作經驗要兩年或者兩年以上。需求 2:根據一個變量所的數字輸出對應的。 0 -天 1一*/*需求: 鍵盤錄入一個分數,根據分數輸出對
21、應的等級。比如: 100-90 A 等級89-80 B 等級E 等級接受鍵盤錄入數據的步驟:1.2.3.創(chuàng)建一個掃描器對象。調用掃描器對象的 next導入包。方法掃描數據。*/Importjava.util.*;/導入包Scanner scanner=new Scanner(System.in);score=scanner.nect();/定義一個變量接收掃描到的內容/*java 中的八種基本數據類型:整數:byte 、 short 、 long小數:float double字符:char:字符串的類型: String(數據類型)變量的方式:方式 1: 數據類型 變量名 = 數據;方式 2:數
22、據類型 變量名 1 , 變量名 2.;*/*數據類型轉換:小數據類型大數據類型自動類型轉換大數據類型小數據類型強制類型轉換強制類型轉換的格式:小數據類型 變量名 = (小數據類型)大數據類型數據類型轉換要注意的細節(jié):凡是 byte、short 、 char 數據類型數據在運算的時候都會自動轉換成數據再運算。兩個不同數據類型的數據在運算的時候,結果取決于大的數據類型。類型的*/*算術運算符:+ (正數、加法、連接符)連接符的作用: 讓任何的數據都可以與字符串進行拼接。如果+號用于字符串的時候,那么+號就是接符,并不是 做加能了。連接符要注意:任何類型的數據與字符串使用連接符連接,那么結果都是字符
23、串類型的數據。-*/ (除法)%(取模、取余數)*/*+ (自增) : 自增就是相當于操作數+1.前自增:+位于操作數的前面。 比如: +a;前自增:先自增,后使用。后自增: 先使用,后自增。*/*a = 0;/sum = +a; /前自增。 a = a+1 sum = a+; /后自增 sum = 0 , a, sum = a= a+1= + a); /1System.out.prln(sum= + sum+ a后自增在 jvm 的運行原理:因為后自增要使用 到沒有+1 之前 的值,那么 jvm 會先之前的值。一個變量用于保存沒有+1i = 0;i = temp;原理:1.2.3.temp
24、= i; /自增。 i = i+1;了一個臨時變量用于i = 1;了 i 沒有加 1 之前的值。temp 把用作了表達式 的結果。i 的值發(fā)生了幾次變化:i = 0 - 1- 0*/*自減: 操作數-1.前自減: -位于操作數的前面。-操作數前自減: 先自減,后使用。后自減:-位于操作數的后面。操作數-;后自減: 先使用,后自減。*/*賦值運算符:= (賦值運算符)+=-=*=/=%=*/*邏輯運算符 :邏輯運算符的作用是用于連接表達式的。& (與,并且)規(guī)律: 只有左右變量同時 為 true,那么結果才是 true,否則就為 false。| (或,或者)規(guī)律: 只要兩邊的表達式有一邊為 tr
25、ue,那么結果就為 true,只有兩邊同時為 false的時候,結果才是 false. (異或)規(guī)律: 只要兩邊的表達式 結果不一致,那么結果就為 true,如果左右兩邊 的表達式一致,那么就為 false.! (非)& (短路與雙與)短路與和單與符號的相同與不同點:相同點: 短路與和單與運算 的結果是一樣的。不同點: 使用短路與的時候,如果左邊的表達式,從而提高了效率。使用單與的時候,即使發(fā)現左邊的表達式的。表達式為 false,則不會在運算右邊的表達式為 false,還是會運算右邊的只有左邊的表達式為 false 時,雙與的效率才要高于單與的.| (短路或雙或)短路或與單或的相同點與不同點
26、:相同點:運算的結果是一致 的。不同點:使用短路或的時候,當發(fā)現左邊的表達式。表達式為 true 時,則不會運算右邊的使用單或的時候 發(fā)現左邊的表達式為 true,還是會運算右邊表達式。需求:要求兩年或兩年以上的工作經驗,大于 18 歲。*/*位運算符:位運算符就是直接操作二進制位的。&|(與)(或)(異或)規(guī)律: 如果操作數 A 連續(xù)異或同一個操作數兩次,那么結果還是操作數A。應用: 對數據加密. (取反)*/*比較運算符: 比較運算符的結果都是返回一個值的。= (判斷是否等于)=用于比較兩個基本數據類型數據的時候,比較的是兩個變量所的值是否一致.=用于比較兩個類型變量的數據時候,比較的是兩
27、個地址是否一致.類型變量所的內存!= (不等于) (大于)= (大于等于)= (小于等于)*/*移位運算符:()規(guī)律:一個操作數進行移 的位數.運算的時候,結果就是等于操作數乘以 2 的 n 次方,n 就是左31323(右移)規(guī)律:一個操作數在做右移運算的時候,實際上就是等于該操作數除以 2 的 n 次方,n 就是右移的位數。31 = 3 / 2(1)32 = 3 / 2(2)= 1= 0 。(無符號右移):無符號右移與右移的區(qū)別:進行右移運算的時候,如果操作數是一個正數,那么左邊的空使用 0 補,如果操作數是一個負數,那么左邊的空正數還是負數都使用 0 補。使用 1 補。而使用無符號右移的時
28、候,不管是筆試題目:使用最高的效率算出 2 乘以 8 的結果。2形式參數。 分數需求 2: 定義一個函數打印一個乘法表,不需要返回任何數據。返回值類型。 void未知的參數-形式參數。 到底是什么乘法表函數的特點:函數的作用就是把一個功能代碼給封裝起來,已達到提高功能代碼的復用性。函數定義好之后是需要被調用才會執(zhí)行的。如果一個函數沒有返回值返回給調用者,那么返回值類型必須是使用 void 表示。*/ /*函數的定義格式:修飾符 返回值類型 函數名(形式參數.)需要被封裝的功能代碼;return 結果;如何定義一個函數:返回值類型。是否存在未知的參數(是否存在要由調用者確定的參數)。形式參數*/
29、*控制流程語句之-if 判斷語句格式一: 只適用于一種情況下去使用。if(判斷條件)符合條件執(zhí)行的代碼;格式二:適用于兩種情況下去使用if(判斷條件)符合條件執(zhí)行的代碼else不符合條件執(zhí)行 的 代碼格式 3: 適用于多種情況使用的if(判斷條件 1)符合條件 1 執(zhí)行的 語句;else if(判斷條件 2)符合條件 2 執(zhí)行else if(判斷條件 3)符合條件 3 執(zhí)行else if(判斷條件 4)符合條件 4 執(zhí)行else的語句;的語句;的語句;都不符合上述 條件執(zhí)行的代碼.*/*控制流程語句之switch 選擇判斷語句switch 語句的格式:switch(你的選擇)case 值 1:
30、符合值 1 執(zhí)行的代碼break; case 值 2:符合值break; case 值 3:符合值break; case 值 4:符合值break;.2 執(zhí)行的代碼3 執(zhí)行的代碼4 執(zhí)行的代碼default:你的選擇都符合上述的選項時執(zhí)行的代碼; break;switch 語句要注意的事項:switch 語句使用的變量只能是 byte、 char、 short、 、 String 數據類型,String 數據類型是從jdk7.0 的時候開始支持的。case 后面跟 的數據必須是一個常量。switch 的停止條件:switch 語句一旦匹配上了其中的一個 case 語句,那么就會執(zhí)行對應的 ca
31、se 中的語句代碼,執(zhí)行完畢之后如果沒有遇到 break 關鍵字或者是結束 switch 語句的大括號,那么 switch 語句不會再判斷,按照代碼的順序從上往下執(zhí)行所有的代碼。直到遇到 break 或者是結束 siwitch 語句的大括號為止。4. 在 switch 語句中不管代碼的順序如何,永遠都是會先判斷 case 語句,然后沒有符合的情況下才會執(zhí)行 default 語句。if-else if-else if 語句與 switch 語句非常的相似:switch 語句的優(yōu)點:switch 語句的結構清晰。switch 缺點:如果 判斷的條件是一個區(qū)間范圍的,使用 switch 操作就非常的
32、麻煩了。判斷以下那些不是計算機語言( D)A javaB C#C javascriptD android*/*循環(huán)語句while 循環(huán)語句while 循環(huán) 語句的格式:while(循環(huán)的條件)循環(huán)語句;while 循環(huán)語句要注意的事項:while 循環(huán)語句一般是通過一個變量控制其循環(huán)的次數。while 循環(huán)語句的循環(huán)體代碼如果只有一個語句的時候,那么可以省略大括號。但是也是不建議大家省略。3. while 循環(huán)語句的判斷條件后面不能跟有分號,否則會影響到執(zhí)行的效果。需求: 在控制上打印五句o world.*/創(chuàng)建隨機數對象 Import java.util.*;Class Gamespubli
33、c sic void main(String args)Random random=new Random();randomNum=random.next(輸入隨機數長度);/定義一個變量來接收隨機數 Scanner scanner=new Scanner(System.in);While(true)gueum=scanner.next();/定義一個變量來接收猜測的數If(gueumrandomNum)System.out.prln(“猜大了”);else if(gueum對象面象的計算機語言: 找適合的對象做適合的事情。如何找適合的對象:1. sun 已經定義好了很多的類,象使用。只需要認識
34、這些類,就可以通過這些類創(chuàng)建對2. 自定義類,通過自定義類來創(chuàng)建對象使用。自定義類創(chuàng)建對象的三步驟:1. 自定義類。格式:class 類名事物的公共屬性使用成員變量描述。事物的公共行為使用函數描述。2. 通過自定義類創(chuàng)建對象。格式:類名 變量名 =new 類名();(設置)對象的屬性或者調用對象的功能。對象屬性的格式:對象.屬性名.設置對象的屬性:對象.屬性名 = 數據。調用對象的功能對象.函數名();3.*/*面象三大特征:封裝繼承3多態(tài)。需求: 使用 java 類描述百合網的會員。問題:有問題?根本原因: 由于其他人可以直接操作 sex 屬性。可以對 sex 屬性進行了直接的賦值。封裝:權
35、限修飾符:權限修飾符就是控制變量可見范圍的。public :公共的。 public 修飾的成員變量或者方法任何人都可以直接。private : 私有的, private 修飾的成員變量或者方法只能在本類中進行直接。封裝的步驟:使用 private 修飾需要被封裝的屬性。提供一個公共的方法設置或者獲取該私有的成員屬性。命名規(guī)范:set 屬性名();get 屬性名();疑問: 封裝一定要提供 get 或者 set 方法嗎?不一定, 根據需求而定的。規(guī)范 : 在現實開發(fā)中一般實體類的所有成員屬性(成員變量)都要封裝起來。實體類:實體類就是用于描述一類 事物的就稱作為實體類。工具類(Arrays 數組
36、的工具類):封裝的好處:提高數據的安全性。操作簡單。隱藏了實現。*/*成員變量與局部變量的區(qū)別:定義的位置上區(qū)別:成員變量是定義在方法之外,類之內的。局部變量是定義在方法之內。作用上的區(qū)別:成員變量的作用是用于描述一類事物的公共局部變量的作用就是提供一個變量給方法屬性的。而已。生命周期區(qū)別:1. 隨著對象 的創(chuàng)建而存在,隨著對象的而。2. 局部變量在調用了對應的方法時執(zhí)行到了創(chuàng)建該變量的語句時存在,局部變量一旦出了自己的作用域那么馬上從內存中。初始值的區(qū)別:1. 成員變量是有默認的初始值。數據類型默認的初始值00.0f0.0false 數據類型) nullfloatdoublecharStri
37、ng(2. 局部變量是沒有默認的初始值的,必須要先初始化才能使用。*/*對象:沒有類型變量指向的對象稱作為對象。需求: 使用 java 類描述一個學生類。對象要注意的事項:一般不會給對象賦予屬性值,因為永遠無法獲取到。1.2. 兩個對象永遠都不可能是同一個對象。對象好處:簡化書寫。對象的應用場景:1. 如果一個對象需要調用一個方法一次的時候,而調用完這個方法之后,該對象就不再使用了,這時候可以使用對象。2. 可以作為實參調用一個函數。*/Day07/*對象:真實存在的唯一的事物。類: 同一種類型的事物公共屬性與公共行為的抽取。java 面象語言: 找適合的對象做適合的事情.找對象的方式:方式一
38、: sun 已經定義好了很多了類,只需要認識這些類即可創(chuàng)建對象使用。方式二:需要自定義類,通過自定義類創(chuàng)建對象。在整理筆記的過程中對自己有疑問的概念使用代碼驗證或者它。自定義類三步驟:1. 自定義一個類。class 類事物 的公共屬性使用成員 變量描述事物的公共行為使用函數描述。2. 可以通過類創(chuàng)建對象。(設置)對象的屬性或者調用對象的方法。3.成員變量與局部變量 的區(qū)別:自定義的位置區(qū)別:成員變量是定義在方法之外,類之內的變量。2. 局部變量是2. 作用上的區(qū)別:在方法之內的變量。成員變量的作用描述一類事物的屬性。局部變量的作用是提供一個變量給方法生命周期的區(qū)別;成員變量隨著對象的創(chuàng)建而存在
39、,隨著對象的的。而。2. 局部變量是調用到了對應的方法執(zhí)行 到了創(chuàng)建該變量的語句時存在,一旦出了自己的作用域馬上從內存中。初始值的區(qū)別:成員變量是有默認的初始值的。局部變量是沒有默認的初始值的,必須要先初始化才能使用。對象: 沒有類型變量指向的對象就稱作為對象。對象要注意的細節(jié):1. 一般不會給對象的屬性賦值,因為永遠都沒法獲取到。2. 兩個對象永遠都不可能是同一個對象。對象好處:簡化書寫。對象的應用場景:如果調用一個對象的方法一次時,然后這個對象就不再使用,那么這時候可以使用對象??梢宰鳛閷崊⒄{用一個函數。封裝:封裝的步驟:使用 private 修飾需要被封裝的屬性.根據需要提供 get 或
40、者 set 方法設置以及獲取屬性。封裝的好處:提高了數據的安全性。操作簡單。隱藏了實現。注意:一般實體類的屬性都會封裝起來。*/*需求: 使用java 類描述一個動物。問題:存在同名的成員變量與局部變量時,在方法的內部的是局部變量(java 采取的是就近原則的機制的。)。this 關鍵字:this 關鍵字代表了所屬函數的調用者對象。this 關鍵字作用:1. 如果存在同名成員變量與局部變量時,在方法內部默認是局部變量的數據,可以通過 this 關鍵字指定成員變量的數據。2. 在一個構造函數中可以調用另外一個構造函數初始化對象。this 關鍵字調用其他的構造函數要注意的事項:1. this 關鍵
41、字調用其他的構造函數時,this 關鍵字必須要位于構造函數中 的第一個語句。2. this 關鍵字在構造函數中不能出現相用 的情況,因為是一個死循環(huán)。this 關鍵字要注意事項:1. 存在同名的成員變量與局部變量時,在方法的內部的是局部變量(java 采取的是“就近原則”的機制的。)2. 如果在一個方法中了一個變量,該變量只存在成員變量的情況下,那么 java 編譯器會在該變量的 前面添加this 關鍵字。*/*java 是 面象的語言: 萬物皆對象: 任何事物都可以使用類進行描述。需求: 使用java 類描述 一個嬰兒.在現實生活中有兩種嬰兒, 一種嬰兒一出生就具備了名字(白戶),還有一種嬰
42、兒就是之后才有名字 的(黑戶)。出生構造函數:構造函數的作用: 給對應的對象進行初始化。構造函數的定義的格式:修飾符 函數名(形式參數)函數體.構造函數要注意的細節(jié):構造函數 是沒有返回值類型的。構造函數的函數名必須要與類名一致。3. 構造函數并不是由對應的構造函數。手動調用的,而是在創(chuàng)建對應的對象時,jvm 就會主動調用到如果一個類沒有顯式的寫上一個構造方法時,那么 java 編譯器會為該類添加一個無參的構造函數的。如果一個類已經顯式的寫上一個構造方法時,那么 java 編譯器則 不會再為該類添加一個無參 的構造方法。構造函數是 可以在一個類中以函數重載 的形式存在多個 的。疑問:創(chuàng)建對象時
43、,jvm 就會調用到對應的構造方法,那么以前沒有學構造方法,那么以前創(chuàng)建對象時,jvm 是否 也會調用構造方法呢?如果有?構造方法從何而來呢?會調用, java 編譯器在編譯的 時候給加上去的。jdk 提供了一個java 開發(fā)工具(javxe)給進行反編譯的。javap 反編譯工具的使用格式:javap -c -l -private 類名疑問: java 編譯器添加 的無參構造方法的權限修飾符是 什么?與類的權限修飾是一致的。構造函數與普通 函數的區(qū)別:返回值類型的區(qū)別:構造函數是沒有返回值類型 的,普通函數是有返回值類型的,即使函數沒有返回值,返回值類型也要寫上 void。函數名的區(qū)別:構造
44、函數的函數名必須要與類名一致,普通函數的函數名只要符合標識符調用方式的區(qū)別:名規(guī)則即可。1. 構造函數是 在創(chuàng)建對象的時候由 jvm 調用的。2. 普通函數是由4. 作用上的區(qū)別:使用對象調用的,一個對象可以對象多次普通 的函數,構造函數 的作用用于初始化一個對象。普通函數是用于描述一類事物的公共行為的。*/*sic(靜態(tài)修飾符)1. sic 修飾成員變量 :如果有數據需要被共享給所有對象使用時,那么就可以使用sic 修飾。靜態(tài)成員變量的方式:方式 1: 可以使用對象進行格式: 對象.變量名。方式二: 可以使用類名進行格式: 類名.變量名;。注意:1. 非靜態(tài)的成員變量只能使用對象進行,不能使
45、用類名進行。2. 千萬不要為了方便數據而使用 sic 修飾成員變量,只有成員變量的數據是真正需要被共享的時候才使用 sic 修飾。sic 修飾成員變量的應用場景: 如果一個數據需要被所有對象共享使用的時候,這時候即可好實用sic 修飾。2. sic 修飾成員函數:*/*sic(靜態(tài))需求:描述一下傳智學生類。 都是.目前存在的問題:所有的學生都是中國 的,有 n 個學生就會有 n 份中國的 數據存內存中,這樣子會浪費內存。目前方案: 把“中國”這個數據移動 到數據共享區(qū)象使用即可。享這個數據給所有的 Student 對問題 2: 如何才能把這個數據移動 到數據共享區(qū)享呢?解決方案: 只需要使用
46、 sic 修飾該數據即可。靜態(tài)的成員變量只會在數據共享區(qū)中一份的。一份,而非靜態(tài)成員變量的數據會在每個對象中都*/*構造代碼塊:構造代碼塊的作用:給對象進行的初始化。構造函數的作用: 給對應的對象進行初始化。構造代碼塊的格式:構造代碼塊注意: 構造代碼塊的大括號必須位于成員 位置上。代碼塊的類別:構造代碼塊。局部代碼塊.大括號位于方法之內。 作用:縮短局部點點內存。靜態(tài)代碼塊 sic*/*構造 代碼塊要注意的事項:java 編譯器編譯一個java 源文件的時候,會把成員變量的前端。成員變量的初始化工作其實都在在構造函數中執(zhí)行的。變量 的生命周期,節(jié)省一語句提前至一個類的最一旦經過java 編譯
47、器編譯后,那么構造代碼塊的代碼塊就會被移動構造函數中執(zhí)行,是在構造函數之前執(zhí)行的,構造函數的中代碼是最后執(zhí)行 的。成員變量的顯示初始化與構造代碼塊 的代碼是按照當前代碼的順序執(zhí)行的。*/Day08/*構造函數:構造函數的作用: 初始化對應的對象。構造函數的格式:修飾符 函數名(形式參數)函數體構造函數要注意的事項:構造函數是沒有返回值類型的。構造函數的函數名是必須與類名一致。3. 構造函數不是由的對象傳遞的參數調用對應 的對象。手動調用的,是在創(chuàng)建了對應的對象時,jvm 會根據你創(chuàng)建如果一個類沒有顯示寫上一個構造函數的時候,那么 java 編譯器會為該類添加一個無參 的構造函數。如果一個類已經
48、顯示寫上一個構造函數的時候,那么 java 編譯器則不會再為該類添加一個無參 的構造函數。構造函數是可以以函數重載的形式存在多個。構造代碼塊:構造代碼塊的作用:給對象進行的初始化。構造代碼塊 的格式:代碼;構造代碼塊是在創(chuàng)建了代碼塊所屬類的對象時調用一次。this 關鍵字:this 關鍵字代表了所屬函數的調用者對象。this 關鍵字的作用:1.一個類中存在同名的成員變量與局部變量時,在方法的內部默認是局部 變量的,可以通過 this 關鍵字指定成員變量 的數據。2.this 關鍵字還可以在構造函數中調用另外一個構造函數初始化對象,this 關鍵字調用構造函數要注意的事項:1. this 關鍵字
49、調用其他 的構造函數時,必須要是在第一個語句。2. this 關鍵字調用構造函數時不能出現相用,因為是一個死循環(huán)。3. 如果在方法的內部一個變量時,該變量只存在于成員變量中,局部沒有沒有,這時候 java 編譯器會為該變量的前面添加 this 關鍵字。sic(靜態(tài)、修飾符)sic 修飾成員變量時:sic 修飾成員變量時,那么該成員變量的數據就是一個共享的數據.靜態(tài)成員變量的方式:方式一: 使用對象進行。對象.屬性名方式二:可以使用類名進行類名.屬性名。注意:1. 非靜態(tài)成員變量不能類名直接,只能使用對象進行。2. 千萬不要為了方便數據 時才使用 sic 修飾。成員變量而使用sic 修飾,一定要
50、是該數據是共享*/*sic(靜態(tài)、修飾符)sic 修飾成員變量時:sic 修飾成員變量時,那么該成員變量的數據就是一個共享的數據.靜態(tài)成員變量的方式:方式一: 使用對象進行對象.屬性名。方式二:可以使用類名進行類名.屬性名。注意:1. 非靜態(tài)成員變量不能類名直接,只能使用對象進行。2. 千萬不要為了方便數據 時才使用 sic 修飾。成員變量而使用sic 修飾,一定要是該數據是共享sic 修飾方法(靜態(tài)的成員方法):方式:方式一:可以使用對象進行。對象.靜態(tài)的函數名();方式二:可以使用類名進行。類名.靜態(tài)函數名字。使用是類名直接靜態(tài)的成員。靜態(tài)的成員變量與非靜態(tài)的成員變量的區(qū)別:1. 作用上的
51、區(qū)別:1. 靜態(tài)的成員變量的作用共個 數據給所有的對象使用。2. 非 靜態(tài)的成員變量的作用是描述一類事物的公共屬性。2. 數量與位置上的區(qū)別:1. 靜態(tài)成員變量是方法 區(qū)內存中,而且只會存在一份數據。非靜態(tài)的成員變量是生命周期的區(qū)別:在堆內存中,有 n 個對象就有 n 份數據。靜態(tài)的成員變量數據是隨著類的加載而存在,隨著類文件的非靜態(tài)的成員數據是隨著對象的創(chuàng)建而存在,隨著 對象被而?;厥掌骰厥斩?。靜態(tài)函數要注意的事項:1. 靜態(tài)函數是可以調用類名或者對象進行調用的,而非靜態(tài)函數只能使用對象進行調用。2. 靜態(tài)的函數可以直接靜態(tài)的成員,但是不能直接非靜態(tài)的成員。原因:靜態(tài)函數是可以使用類名直
52、接調用的,這時候可能還沒有存在對象,而非靜態(tài)的 成員數據是隨著對象 的存在而存在的。3. 非靜態(tài)的函數是可以直接靜態(tài)與非靜態(tài)的成員。原因:非靜態(tài)函數只能由對象調用,當對象存在的時候,靜態(tài)數據老早就已經存在了,而非靜態(tài)數據也隨著對象的創(chuàng)建而存在了。4. 靜態(tài)函數不能出現 this 或者 super 關鍵字。原因:因為靜態(tài)的函數是可以使用類名調用的,一旦使用類名調用這時候不存在對象,而 this關鍵字是代表了一個函數 的調用者對象,這時候產生了。靜態(tài)的數據的生命周期:靜態(tài)的成員變量數據是優(yōu)先于對象存在的。sic 什么時候修飾一個函數?如果一個函數沒有直接用于工具類型的方法到非靜態(tài)的成員時,那么就可
53、以使用 sic 修飾了。 一般靜態(tài)函數不能非靜態(tài)的成員?靜態(tài)函數只要存在有對象,那么也可以非 靜態(tài)的數據。只是不能直接而已。*/*main 函數的詳解:public : 公共的。 權限是最大,在任何情況下都可以。 private原因: 為了保證讓jvm 在任何情況下都可以到main 方法。sic:靜態(tài)。靜態(tài)可以讓jvm 調用main 函數的時候更加的方便。不需要通過對象調用。void:沒有返回值。 因為返回的數據是 給 jvm,而 jvm 使用這個數據是沒有意義的。所以就不要了。main: 函數名。名而已。注意: main 并不是關鍵字,只不過是 jvm 能識別的一個特殊的函數argument
54、s :擔心某些程序在啟動需要參數。*/*單例設計模式:保證一個類在內存中只有一個對象。模式:模式就是解決 一類 問題的固定步驟 。模式的概念最早于建筑行業(yè).建房子的步驟都是一樣子:打地基- 澆柱子-蓋樓面-砌墻-封頂-裝修入住軟件行業(yè)中 23 種設計模式:單例設計模式 模板設計模式 裝飾者設計模式觀察者設計模式工廠設計模式單例設計模式的步驟:餓漢單例設計模式構造函數。1.2.本類的類型變量,并且使用該變量指向本類對象。3. 提供一個公共靜態(tài)的方法獲取本類的對象。懶漢單例設計模式:構造函數。本類的類型變量,但是不要創(chuàng)建對象,1.2.3. 提供公共靜態(tài) 的方法獲取本類 的對象,獲取之前先判斷是否已
55、經創(chuàng)建了本類對象,如果已經創(chuàng)建了,那么直接返回對象即可,如果還沒有創(chuàng)建,那么先創(chuàng)建本類的對象,然后再返回。使用: 餓漢單例設計模式。 因為懶漢單例設計模式會存能保證一類在內存中只有一個對象。程安全問題,目前還不*/*目前的問題:父類的功能子類的需求。方法重寫的前提: 必須要存在繼承的關系。方法的重寫: 子父類出了同名的函數,這個就稱作為方法的重寫。什么是時候要使用方法的重寫:父類的功能子類的需求時。方法重寫要注意的事項:方法重寫時, 方法名與形參列表必須一致。方法重寫時,子類的權限修飾符必須要大于或者等于父類的權限修飾符。方法重寫時,子類的返回值類型必須要小于或者 等于父類的返回值類型。方法重
56、寫時, 子類拋出的異常類型要小于或者等于父類拋出的異常類型。Exception()RuntimeException(小壞)方法的重載:在一個類中 存在兩個或者兩個 以上的同名函數,稱作為方法重載。方法重載的要求函數名要一致。形參列表不一致(形參的個數或形參 的類型不一致)與返回值類型無關。*/.*super 關鍵字:super 關鍵字代表了父類空間的。super 關鍵字的 作用:1. 子父類存在著同名的成員時,在子類中默認是子類的成員,可以通過 super 關鍵字指定父類的成員。2. 創(chuàng)建子類對象時,默認會先調用父類無參的構造方法,可以通過 super 關鍵字指定調用父類的構造方法。super
57、 關鍵字調用父類構造方法要注意的事項:如果在子類的構造方法上沒有指定調用父類的構造方法,那么 java 編譯器會在子類的構造方法上面加上 super()語句。super 關鍵字調用父類的構造函數時,該語句必須要是子類構造函數中的第一個語句。super 與 this 關鍵字不能同時出現在同一個構造函數中調用其他的構造函數。因為兩個語句都需要第一個語句。super 關鍵字與 this 關鍵字的區(qū)別:1. 代表的事物不一致。1. super 關鍵字代表的是父類空間的。2. this 關鍵字代表的是所屬函數的調用者對象。使用前提不一致。super 關鍵字必須要有繼承關系才能使用。this 關鍵字不需要
58、存在繼承關系也可使用。調用構造函數的區(qū)別:super 關鍵字是調用父類的構造函數。this 關鍵字是調用本類的構造函數。*/*疑問: 為什么要調用父類的構造方法???這樣子做的意義在那?調用父類 的構造方法是可以初始化從父類繼承下去的屬性的。*/*instanceof 關鍵字instanceof 關鍵字的作用:判斷一個對象是否屬于指定的類別。instanceof 關鍵字的使用前提:判斷的對象與指定的類別必須要存在繼承或者實現的關系。instanceof 關鍵字的使用格式:對象 instanceof 類別instanceof 關鍵字的作用: 目前沒用。但是后天學習 到了多態(tài)之后就非常有用。一般做強
59、制類型轉換之前都會使用該關鍵字先判斷一把,然后在進行轉換的。*/*目前存在的問題:無法描述清楚這兩個類之間的繼承關系。存在著重復代碼。面象的三大特征:封裝繼承多態(tài).繼承:繼承是通過關鍵字 extends 體現的。繼承的格式:class 類名 1 extends 類名 2繼承要注意的事項:千萬不要為了減少重復代碼而去繼承,只有真正存在著繼承關系的時候才去繼承。父類私有的成員不能被繼承。父類的構造函數不能被繼承。創(chuàng)建子類對象時默認會先調用父類無參的構造函數。*/Day09復習/*sic(靜態(tài)、修飾符)sic 修飾成員變量: 如果一個成員變量使用sic 修飾,那么該成員變量的數據就是一個共享 的數據
60、.,、靜態(tài)成員變量的方式方式一:可以使用對象對象.屬性名方式二:可以使用類名類名.屬性名。注意:1. 非靜態(tài)成員變量不能使用類名直接,要使用對象.2. 千萬不要為了時候才使用sic 修飾。方便而使用sic 修飾。一定要數據真正是需要被共享的sic 修飾成員函數:靜態(tài)函數的方式方式一:可以使用對象對象.屬性名。方式二:可以使用類名類名.屬性名。使用類名靜態(tài)的成員。靜態(tài)函數要注意的細節(jié):1. 非靜態(tài)函數只能由對象調用,靜態(tài)函數可以由類名或者對象進行調用。靜態(tài)函數中不能直接非靜態(tài)函數可以直接非靜態(tài)成員,可以直接靜態(tài)的成員。非靜態(tài)成員以及可以直接靜態(tài)的成員。4. 靜態(tài)函數中不能出現this 或者 su
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 有機化學原料的工藝參數監(jiān)測與控制考核試卷
- 棉花加工能耗與節(jié)能技術考核試卷
- 智能安全監(jiān)控系統(tǒng)的集成與實施考核試卷
- 安徽省長豐縣2024-2025學年高中政治 第六課 第一框 人的認識從何而來教學實錄 新人教版必修4
- 職場經驗分享與反思計劃
- Unit 6 Meet my family Part B Let's talk Let's learn大單元整體教學設計表格式-2024-2025學年人教PEP版英語四年級上冊
- 秋季學期教學研究課題計劃
- 發(fā)貨準確率提升計劃
- 提高社團凝聚力的方法計劃
- 構建幸福職場的實現路徑計劃
- 冀教版數學四年級(下冊)觀察物體(二)第2課時 觀察立體
- 2024年中國科學技術大學少年創(chuàng)新班數學試題真題(答案詳解)
- 中職統(tǒng)編《金屬材料與熱處理》系列課件 第4章 非合金鋼(動畫) 云天系列課件
- 小升初時態(tài)專題復習-一般過去時態(tài)(講義)人教PEP版英語六年級下冊
- PCB電路板的手工焊接技術培訓
- 左肺占位術后護理查房
- RCA根本原因分析法在護理不良事件中的應用課件
- 港口物流 第3版 課件全套 第1-13章 港口物流發(fā)展歷史-保稅物流
- 免疫工程與炎癥疾病
- YMO青少年數學思維26屆二年級全國總決賽試卷
- 考勤補卡申請
評論
0/150
提交評論