韓順平j(luò)ava從入門到精通視頻教程(全94講)學(xué)習(xí)筆記整理(齊全)
《韓順平j(luò)ava從入門到精通視頻教程(全94講)學(xué)習(xí)筆記整理(齊全)》由會(huì)員分享,可在線閱讀,更多相關(guān)《韓順平j(luò)ava從入門到精通視頻教程(全94講)學(xué)習(xí)筆記整理(齊全)(451頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 1 451 注 筆記中所有示例都能正常通過編譯 java 平臺(tái) 1 J2SE java 開發(fā)平臺(tái)標(biāo)準(zhǔn)版 2 J2EE java 開發(fā)平臺(tái)企業(yè)版 java 程序需要在虛擬機(jī)上才可以運(yùn)行 換言之只要有虛擬機(jī)的系統(tǒng)都可以運(yùn)行 java 程序 不同系統(tǒng)上要安裝對(duì)應(yīng)的虛擬機(jī)才可以運(yùn)行 java 程序 開發(fā)步驟 1 編寫源文件 java 2 編譯源文件為類文件 class 可用 J2SE 或 J2EE 編譯 3 在虛擬機(jī)上運(yùn)行 注釋 單行注釋 多行注釋 java 內(nèi)容介紹 java 編程可以分成三個(gè)方向 1 java se j2se 桌面開發(fā) java 中的基礎(chǔ)中的基礎(chǔ) 2 java ee j2ee web 開發(fā) 3 java me j2me 手機(jī)開發(fā) java se 課程介紹 java 面向?qū)ο缶幊?基礎(chǔ) java 圖開界面開發(fā) java 數(shù)據(jù)庫編程 java 文件 io 流編程 java 網(wǎng)絡(luò)編程 java 多線程編程 java ee 基礎(chǔ) 1 java 面向?qū)ο缶幊?數(shù)據(jù)庫編程 java se java 基礎(chǔ) 2 html css javascript div css java ee 中級(jí)部分 Servlet Jsp mvc 模式 java ee 高級(jí)部分 Struts Ejb Hibernate Spring Ajax ext dw2 ssh 框架 java 之父 gosling 1990 sun 啟動(dòng) 綠色計(jì)劃 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 2 451 注 筆記中所有示例都能正常通過編譯 1992 創(chuàng)建 oak 語言 java 1994 gosling 參加硅谷大會(huì)演示 java 功能 震驚世界 1995 sun 正式發(fā)布 java 第一個(gè)版本 目前最新是 jdk7 0 java 開發(fā)工具 記事本 jcreator jbuilder 退出舞臺(tái)了 netbean eclipse 如何選擇開發(fā)工具 先選擇記事本 對(duì) java 有一定了解后再使用 eclipse 高級(jí)開發(fā)工具 為什么呢 1 更深刻的理解 java 技術(shù) 培養(yǎng)代碼感 2 有利于公司面試 java 語言的特點(diǎn) 1 java 語言是簡單的 2 java 語言是面向?qū)ο蟮?3 java 語言是跨平臺(tái) 操作系統(tǒng) 的 即一次編譯 到處運(yùn)行 4 java 是高性能的 java 第一個(gè)程序 hello java 運(yùn)行 java 程序要安裝和配置 jdk jdk 是什么 1 jdk 全稱 java dvevlopment kit 中文 java 開發(fā)工具包 2 jdk 是 sun 公司開發(fā)的 3 jdk 包括 jre java runtime envirnment java 運(yùn)行環(huán)境 一堆 java 工具和 java 基礎(chǔ) 的類庫 類共 3600 左右 常用類在 150 個(gè)左右 4 可以在 下載 開發(fā)安裝 jdk 用戶執(zhí)行需要安裝 jre 配置 JDK 添加環(huán)境變量即可 windows 下配置 jdk 在計(jì)算機(jī)屬性 高級(jí)設(shè)置 環(huán)境變量 添加 PATH 將 JDK 所在路徑指定即可 多個(gè)環(huán)境變量 設(shè)置時(shí)需要用 號(hào)進(jìn)行隔開 1 編寫第一個(gè) hello java 注釋 解釋 作者 功能 在控制臺(tái)顯示 hello 日期 2013 11 28 public 表示這個(gè)類是公共的 一個(gè) java 文件中只能有一個(gè) public 類 class 表示這是一個(gè)類 hello 類名 公共類的類名必須和文件名一致 public class hello 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 3 451 注 筆記中所有示例都能正常通過編譯 一個(gè)主函數(shù) 相當(dāng)于是程序的入口 public static void main String args 執(zhí)行語句 System 是一個(gè)包 out println 是輸入函數(shù) System out println hello 2 編譯 hello java 使用 javac hello java 3 執(zhí)行 hello java 使用 java hello java 程序運(yùn)行關(guān)系 1 java 源文件 java 文件 2 java 編譯器即 javac exe 3 java 字節(jié)碼文件 class 文件 4 由解釋執(zhí)行器即 java exe 將字節(jié)碼文件加載到 java 虛擬器 jvm 5 字節(jié)碼文件 class 就會(huì)在 java 虛擬機(jī)中執(zhí)行 對(duì) hello java 程序進(jìn)行改過使之變?yōu)橐粋€(gè)簡單的加法運(yùn)算程序 注釋 解釋 作者 功能 在控制臺(tái)顯示 hello 日期 2013 11 28 public 表示這個(gè)類是公共的 一個(gè) java 文件中只能有一個(gè) public 類 class 表示這是一個(gè)類 jiafa 類名 公共類的類名必須和文件名一致 public class jiafa 一個(gè)主函數(shù) 相當(dāng)于是程序的入口 public static void main String args 執(zhí)行語句 System 是一個(gè)包 out println 是輸入函數(shù) System out println hello int a 10 定義一個(gè)變量 變量名 a 它的值 10 int b 20 定義一個(gè)變量 變量名 b 它的值 20 int result a b 定義一個(gè)叫 result 變量將變量 ab 相加的值賦值給 result 輸出結(jié)果 System out println 結(jié)果是 result 為什么有變量 不論是使用哪種高級(jí)程序語言編寫程序 變量都是其程序的基本組成單位 java 中的基本 數(shù)據(jù)類型的定義與 c c 中大體一致 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 4 451 注 筆記中所有示例都能正常通過編譯 public class Test public static void main String args int a 1 定義一個(gè)整形變量 取名 a 并賦初值 1 int b 3 定義一個(gè)整形變量 取名 b 并賦初值 3 b 89 給變量 b 賦 89 System out println a 輸出語句 把變量 a 的值輸出 System out println b 把變量 b 的值輸出 java 基本語法 基本數(shù)據(jù)類型 java 基本數(shù)據(jù)類型 四大類型 整數(shù)類型 小數(shù) 浮點(diǎn) 類型 布爾類型 字符類型 整數(shù)類型 可以表示一個(gè)整數(shù) 常用的整數(shù)類型有 byte short int long 主要區(qū)別是 數(shù)據(jù)大小范圍 請(qǐng)大家看一個(gè)小案例 byte 占用內(nèi)存 一個(gè)字節(jié) 范圍 128 至 127 short 占用內(nèi)存 兩個(gè)字節(jié) 范圍 32768 至 32767 int 占用內(nèi)存 四個(gè)字節(jié) 范圍 2147483648 至 2147483647 long 占用內(nèi)存 八個(gè)字節(jié) 范圍 至 小數(shù) 浮點(diǎn) 類型 可以表示一個(gè)小數(shù) 常用的小數(shù) 浮點(diǎn) 類型有 float 單精度 double 雙精度 float 占用內(nèi)存 四個(gè)字節(jié) 范圍 3 4E 38 至 3 4E 38 只能提供 7 位有效數(shù)字 double 占用內(nèi)存 八個(gè)字節(jié) 范圍 1 7E 308 至 1 7E 308 可提供 16 位有效數(shù)字 布爾類型 可以表示 真 或者 假 類型是 boolean 比如 boolean spBool true 給變量 spBool 定義為 boolean 型并賦值為真 字符類型 可以表示 單個(gè)字符 字符類型是 char char 是兩個(gè)字節(jié) 可以存放漢字 多個(gè)字符我們稱為字符串 在 java 中 String 這種數(shù)據(jù)類型表示 但是 String 不是基本數(shù) 據(jù)類型 而是類 類是復(fù)合數(shù)據(jù)類型 結(jié)論 在 java 中 對(duì) char 進(jìn)行運(yùn)算的時(shí)候 直接當(dāng)做 ascii 碼對(duì)應(yīng)的整數(shù)對(duì)待 思考 int test1 a b 輸出值 195 char test2 a b 輸出值 char test3 中 輸出值 195 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 5 451 注 筆記中所有示例都能正常通過編譯 java 基本語法 定義變量 初始化 賦值 定義變量 1 什么是定義變量 int a 這就是定義了一個(gè)變量 變量名是 a float haha 這也定義了一個(gè)變量 表示一個(gè) float 類型的小數(shù) 變量名是 haha 初始化變量 在定義變量的時(shí)候 就給值 int a 45 這就是初始化變量 a 給變量賦值 比如你先定義了變量 int tt 然后再給值 tt 780 這就是給變量賦值 java 基本語法 基本數(shù)據(jù)類型轉(zhuǎn)換 自動(dòng)轉(zhuǎn)換 int a 1 2 double b 3 結(jié)論 數(shù)據(jù)類型可以自動(dòng)的從低精度 高精度 高精度不能轉(zhuǎn)為低精度 byte 小于 short 小于 int 小于 long 小于 float 小于大于 3 大于等于 5 b System out println ok2 if a b System out println ok3 請(qǐng)編寫一個(gè)程序 該程序可以接收兩個(gè)數(shù) 可以是整數(shù) 也可是小數(shù) 并判斷兩個(gè)數(shù)是大于 小于 還是等于 程序代碼 import java io 載入 IO 流包 public class Demo5 public static void main String args try 輸入流 從鍵盤接收數(shù) InputStreamReader isr new InputStreamReader System in BufferedReader br new BufferedReader isr 給出提示 System out println 請(qǐng)輸入第一個(gè)數(shù) 從控制臺(tái)讀取一行數(shù)據(jù) String a1 br readLine System out println 請(qǐng)輸入第二個(gè)數(shù) String a2 br readLine 把 String 轉(zhuǎn)為 float float num1 Float parseFloat a1 float num2 Float parseFloat a2 if num1 num2 System out println 第一個(gè)大 if num1 num2 System out println 相等 if num18 System out println ok1 b if a b if a b System out println ok3 java 基本語法 三大流程控制 順序控制 聽其名而知其意 讓程序可以順序的執(zhí)行 請(qǐng)大家看個(gè)案例 demo11 java int a 7 System out println a a System out println hello a System out println a a System out println 0 0 a System out println a a 分支控制 讓程序有選擇的執(zhí)行 分支控制有三種 1 單分支 2 雙分支 3 多分支 a 1 單分支語法 if 條件表達(dá)式 語句 2 雙分支語法 if 條件表達(dá)式 語句 else 語句 3 1 多分支語法 if 條件表達(dá)式 語句 else if 條件表達(dá)式 語句 else if 條件表達(dá)式 語句 else 語句 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 9 451 注 筆記中所有示例都能正常通過編譯 3 2 多分支語法 switch 條件表達(dá)式 條件表達(dá)式數(shù)據(jù)類型 就和 case 常量表達(dá)式一致 否則 就會(huì)報(bào)錯(cuò) case 常量 1 語句 1 語句 1 至 break 中相當(dāng)于 可以加入相應(yīng)程序代碼 break break 表示跳出 switch 語句 case 常量 2 語句 1 break case 常量 n 語句 n break default 語句 break switch 中的可用數(shù)據(jù)類型主要是 允許 byte short int char enum 等 1 單分支控制作業(yè) 請(qǐng)大家看個(gè)案例 demo22 java 編寫一個(gè)程序 可以輸入人的年齡 如果該同學(xué)的年齡大于 18 歲 則輸出 你年齡大于 18 要為自己的行為負(fù)責(zé) 2 雙分支控制作業(yè) 請(qǐng)大家看個(gè)案例 demo33 java 編寫一個(gè)程序 可以輸入人的年齡 如果該同志的年齡大于 18 歲 則輸出 你年齡大于 18 歲 要對(duì)自己的行為負(fù)責(zé) 否則 輸出 你的年齡不大這次放過你了 3 多分支控制作業(yè) 請(qǐng)大家看個(gè)案例 demo44 java 編寫一個(gè)程序 可以輸入人的年齡 如果該同志的年齡大于 18 歲 則輸出 你年齡大于 18 要對(duì)自己的行業(yè)負(fù)責(zé) 送入監(jiān)獄 如果該同志的年齡大于 10 歲并且小于等于 18 則 輸出 你的年齡也不小了 把你送少管所 其它情況 則輸出 小孩子 下次注意 4 多分支控制作業(yè) 請(qǐng)大家看個(gè)案例 demo55 java 請(qǐng)編寫一個(gè)程序 該程序可以接收一個(gè)字符 比如 a b c d e f g a 表示星期一 b 表示星期二 根據(jù)用戶的輸入顯示相應(yīng)的信息 要求使用 switch 語句完 成 5 多分支控制作業(yè) 請(qǐng)大家看個(gè)案例 demo66 java 對(duì)比 switch 與 if 語句在執(zhí)行分支語句的區(qū)別 switch 分支語句不支持判斷類型即 boolean 類型 switch 只支持 byte short int char enum 等數(shù)據(jù)類型 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 10 451 注 筆記中所有示例都能正常通過編譯 循環(huán)控制 聽其名而知其意 就是讓你的代碼可以循環(huán)的執(zhí)行 循環(huán)控制有三種 1 for 循環(huán) 語法 for 循環(huán)初值 循環(huán)條件 步長 語句 循環(huán)體 2 while 循環(huán) 語法 while 循環(huán)條件 語句 循環(huán)體 特別說明 while 循環(huán)是先判斷在執(zhí)行語句 3 do while 循環(huán) 語法 do 語句 循環(huán)體 while 循環(huán)條件 特別說明 do while 循環(huán)是先執(zhí)行 再判斷 請(qǐng)大家看個(gè)案例 demo77 88 99 java 編寫一個(gè)程序 可以打印 10 句 你好 我是劉德華同志 請(qǐng)大家想想怎么做 1 for 循環(huán) for int a 0 a 10 a System out println 你好 我是劉德華同志 2 while 循環(huán) int i 0 while i 10 System out println 你好 我是劉德華同志 i 3 do while 循環(huán) int i 0 do System out println 你好 我是劉德華同志 i while i打四次 int lay 4 表示有多少層 for int i 1 i lay i 打印 for int j 1 j i j System out print 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 11 451 注 筆記中所有示例都能正常通過編譯 System out println 換行 金字塔 Demo101 java public class Demo101 public static void main String args int lay 10 表示有多少層 for int i 1 i3 2 2 3 1 4 0 找出空格 for int k 1 k1 2 3 3 5 4 7 找出星的規(guī)律 for int j 1 j i 1 2 1 j System out print System out println 換行 鏤空金字塔 Demo102 java public class Demo102 public static void main String args int lay 10 表示有多少層 for int i 1 i3 2 2 3 1 4 0 找出空格 for int k 1 k1 2 3 3 5 4 7 找出星的規(guī)律 for int j 1 j i 1 2 1 j 判斷該層是否是頂層或者是底層 if i 1 i lay System out print else 如果是第一個(gè) 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 12 451 注 筆記中所有示例都能正常通過編譯 if j 1 j i 1 2 1 System out print else System out print System out println 換行 空心菱形 Demo103 java public class Demo103 public static void main String args int lay 4 菱形上半部行數(shù) for int i 1 i lay 1 i 判斷循環(huán)上半部分 for int k 1 k lay i k 找行內(nèi) 號(hào)前輸出空格 System out print for int j 1 j i 1 2 1 j 找行內(nèi)輸出星的位置 if j 1 j i 1 2 1 判斷行最小長度和最大長度 并在最小長 度和最大長度上輸出 號(hào) 行內(nèi)輸入出空格 System out print else System out print System out println 換行 for int i 1 i lay i 判斷循環(huán)菱形下半部分 for int k 1 k i 1 k 判斷循環(huán)找 號(hào)前要輸出空格處 System out print for int j 1 j lay i 2 1 j 判斷循環(huán)行長度 if j 1 j lay i 2 1 判斷行最小長度和最大長度 并在最小 長度和最大長度上輸出 號(hào) 行內(nèi)輸入出空格 System out print else System out print System out println 輸出換行 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 13 451 注 筆記中所有示例都能正常通過編譯 實(shí)心菱形 Demo104 java public class Demo104 public static void main String args int lay 4 菱形上半部行數(shù) for int i 1 i lay 1 i 判斷循環(huán)上半部分 for int k 1 k lay i k 找行內(nèi) 號(hào)前輸出空格 System out print for int j 1 j i 1 2 1 j 找行內(nèi)輸出星的位置 System out print System out println 換行 for int i 1 i lay i 判斷循環(huán)菱形下半部分 for int k 1 k i 1 k 判斷循環(huán)找 號(hào)前要輸出空格處 System out print for int j 1 j貓類 對(duì)象 實(shí)例 對(duì)象 實(shí)例 注意 從貓類到對(duì)象 目前有幾種說法 1 創(chuàng)建一個(gè)對(duì)象 2 實(shí)例化一個(gè)對(duì)象 3 對(duì)類 實(shí)例化 以后大家聽到這些說法 不要模糊 對(duì)象就是實(shí)例 實(shí)例就是對(duì)象 java 最大 的特點(diǎn)就是面向?qū)ο?定義貓類 public class Demo105 public static void main String args 創(chuàng)建一個(gè)貓對(duì)象 Cat cat1 new Cat Cat 是定義的一個(gè)數(shù)據(jù)類型 Cat cat1 cat1 new Cat 等同于 Cat cat1 new Cat 訪問屬性的 對(duì)象名 屬性名字 cat1 age 3 cat1 name 小白 cat1 color 白色 創(chuàng)建第二只貓 Cat cat2 new Cat 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 15 451 注 筆記中所有示例都能正常通過編譯 cat2 age 100 cat2 name 小花 cat2 color 花色 java 中如何定義一個(gè)類 類名的首寫字母大寫 可根據(jù)程序的需要定義類 class Cat 下面的就是類的成員變量 屬性 int agr String name String color Master myMaster 引用類型 比如建個(gè)主人類 class Master int age String name String address 類和對(duì)象的區(qū)別和聯(lián)系 1 類是抽象的 概念的 代表一類事物 比如人類 貓類 2 對(duì)象是具體的 實(shí)際的 代表一個(gè)具體事物 3 類對(duì)象的模板 對(duì)象是類的一個(gè)個(gè)體 實(shí)例 類 如何定義類 一個(gè)全面的類定義比較復(fù)雜 如 package 包名 class 類名 extends 父類 implements 接口名 成員變量 構(gòu)造方法 成員方法 要透徹的掌握類 必須要了解類的構(gòu)成 class 類名 待定 成員變量 類 類的成員變量 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 16 451 注 筆記中所有示例都能正常通過編譯 成員變量是類的一個(gè)組成部分 一般是基本數(shù)據(jù)類型 也可是引用類型 比如我們前面定 義貓類的 int age 就是成員變量 對(duì)象 如何創(chuàng)建對(duì)象 創(chuàng)建一個(gè)對(duì)象有兩種方法 1 先聲明再創(chuàng)建 1 對(duì)象聲明 類名 對(duì)象名 2 對(duì)象創(chuàng)建 對(duì)象名 new 類名 2 一步到位法 類名 對(duì)象名 new 類名 對(duì)象 如何訪問 使用 對(duì)象的成員變量 對(duì)象名 變量名 簡單先這樣理解 以后加下控制符此表達(dá)就不準(zhǔn)確了 對(duì)象總是存在內(nèi)存中的 一個(gè)小思考題 Demo 105 java 為了讓大家加深印象 我們定義一個(gè)人類 Person 包括名字 年齡 用一步到位法去創(chuàng) 建一個(gè)對(duì)象 我們看看下面一段代碼 System out printlin b age Person a new Person 請(qǐng)問 b age 究竟是多少 a age 10 a name 小明 Person b b a 對(duì)象總是存在內(nèi)存中的 一個(gè)小思考題 Demo106 java 在明白對(duì)象是如何在內(nèi)存中存在后 請(qǐng)大家再看看下面的思考題 請(qǐng)問會(huì)輸出什么信息 Person1 a new Person1 a age 10 a name 小明 Person1 b b a System out println b name 輸出 小明 b age 200 System out println a age 輸出 a age 為 200 重點(diǎn)也是難點(diǎn) 類 成員方法的初步介紹 在某些情況下 我們要需要定義成員方法 比如人類 除了有一些屬性外 成員變量表示的 年齡 姓名 我們?nèi)祟愡€有一些行為比如 可以說話 跑步 通過學(xué)習(xí) 我們?nèi)祟?韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 17 451 注 筆記中所有示例都能正常通過編譯 還可以做算術(shù)題 這時(shí)就要用成員方法才能完成 現(xiàn)在要求對(duì) Person 類完善 1 添加 speak 成員方法 輸入出 我是一個(gè)好人 2 添加 jisuan 成員方法 可以計(jì)算從 1 1000 的結(jié)果 3 修改 jisuan 成員方法 該方法可以接收一個(gè)數(shù) n 計(jì)算從 1 n 的結(jié)果 4 添加 add 成員方法 可以計(jì)算兩個(gè)數(shù)的和 類 類的成員方法 成員函數(shù) 定義 成員方法也叫成員函數(shù) 這里希望大家不要被兩個(gè)名詞搞暈了 public 返回?cái)?shù)據(jù)類型 方法名 參數(shù)列表 語句 方法 函數(shù) 主體 1 參數(shù)列表 表示成員函數(shù)輸入 2 數(shù)據(jù)類型 返回類型 表示成員函數(shù)輸出 3 函數(shù)主體 表示為了實(shí)現(xiàn)某一功能代碼塊 類的調(diào)用及方法調(diào)用 Demo108 java public class Demo108 public static void main String args Person p1 new Person p1 speak 調(diào)用 speak 方法 p1 jiSuan 調(diào)用計(jì)算方法 p1 jiSuan 200 調(diào)用可以傳入?yún)?shù)的計(jì)算方法 p1 add 12 10 調(diào)用兩個(gè)數(shù)的和 int res p1 add2 23 34 調(diào)用兩個(gè)數(shù)的和并返回值到 res 中 System out println res 返回值是 res System out println num1 num2 num3 p1 add3 2 2 3f 4 5f 返回類型一定要 一致否則報(bào)錯(cuò) 定義名字的幾個(gè)方法 1 駝峰法 如 myCry 2 下劃線法 my cry 方法名在有不同參數(shù)的情況下可以使用同一個(gè)方法名 即有參數(shù)和沒參數(shù)的方法可以同 名 class Person 請(qǐng)注意類名首寫字母應(yīng)為大寫如 Person 為類名 int age String name 1 可以輸出我是好人方法 public void speak 請(qǐng)注意方法名的首寫字母應(yīng)為小寫如 speak 為方法名 System out println 我是一個(gè)好人 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 18 451 注 筆記中所有示例都能正常通過編譯 2 可以計(jì)算 1 1000 的方法 public void jiSuan int result 0 for int i 1 i 1000 i result result i System out println 1 1000 結(jié)果是 result 3 帶參數(shù)的成員方法 可以輸入 n 值并計(jì)算 1 n public void jiSuan int n int result 0 for int i 1 i n i result i System out println 1 n 結(jié)果是 result 4 計(jì)算兩個(gè)數(shù)的和 public void add int num1 int num2 int result 0 與下面一句等同于 return num1 num2 result num1 num2 System out println num1 num2 result 5 計(jì)算兩個(gè)數(shù)的和 并將結(jié)果返回給主調(diào) 調(diào)用它的 函數(shù) 注意 返回類型和返回結(jié)果的類型要一致 注意 在調(diào)用某個(gè)成員方法的時(shí)候 給出的具體數(shù)值的個(gè)數(shù) 和類型要相匹配 public int add2 int num1 int num2 return num1 num2 6 計(jì)算兩個(gè) float 數(shù)的和 并將結(jié)果返給主調(diào)函數(shù) public float add3 int num1 float num2 float num3 return num1 num2 num3 類 類的成員方法 函數(shù) 如何理解 如何理解方法這個(gè)概念 給大家舉個(gè)通俗的示例 程序員調(diào)用方法 給方法必要的輸入 方法返回結(jié)果 類的成員方法 聲明 public int test int a 方法聲明 這句話的作用是聲明該方法 聲明的格式為 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 19 451 注 筆記中所有示例都能正常通過編譯 訪問修飾符 數(shù)據(jù)類型 函數(shù)名 參數(shù)列表 在給 Person 類添加 add 方法的例題中 我們看到的關(guān)鍵字 return 它的功能是把表達(dá)式 的值返回的值返回給主調(diào)函數(shù)的方法 return 表達(dá)式 類的成員方法 函數(shù) 特別說明 1 方法的參數(shù)列表可以是多個(gè) 案例 在 Person 類中編寫一個(gè)成員方法 從鍵盤輸入三個(gè)數(shù) 返回最大的那個(gè)數(shù) 參數(shù)列表可以是多個(gè) 并且數(shù)據(jù)類型可以是任意的類型 int float double char 訪問修飾符 返回?cái)?shù)據(jù)類型 函數(shù)名 參數(shù)列表 語句 函數(shù)主體 2 方法可以沒有返回值 案例 編寫一個(gè)函數(shù) 從控制臺(tái)輸入一個(gè)整數(shù)打印出對(duì)應(yīng)的金字塔 返回類型可以是任意的數(shù)據(jù)類型 int float double char 也可以沒有返回值 void 表示 沒有返回值 訪問修飾符 返回?cái)?shù)據(jù)類型 函數(shù)名 形參列表 語句 函數(shù)主體 類的成員方法 函數(shù) 小練習(xí) 案例 編寫一個(gè)成員函數(shù) 從鍵盤輸入一個(gè)整數(shù) 1 9 打印出對(duì)應(yīng)的乘法表 Demo110 java 實(shí)例鍵盤輸入打印乘法表 Demo110 java import java io public class Demo110 public static void main String args Cfb jiu new Cfb jiu cf class Cfb public void cf try 輸入流 從鍵盤接收數(shù) InputStreamReader isr new InputStreamReader System in BufferedReader br new BufferedReader isr 給出提示 System out println 請(qǐng)輸入 1 9 按 0 退出 從控制臺(tái)讀取一行數(shù)據(jù) String a1 br readLine 把 String 轉(zhuǎn)為 int 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 20 451 注 筆記中所有示例都能正常通過編譯 int num1 Integer decode a1 for int i 1 i num1 i for int j 1 j父 子 孫 3 JDK6 中有 202 個(gè)包 3777 個(gè)類 接口 異常 枚舉 注釋和錯(cuò)誤 4 在做開發(fā)的時(shí)候 強(qiáng)烈建議大家多查 jdk 幫助文檔 5 在使用類時(shí) 實(shí)在不知道怎么辦 多使用搜索引擎 定義類的改進(jìn) 在提出包后 我們類的定義就更加完善了 class 類名 class 類名 class 類名 package 包名 成員變量 成員變量 成員變量 class 類名 成員方法 構(gòu)造方法 成員變量 成員方法 構(gòu)造方法 成員方法 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 32 451 注 筆記中所有示例都能正常通過編譯 package 包名 class 類名 extends 父類 待定 成員變量 構(gòu)造方法 成員方法 java 面向?qū)ο缶幊?2 方法重載 overload 方法重載 overload 按順序 我們應(yīng)該講解多態(tài) 但是在講解多態(tài)前 我們必須講解方法重載和方法覆蓋 override 請(qǐng)編寫一個(gè)類 Abc 編寫方法可以接收兩個(gè)整數(shù) 返回兩個(gè)數(shù)中較大的數(shù) Demo119 java 方法重載 overload getMax public class Demo119 public static void main String args Abc2 abc1 new Abc2 System out println abc1 getMax 12 14 System out println abc1 getMax 24f 20f class Abc2 返回較大的整數(shù) public int getMax int i int j if i j return i else return j public float getMax float a float b if a b return a else return b 如果只是返回類型不一樣 能否構(gòu)成重載 不能夠構(gòu)成重載 public double getMax float d double c if c d return c 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 33 451 注 筆記中所有示例都能正常通過編譯 else return d 如果只是控制訪問修飾符不同 能否構(gòu)成重載 不能夠構(gòu)成重載 protected float getMax float c float d if c d return c else return d 方法重載 overload 概念 簡單的說 方法重載就是在類的同一種功能的多種實(shí)現(xiàn)方式 到底采用哪種方式 取決于 調(diào)用者給出的參數(shù) 注意事項(xiàng) 1 方法名相同 2 方法的參數(shù)類型 個(gè)數(shù) 順序至少有一項(xiàng)不同 3 方法返回類型可以不同 只是返回類型不一樣 不能構(gòu)成重載 4 方法的修飾符可以不同 只是控制訪問修飾符不同 不能構(gòu)成重載 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 34 451 注 筆記中所有示例都能正常通過編譯 方法覆蓋 override 既然子類可以繼承父類的屬性和方法 這樣可以提高代碼的復(fù)用性 這個(gè)很好 可是問題 來了 假設(shè)現(xiàn)在我要求大家寫三個(gè)類貓貓 狗狗 豬豬 我們知道這三個(gè)東東都是動(dòng)物 動(dòng)物必然存在相同的特點(diǎn) 根據(jù)類的抽象特征 我們可以把它們的相同點(diǎn)提取出來 形成 一個(gè)父類 然后繼承 子類方法覆蓋父類方法 Demo120 java public class Demo120 public static void main String args 創(chuàng)建一只貓 Cat cat1 new Cat cat1 cry Dog dog1 new Dog dog1 cry 動(dòng)物類 class Animal int age String name 都會(huì)叫 public void cry System out println 我是動(dòng)物 不知道怎么叫 貓貓類 class Cat extends Animal 覆蓋父類方法 public void cry System out println 貓貓叫 狗狗類 class Dog extends Animal 覆蓋父類方法 public void cry System out println 汪汪叫 方法覆蓋 override 概念 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 35 451 注 筆記中所有示例都能正常通過編譯 簡單的說 方法覆蓋就是子類有一個(gè)方法 和父類的某個(gè)方法的名稱 返回類型 參數(shù)一 樣 那么我們就說子類的這個(gè)方法覆蓋了父類的那個(gè)方法 比如上個(gè)案例的 Cat 類中的 cry 方法就覆蓋了 Animal 類的 cry 方法 注意事項(xiàng) 方法覆蓋有很多條件 有些書上說的比較細(xì) 總的講有兩點(diǎn)一定注意 1 子類的方法的返回類型 參數(shù) 方法名稱 要和父類的返回類型 參數(shù) 方法名稱完全 一樣 否則編譯出錯(cuò) 2 子類方法不能縮小父類方法的訪問權(quán)限 作業(yè) 上機(jī)實(shí)習(xí)題目 1 Josephu 問題 丟手帕問題 Josephu 問題為 設(shè)編號(hào)為 1 2 n 的 n 個(gè)人圍坐一圈 約定編號(hào)為 k 1 k n 的人 從 1 開始報(bào)數(shù) 數(shù)到 m 的那個(gè)人出列 它的下一位又從 1 開始報(bào)數(shù) 數(shù)到 m 的那個(gè)人又出 列 依次類推 直到所有人出列為止 由此產(chǎn)生一個(gè)出隊(duì)編號(hào)的序列 提示 用一個(gè)不帶頭結(jié)點(diǎn)的循環(huán)鏈表來處理 Josephu 問題 先構(gòu)成一個(gè)有 n 個(gè)結(jié)點(diǎn)的 單循環(huán)鏈表 然后由 k 結(jié)點(diǎn)起從 1 開始計(jì)數(shù) 計(jì)到 m 時(shí) 對(duì)應(yīng)結(jié)點(diǎn)的人從鏈表中刪除 然 后再從被刪除結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)又從 1 開始計(jì)數(shù) 直到最后一個(gè)結(jié)點(diǎn)從鏈表中刪除算法結(jié) 束 Josephu 問題 丟手帕問題 使用單向鏈表 public class Demo121 public static void main String args CycLink cyclink new CycLink cyclink setLen 5 鏈表長度 cyclink createLink cyclink setK 2 從第幾個(gè)人開始數(shù) cyclink setM 2 數(shù)幾下 cyclink show cyclink play class Child int no Child nextChild null public Child int no 給一個(gè)編號(hào) this no no 單向環(huán)形鏈表 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 36 451 注 筆記中所有示例都能正常通過編譯 class CycLink 先定義一個(gè)指向鏈表第一個(gè)小孩的引用 指向第一個(gè)小孩的引用 不能動(dòng) Child firstChild null Child temp null int len 0 表示共有多少個(gè)小孩 int k 0 int m 0 設(shè)置 m 數(shù)幾下 public void setM int m this m m 設(shè)置環(huán)形鏈表大小 public void setLen int len this len len 設(shè)置從第幾個(gè)人開始數(shù)數(shù) public void setK int k this k k 開始 play public void play Child temp this firstChild 1 先找到開始數(shù)數(shù)的人 for int i 1 i k i temp temp nextChild while this len 1 2 數(shù) m 下 for int j 1 j m j temp temp nextChild 找到要出圈的前一個(gè)小孩 Child temp2 temp while temp2 nextChild temp temp2 temp2 nextChild 3 將數(shù)到 m 的小孩 退出圈 temp2 nextChild temp nextChild 讓 temp 指向下一個(gè)數(shù)數(shù)的小孩 temp temp nextChild this len 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 37 451 注 筆記中所有示例都能正常通過編譯 最后一個(gè)小孩 System out println 最后出圈的小孩 temp no 初始化單向環(huán)形鏈表 public void createLink for int i 1 i len i if i 1 創(chuàng)建第一個(gè)小孩 Child ch new Child i this firstChild ch this temp ch else 創(chuàng)建最后一個(gè)小孩 if i len Child ch new Child i temp nextChild ch temp ch temp nextChild this firstChild else 繼續(xù)創(chuàng)建小孩 Child ch new Child i temp nextChild ch temp ch 打印該環(huán)形鏈表 public void show 定義一個(gè)跑龍?zhí)?Child temp this firstChild do System out print temp no temp temp nextChild while temp this firstChild 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 38 451 注 筆記中所有示例都能正常通過編譯 java 面向?qū)ο缶幊?2 四大特征 多態(tài) 概念 所謂多態(tài) 就是指一個(gè)引用 類型 在不同情況下的多種狀態(tài) 也可以理解成 多態(tài)是指通 過指向父類的指針 來調(diào)用在不同子類中實(shí)現(xiàn)的方法 實(shí)現(xiàn)多態(tài)有兩種方式 1 繼承 2 接口 多態(tài)演示 Dome122 java 演示繼承 方法覆蓋 多態(tài) public class Demo122 public static void main String args 非多態(tài)演示 Cat cat new Cat cat cry Dog dog new Dog dog cry 多態(tài)演示 Animal an new Cat an cry an new Dog an cry 動(dòng)物類 class Animal String name int age public String getName return name public void setName String name this name name public int getAge return age public void setAge int age this age age 動(dòng)物會(huì)叫 public void cry System out println 不知道怎么叫 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 39 451 注 筆記中所有示例都能正常通過編譯 創(chuàng)建 Dog 子類并繼承 Animal 父類及覆蓋 cry 方法 class Dog extends Animal 狗叫 public void cry System out println 汪汪叫 class Cat extends Animal 貓自己叫 public void cry System out println 貓貓叫 多重多態(tài)演示 Dome123 java 演示子類繼承父類 方法覆蓋 多態(tài)方法 public class Demo123 public static void main String args 非多態(tài)演示 System out println 非多態(tài)演示 Cat cat new Cat cat cry Dog dog new Dog dog cry System out println 多態(tài)演示 System out println 多態(tài)演示 Animal an new Cat an cry an new Dog an cry System out println 多重多態(tài)演示 System out println 多重多態(tài)演示 Master master new Master master feed new Dog new Bone master feed new Cat new Fish 主人類 class Master 給動(dòng)物喂食物 使用多態(tài) 只要寫一個(gè)方法 public void feed Animal an Food f 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 40 451 注 筆記中所有示例都能正常通過編譯 an eat f showName 食物父類 class Food String name public void showName System out println 食物 食物魚子類 class Fish extends Food public void showName System out println 魚 食物骨頭子類 class Bone extends Food public void showName System out println 骨頭 動(dòng)物類 Animal 父類 class Animal String name int age public String getName return name public void setName String name this name name public int getAge return age public void setAge int age this age age 動(dòng)物會(huì)叫 public void cry System out println 不知道怎么叫 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 41 451 注 筆記中所有示例都能正常通過編譯 動(dòng)物吃東西 public void eat System out println 不知道吃什么 創(chuàng)建 Dog 子類并 extends 繼承 Animal 父類及覆蓋 cry 方法 class Dog extends Animal 狗叫 public void cry System out println 汪汪叫 狗吃東西 public void eat System out println 狗愛吃骨頭 class Cat extends Animal 貓自己叫 public void cry System out println 貓貓叫 貓吃東西 public void eat System out println 貓愛吃魚 多態(tài) 注意事項(xiàng) 1 java 允許父類的引用變量引用它的子類的實(shí)例 對(duì)象 Animal an new Cat 這種轉(zhuǎn)換時(shí)自動(dòng)完成的 2 關(guān)于類型轉(zhuǎn)換還有一些具體的細(xì)節(jié)要求 我們在后面還要提 比如子類能不能轉(zhuǎn)換成父 類 有什么要求等等 java 面向?qū)ο缶幊?3 抽象類 抽象類 解決之道 當(dāng)父類的一些方法不能確定時(shí) 可以用 abstract 關(guān)鍵字來修飾該方法 抽象方法 用 abstract 來修飾該類 抽象類 抽象類的必要性 Demo124 java public class Demo124 public static void main String args Animal an new Animal 抽象類不允許實(shí)例化 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 42 451 注 筆記中所有示例都能正常通過編譯 Animal an new Cat an cry an new Dog an cry 抽象類 abstract 關(guān)鍵詞 abstract class Animal String name int age 動(dòng)物會(huì)叫 使用了 abstract 抽象方法 abstract public void cry 抽象類中可以沒有 abstract 抽象方法 抽象類內(nèi)可以有實(shí)現(xiàn)方法 public void sx System out println 實(shí)現(xiàn)方法 當(dāng)一個(gè)子類繼承的父類是 abstract 抽象類的話 需要程序員把抽象類的抽象方法全部實(shí) 現(xiàn) class Cat extends Animal 實(shí)現(xiàn)父類的 cry 其實(shí)類似上節(jié)學(xué)習(xí)中的子類覆蓋父類 public void cry System out println 貓貓叫 class Dog extends Animal 實(shí)現(xiàn)父類的 cry 其實(shí)類似上節(jié)學(xué)習(xí)中的子類覆蓋父類 public void cry System out println 汪汪叫 抽象類 深入討論 抽象類是 java 中一個(gè)比較重要的類 1 用 abstract 關(guān)鍵字來修飾一個(gè)類時(shí) 這個(gè)類就是抽象類 2 用 abstract 關(guān)鍵字來修飾一個(gè)方法時(shí) 這個(gè)方法就是抽象方法 3 abstract 抽象類中的 abstract 抽象方法是不允許在抽象類中實(shí)現(xiàn)的 一旦實(shí)現(xiàn)就不是 抽象方法和抽象類了 abstract 抽象方法只能在子類中實(shí)現(xiàn) 4 抽象類中可以擁有實(shí)現(xiàn)方法 5 抽象方法在編程中用的不是很多 但是在公司筆試時(shí) 卻是考官比較愛問的知識(shí)點(diǎn) 抽象類 注意事項(xiàng) 1 抽象類不能被實(shí)例化 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 43 451 注 筆記中所有示例都能正常通過編譯 2 抽象類不一定要包含 abstract 方法 也就是說 抽象類可以沒有 abstract 抽象方法 3 一旦類包含了 abstract 抽象方法 則這個(gè)類必須聲明為 abstract 抽象類 4 抽象方法不能有主體 正確的抽象方法例 abstract void abc 錯(cuò)語的抽象方法例 abstract void abc java 面向?qū)ο缶幊?3 接口 接口 為什么有 USB 插槽就是現(xiàn)實(shí)中的接口 什么是接口 接口就是給出一些沒有內(nèi)容的方法 封裝到一起 到某個(gè)類要使用的時(shí)候 在根據(jù)具體情 況把這些方法寫出來 接口的建立語法 interface 接口名 方法 語法 class 類名 implements 接口 方法 變量 小結(jié) 接口是更加抽象的抽象的類 抽象類里的方法可以有方法體 接口里的所有方法都 沒有方法體 接口體現(xiàn)了程序設(shè)計(jì)的多態(tài)和高內(nèi)聚低偶合的設(shè)計(jì)思想 接口 注意事項(xiàng) 1 接口不能被實(shí)例化 2 接口中所有的方法都不能有主體 錯(cuò)誤語法例 void aaa 注意不能有花括號(hào) 接口可以看作更加抽象的抽象類 3 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口 4 接口中可以有變量 但變量不能用 private 和 protected 修飾 a 接口中的變量 本質(zhì)上都是 static 的而且是 final 類型的 不管你加不加 static 修 飾 b 在 java 開發(fā)中 我們經(jīng)常把常用的變量 定義在接口中 作為全局變量使用 訪問形式 接口名 變量名 5 一個(gè)接口不能繼承其它的類 但是可以繼承別的接口 接口的實(shí)現(xiàn) Demo125 java 電腦 相機(jī) u 盤 手機(jī) usb 接口 interface Usb int a 1 加不加 static 都是靜態(tài)的 不能用 private 和 protected 修飾 聲明了兩個(gè)方法 public void start 接口開始工作 public void stop 接口停止工作 編寫了一個(gè)相機(jī)類 并實(shí)現(xiàn)了 usb 接口 韓順平 Java 從入門到精通視頻 全 94 講詳細(xì)筆記 44 451 注 筆記中所有示例都能正常通過編譯 一個(gè)重要的原則 當(dāng)- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
15 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 順平 java 入門 精通 視頻教程 94 學(xué)習(xí) 筆記 整理 齊全
鏈接地址:http://appdesigncorp.com/p-10820706.html