日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

JavaSE基础知识(附上代码实现)1

發布時間:2023/12/8 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaSE基础知识(附上代码实现)1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

###01.01_計算機基礎知識(計算機概述)(了解)
* A:什么是計算機?計算機在生活中的應用舉例
?? ?* 計算機(Computer)全稱:電子計算機,俗稱電腦。是一種能夠按照程序運行,自動、高速處理海量數據的現代化智能電子設備。由硬件和軟件所組成,沒有安裝任何軟件的計算機稱為裸機。常見的形式有臺式計算機、筆記本計算機、大型計算機等。
?? ?* 應用舉例
?? ??? ?* 1:科學計算
?? ??? ?* 2、數據處理
?? ??? ?* 3、自動控制
?? ??? ?* 4、計算機輔助設計
?? ??? ?* 5、人工智能
?? ??? ?* 6、多媒體應用
?? ??? ?* 7、計算機網絡
?? ??? ?* ...?
* B:什么是硬件?硬件舉例
?? ?* 計算機硬件(Computer Hardware)是指計算機系統中由電子,機械和光電元件等組成的各種物理裝置的總稱。這些物理裝置按系統結構的要求構成一個有機整體為計算機軟件運行提供物質基礎。
?? ?* 馮.諾依曼體系結構
?? ?* 計算機的硬件分成5大組成部件:運算器、控制器、存儲器、輸入設備和輸出設備。
?? ?
?? ??? ?* 運算器和控制器是計算機的核心,合稱中央處理單元(Central Processing Unit,CPU)或處理器。CPU的內部還有一些高速存儲單元,被稱為寄存器。其中運算器執行所有的算術和邏輯運算;控制器負責把指令逐條從存儲器中取出,經譯碼后向計算機發出各種控制命令;而寄存器為處理單元提供操作所需要的數據。
?? ??? ?* 存儲器是計算機的記憶部分,用來存放程序以及程序中涉及的數據。它分為內部存儲器和外部存儲器。內部存儲器用于存放正在執行的程序和使用的數據,其成本高、容量小,但速度快。外部存儲器可用于長期保存大量程序和數據,其成本低、容量大,但速度較慢。
?? ??? ?* 輸入設備和輸出設備統稱為外部設備,簡稱外設或I/O設備,用來實現人機交互和機間通信。微型機中常用的輸入設備有鍵盤、鼠標等,輸出設備有顯示器、打印機等。
* C:什么是軟件?軟件分類及舉例
?? ?* 計算機軟件(Computer Software)是使用計算機過程中必不可少的東西,計算機軟件可以使計算機按照事先預定好的順序完成特定的功能
?? ?* 計算機軟件按照其功能劃分為系統軟件與應用軟件
?? ??? ?* 系統軟件: DOS(Disk Operating System), Windows, Linux, Unix, Mac, Android, iOS
?? ??? ?* 應用軟件:office ?QQ聊天 ?YY語言 ?掃雷
###01.02_計算機基礎知識(軟件開發和計算機語言概述)(了解)
* A:什么是軟件
?? ?* 按照特定順序組織的計算機數據和指令的集合
* B:什么是開發
?? ?* 軟件的制作過程
* C:什么是軟件開發
?? ?* 借助開發工具與計算機語言制作軟件?
* D:什么是計算機語言
?? ?* 人與計算機之間進行信息交流溝通的一種特殊語言
* E:計算機語言的分類
?? ?* 機器語言:
?? ??? ?* 機器語言是直接用二進制代碼指令表達的計算機語言,指令是用0和1組成的一串代碼,它們有一定的位數,并分成若干段,各段的編碼表示不同的含義。
?? ?* 匯編語言:
?? ??? ?* 匯編語言是使用一些特殊的符號來代替機器語言的二進制碼,計算機不能直接識別,需要用一種軟件將匯編語言翻譯成機器語言。
?? ?* 高級語言: ?
?? ??? ?* 使用普通英語進行編寫源代碼,通過編譯器將源代碼翻譯成計算機直接識別的機器語言,之后再由計算機執行。
?? ??? ?* 高級語言包括C,C++,C#,JAVA
###01.03_計算機基礎知識(人機交互)(了解)
* A:人機交互的兩種方式
?? ?* a:命令行方式?
?? ??? ?* 需要有一個控制臺,輸入特定的指令,讓計算機完成一些操作。較為麻煩,需要記錄住一些命令。?
?? ?* b:圖形化界面方式
?? ??? ?* 這種方式簡單直觀,使用者易于接受,容易上手操作。
?? ?
###01.04_計算機基礎知識(鍵盤功能鍵和快捷鍵)(掌握)
* A:鍵盤功能鍵
?? ?* a:Tab
?? ?* b:Shift
?? ?* c:Ctrl
?? ?* d:Alt
?? ?* e:空格?? ?
?? ?* f:Enter
?? ?* g:Window
?? ?* h:上下左右鍵
?? ?* i:PrtSc(PrintScreen)屏幕截圖
* B:鍵盤快捷鍵
?? ?* a:Ctrl+A?? ?全選
?? ?* b:Ctrl+C?? ?復制
?? ?* c:Ctrl+V?? ?粘貼
?? ?* d:Ctrl+X?? ?剪切
?? ?* e:Ctrl+Z?? ?撤銷
?? ?* f:Ctrl+S?? ?保存

###01.05_計算機基礎知識(如何打開DOS控制臺)(掌握)
* A:xp下如何打開DOS控制臺?
?? ?* a:開始--程序--附件--命令提示符
?? ?* b:開始--運行--cmd--回車
?? ?* c:win+r--cmd--回車
* B:win7下如何打開DOS控制臺?
?? ?* a:開始--所有程序--附件--命令提示符
?? ?* b:開始--搜索程序和文件--cmd--回車
?? ?* c:win+r--cmd--回車
* C:win8下如何打開DOS控制臺
?? ?* a:鼠標左擊開始--下箭頭--命令提示符
?? ?* b:鼠標右擊開始--搜索--cmd--回車
?? ?* c:鼠標右擊開始--運行--cmd--回車
?? ?* d:win+r--cmd--回車

###01.06_計算機基礎知識(常見的DOS命令講解)
* A:d: 回車?? ?盤符切換
* B:dir(directory):列出當前目錄下的文件以及文件夾
* C:cd (change directory)改變指定目錄(進入指定目錄)
* D:cd.. : 退回到上一級目錄
* E:cd\: 退回到根目錄
* F:cls : (clear screen)清屏
* G:exit : 退出dos命令行(分割線上的需要掌握,下的了解)
* /=========================================================
* md (make directory) : 創建目錄
* rd (remove directory): 刪除目錄
* del (delete): 刪除文件,刪除一堆后綴名一樣的文件*.txt
* notepad 創建文件
* 刪除帶內容的文件夾
?? ?* rd + /s?? ?文件夾名稱(詢問是否刪除)
?? ?* rd + /q + /s 文件夾名稱(直接刪除)
?? ?
###01.07_Java語言基礎(Java語言概述)(了解)
* A:Java語言發展史
?? ?* 詹姆斯·高斯林(James Gosling)1977年獲得了加拿大卡爾加里大學計算機科學學士學位,1983年獲得了美國卡內基梅隆大學計算機科學博士學位,畢業后到IBM工作,設計IBM第一代工作站NeWS系統,但不受重視。后來轉至Sun公司,1990年,與Patrick,Naughton和Mike Sheridan等人合作“綠色計劃”,后來發展一套語言叫做“Oak”,后改名為Java。
?? ?* SUN(Stanford University Network,斯坦福大學網絡公司)?
* B:Java語言版本
?? ?* JDK 1.1.4?? ??? ?Sparkler?? ?寶石?? ??? ??? ??? ?1997-09-12
?? ?* JDK 1.1.5?? ??? ?Pumpkin?? ??? ?南瓜?? ??? ??? ??? ?1997-12-13
?? ?* JDK 1.1.6?? ??? ?Abigail?? ??? ?阿比蓋爾--女子名?? ??? ?1998-04-24
?? ?* JDK 1.1.7?? ??? ?Brutus?? ??? ?布魯圖--古羅馬政治家和將軍?? ?1998-09-28
?? ?* JDK 1.1.8?? ??? ?Chelsea?? ??? ?切爾西--城市名?? ??? ??? ?1999-04-08
?? ?* J2SE 1.2?? ??? ?Playground?? ?運動場?? ??? ??? ??? ?1998-12-04
?? ?* J2SE 1.2.1?? ??? ?none?? ??? ?無?? ??? ??? ??? ?1999-03-30
?? ?* J2SE 1.2.2?? ??? ?Cricket?? ??? ?蟋蟀?? ??? ??? ??? ?1999-07-08
?? ?* J2SE 1.3?? ??? ?Kestrel?? ??? ?美洲紅隼(sǔn)?? ??? ??? ?2000-05-08
?? ?* J2SE 1.3.1?? ??? ?Ladybird?? ?瓢蟲?? ??? ??? ??? ?2001-05-17
?? ?* J2SE 1.4.0?? ??? ?Merlin?? ??? ?灰背隼?? ??? ??? ??? ?2002-02-13
?? ?* J2SE 1.4.1?? ??? ?grasshopper?? ?蚱蜢?? ??? ??? ??? ?2002-09-16
?? ?* J2SE 1.4.2?? ??? ?Mantis?? ??? ?螳螂?? ??? ??? ??? ?2003-06-26
?? ?* JAVASE 5.0 (1.5.0)?? ?Tiger?? ??? ?老虎?? ?
?? ?* JAVASE 5.1 (1.5.1)?? ?Dragonfly?? ?蜻蜓?? ?
?? ?* JAVASE 6.0 (1.6.0)?? ?Mustang?? ??? ?野馬
?? ?* JAVASE 7.0 (1.7.0)?? ?Dolphin?? ??? ?海豚
* C:Java語言平臺
?? ?* J2SE(Java 2 Platform Standard Edition)標準版
?? ??? ?* 是為開發普通桌面和商務應用程序提供的解決方案,該技術體系是其他兩者的基礎,可以完成一些桌面應用程序的開發
?? ?* J2ME(Java 2 Platform Micro Edition)小型版
?? ??? ?* 是為開發電子消費產品和嵌入式設備提供的解決方案
?? ?* J2EE(Java 2 Platform Enterprise Edition)企業版
?? ??? ?* 是為開發企業環境下的應用程序提供的一套解決方案,該技術體系中包含的技術如 Servlet、Jsp等,主要針對于Web應用程序開發?
* C:Java語言特點
?? ?* 簡單性?? ??? ?
?? ?* 解釋性
?? ?* 面向對象?? ??? ?
?? ?* 高性能
?? ?* 分布式處理?? ?
?? ?* 多線程
?? ?* 健壯性?? ??? ?
?? ?* 動態
?? ?* 結構中立?? ??? ?
?? ?* 安全性
?? ?* 開源
?? ?* 跨平臺
###01.08_Java語言基礎(Java語言跨平臺原理)(掌握)
* A:什么是跨平臺性
* B:Java語言跨平臺原理
?? ?* 只要在需要運行java應用程序的操作系統上,先安裝一個Java虛擬機(JVM Java Virtual Machine)即可。由JVM來負責Java程序在該系統中的運行。
* C:Java語言跨平臺圖解
?? ?* write once ,run anywhere!(一處編譯,到處運行)
###01.09_Java語言基礎(JRE和JDK的概述)(掌握)
* A:什么是JRE
?? ?* 包括Java虛擬機(JVM Java Virtual Machine)和Java程序所需的核心類庫等,如果想要運行一個開發好的Java程序,計算機中只需要安裝JRE即可。
?? ?* JRE:JVM+類庫。?
* B:什么是JDK
?? ?* JDK是提供給Java開發人員使用的,其中包含了java的開發工具,也包括了JRE。所以安裝了JDK,就不用在單獨安裝JRE了。
?? ?* 其中的開發工具:編譯工具(javac.exe) ?打包工具(jar.exe)等
??? ?* JDK:JRE+JAVA的開發工具。
* C:為什么JDK中包含一個JRE
?? ?* 為什么JDK中包含一個JRE呢?
?? ??? ?* 開發完的程序,需要運行一下看看效果。
* D:JDK,JRE,JVM的作用和關系
###01.10_Java語言基礎(JDK的下載和安裝過程圖解)(了解)
* A:JDK的下載
?? ?* a:官網 http://www.oracle.com
?? ?* b:演示下載流程
* B:JDK的安裝
?? ?* a:傻瓜式安裝
?? ??? ?* 雙擊安裝程序,然后一路next即可(但是不建議)
?? ?* b:安裝的推薦方式
?? ??? ?* 安裝路徑不要有中文或者特殊符號如空格等。
?? ??? ?* 所有和開發相關的軟件最好安裝目錄統一。
?? ??? ??? ?* 舉例:我的JDK安裝路徑
?? ??? ??? ??? ?* D:\develop\Java\jdk1.7.0_72
?? ??? ?* 當提示安裝JRE時,可以選擇不安裝。建議還是安裝上。
?? ?* c:演示安裝流程
?? ??? ?* 可以先在d盤建立一個文件夾develop
?? ??? ?* 然后演示安裝過程
* C:驗證安裝是否成功
?? ?* a:通過DOS命令,切換到JDK安裝的bin目錄下。
?? ??? ?* D:\develop\Java\jdk1.7.0_72\bin
?? ?* b:然后分別輸入javac和java,如果正常顯示一些內容,說明安裝成功
?? ??? ?
###01.11_Java語言基礎(JDK安裝路徑下的目錄解釋)(了解)
* a:bin目錄:該目錄用于存放一些可執行程序。
?? ?* 如javac.exe(java編譯器)、java.exe(java運行工具),jar.exe(打包工具)和* javadoc.exe(文檔生成工具)等。
* b:db目錄:db目錄是一個小型的數據庫。
?? ?* 從JDK 6.0開始,Java中引用了一個新的成員JavaDB,這是一個純Java實現、開源的數據庫管理系統。這個數據庫不僅輕便,而且支持JDBC 4.0所有的規范,在學習JDBC 時,不再需要額外地安裝一個數據庫軟件,選擇直接使用JavaDB即可。
* c:jre目錄:"jre"是 Java Runtime Environment 的縮寫,意為Java程序運行時環境。此目錄是Java運行時環境的根目錄,它包括Java虛擬機,運行時的類包,Java應用啟動器以及一個bin目錄,但不包含開發環境中的開發工具。
* d:include目錄:由于JDK是通過C和C++實現的,因此在啟動時需要引入一些C語言的頭文件,該目錄就是用于存放這些頭文件的。
* e:lib目錄:lib是library的縮寫,意為 Java 類庫或庫文件,是開發工具使用的歸檔包文件。
* f:src.zip文件:src.zip為src文件夾的壓縮文件,src中放置的是JDK核心類的源代碼,通過該文件可以查看Java基礎類的源代碼。

###01.12_Java語言基礎(Java開發工具介紹)(了解)
* A:notepad(微軟操作系統自帶)
* B:Editplus/Notepad++
* C:Eclipse
* D:MyEclipse
?? ?* 給大家簡單的介紹一下這些工具,然后說說我們使用這些工具的順序。
?? ?* 基礎班:先notepad,然后Editplus,再Eclipse。
?? ?* 就業班:MyEclipse和Eclipse都用。

###01.13_Java語言基礎(HelloWorld案例的編寫和運行)(掌握)
* A:定義類
* B:寫main方法
* C:寫輸出語句
* D:Java程序開發運行與工作原理
* E:編譯和運行程序

?? ??? ?class HelloWorld {
?? ??? ??? ?public static void main(String[] args) {
?? ??? ??? ??? ?System.out.println("HelloWorld");
?? ??? ??? ?}
?? ??? ?}
?? ?
###01.14_Java語言基礎(HelloWorld案例常見問題)(掌握)
* A:找不到文件(都演示一下,讓學生看看出現的都是什么問題)
?? ?* a:文件擴展名隱藏導致編譯失敗
?? ?* b:文件名寫錯了
* B:單詞拼寫問題(都演示一下,讓學生看看出現的都是什么問題)
?? ?* a:class寫成Class
?? ?* b:String寫成string
?? ?* c:System寫成system
?? ?* d:main寫成mian
* C:括號匹配問題(都演示一下,讓學生看看出現的都是什么問題)
?? ?* a:把類體的那對大括號弄掉一個
?? ?* b:把方法體的那對大括號弄掉一個
?? ?* c:把輸出語句的那對小括號弄掉一個
* D:中英文問題(都演示一下,讓學生看看出現的都是什么問題)
?? ?* a:提示信息:錯誤: 非法字符: \????的格式
?? ?* 注意:java編程中需要的基本上都是英文字符

###01.15_Java語言基礎(Java語言的書寫格式(約定俗成))?? ?(掌握)
* 1,大括號要對齊,并且成對寫
* 2,左大括號前面有空格
* 3,遇到左大括號要縮進,Tab
* 4,方法和程序塊之間加空行讓程序看起來清晰
* 5,并排語句之間加空格,例如for語句
* 6,運算符兩側加空格

###01.16_Java語言基礎(path環境變量的作用及配置方式1)(掌握)
* A:在JDK的bin目錄下開發程序容易產生的問題
?? ?* a:如果文件過多,不方便管理
?? ?* b:刪除自己寫過的不需要的文件,可能不小心把JDK自帶的工具給刪除了
* B:如何解決問題呢
?? ?* notepad這樣的命令為什么在任何路徑下都能夠執行,配置path環境變量
* C:配置方式
?? ?* a:xp系統
?? ??? ?* 右鍵點擊桌面計算機→選擇屬性→選擇高級選項卡→點擊環境變量→下方系統變量中查找path→雙擊path→將jdk安裝目錄下的bin目錄添加到最左邊并添加分號。
?? ?* b:win7/win8系統
?? ??? ?* 右鍵點擊桌面計算機→選擇屬性→選擇高級系統設置→選擇高級選項卡→點擊環境變量→下方系統變量中查找path→雙擊path→將jdk安裝目錄下的bin目錄添加到最左邊并添加分號。
* path配置的是可執行的文件.exe,配置后可以在不同的盤符下訪問path路徑下的可執行文件

###01.17_Java語言基礎(Path環境變量的配置方式2)(掌握)
* A:先配置JAVA_HOME
* B:再修改path
* C:最后說一下path是有先后順序關系的

###01.18_Java語言基礎(classpath環境變量的作用及其配置)(了解)
* A:為什么要配置classpath
* B:classpath配置的原理
* C:如何配置classpath

* path和classpath的區別
?? ?* path配置的是可執行的文件.exe,配置后可以在不同的盤符下訪問path路徑下的可執行文件
?? ?* classpath配置的java的類文件,就是.class文件

###01.19_Java語言基礎(Editplus開發程序并編譯運行)(了解)
* A:配置快捷鍵編譯運行
* B:去除備份文件

###01.20_Java語言基礎(注釋概述及其分類)(掌握)
* A:什么是注釋
* B:注釋的分類及講解
?? ?* 文檔注釋目前不講,說后面講解

* 注釋的作用
?? ?* A:解釋說明程序
?? ?* B:幫助我們調試錯誤
?? ?
###01.21_Java語言基礎(關鍵字的概述和使用)(掌握)
* A:什么是關鍵字
?? ?* 被Java語言賦予特定含義的單詞?
* B:關鍵字的特點
?? ?* 組成關鍵字的字母全部小寫?
* C:常見關鍵字
?? ?* public static void class等?
* D:關鍵字的注意事項
?? ?* goto和const作為保留字存在,目前并不使用,類似Editplus這樣的高級記事本,針對關鍵字有特殊的顏色標記,非常直觀?

###01.22_Java語言基礎(標識符的概述和組成規則)(掌握)
* A:什么是標識符
?? ?* 就是給類,接口,方法,變量等起名字時使用的字符序列?
* B:標識符的組成規則
?? ?* 英文大小寫字母
?? ?* 數字字符
?? ?* $和_?
* C:標識符注意事項
?? ?* 1,不能使用關鍵字
?? ?* 2,不能數字開頭?

###01.23_Java語言基礎(標識符中常見的命名規則)(了解)
* 見名知意
* A:包
?? ?* 最好是域名倒過來,要求所有的字母小寫?
* B:類或者接口
?? ?* 如果是一個單詞首字母大寫
?? ?* 如果是多個單詞每個單詞首字母大寫(駝峰標識)?
* C:方法或者變量
?? ?* 如果是一個單詞全部小寫
?? ?* 如果是多個單詞,從第二個單詞首字母大寫?
* D:常量
?? ?* 如果是一個單詞,所有字母大寫
?? ?* 如果是多個單詞,所有的單詞大寫,用下劃線區分每個單詞?

###01.24_day01總結
* 把今天的知識點總結一遍。

###02.01_Java語言基礎(常量的概述和使用)(掌握)
* A:什么是常量
?? ?* 在程序執行的過程中其值不可以發生改變?
* B:Java中常量的分類
?? ?* 字面值常量
?? ?* 自定義常量(面向對象部分講)?
* C:字面值常量的分類
?? ?* 字符串常量?? ?用雙引號括起來的內容
?? ?* 整數常量?? ??? ?所有整數
?? ?* 小數常量?? ??? ?所有小數
?? ?* 字符常量?? ??? ?用單引號括起來的內容,里面只能放單個數字,單個字母或單個符號
?? ?* 布爾常量?? ??? ?較為特殊,只有true和false
?? ?* 空常量?? ??? ? ? ?null(數組部分講解)

* D:案例演示
?? ?* 用輸出語句輸出各種常量。null不演示
?? ??? ??? ?
###02.02_Java語言基礎(進制概述和二,八,十六進制圖解)(了解)
* A:什么是進制
?? ?* 進制:就是進位制,是人們規定的一種進位方法。 對于任何一種進制--X進制,就表示某一位置上的數運算時是逢X進一位。二進制就是逢二進一,八進制是逢八進一,十進制是逢十進一,十六進制是逢十六進一。
?? ?* 例如一周有七天,七進制,一年有十二個月,十二進制
* B:十進制的由來?
?? ?* 十進制的由來是因為人類有十個手指?
* C:二進制的由來
?? ?* 其實二進制來源與中國,請看史料記載
?? ?* 18世紀德國數理哲學大師萊布尼茲從他的傳教士朋友鮑威特寄給他的拉丁文譯本《易經》中,讀到了八卦的組成結構,驚奇地發現其基本素數(0)(1),即《易經》的陰爻yao- -和__陽爻,其進位制就是二進制,并認為這是世界上數學進制中最先進的。20世紀被稱作第三次科技革命的重要標志之一的計算機的發明與應用,其運算模式正是二進制。它不但證明了萊布尼茲的原理是正確的,同時也證明了《易經》數理學是很了不起的。
* D:八進制的由來
?? ?* 任何數據在計算機中都是以二進制的形式存在的。二進制早期由電信號開關演變而來。一個整數在內存中一樣也是二進制的,但是使用一大串的1或者0組成的數值進行使用很麻煩。?
?? ?* 所以就想把一大串縮短點,將二進制中的三位用一位表示。這三位可以取到的最大值就是7.超過7就進位了,這就是八進制。?
* E:十六進制的由來
?? ?* 但是對于過長的二進制變成八進制還是較長,所以出現的用4個二進制位表示一位的情況,四個二進制位最大是15,這就是十六進制。
* F:不同進制表現同一個數據的形式特點
?? ?* 進制越大,表現形式越短
?
###02.03_Java語言基礎(不同進制數據的表現形式)(掌握)
* A:二進制的數據表現形式
?? ?* 由0,1組成。以0b(b可以大寫也可以小寫)開頭(JDK1.7版本可以表示二進制了)
* B:八進制的數據表現形式
?? ?* 由0,1,…7組成。以0開頭
* C:十進制的數據表現形式
?? ?* 由0,1,…9組成。整數默認是十進制的?
* D:十六進制的數據表現形式
?? ?* 由0,1,…9,a,b,c,d,e,f(大小寫均可)。以0x開頭?
* E:案例演示
?? ?* 輸出不同進制表現100的數據。
?? ?* 0b100
?? ?* 0100
?? ?* 100
?? ?* 0x100
?? ??? ?
###02.04_Java語言基礎(任意進制到十進制的轉換圖解)(了解)
* A:任意進制到十進制的轉換原理
?? ?* 系數:就是每一位上的數據。
?? ?* 基數:X進制,基數就是X。
?? ?* 權:在右邊,從0開始編號,對應位上的編號即為該位的權。
?? ?* 結果:把系數*基數的權次冪相加即可。?
* B:畫圖練習
?? ?* 二進制--十進制
?? ?* 八進制--十進制
?? ?* 十六進制--十進制

###02.05_Java語言基礎(十進制到任意進制的轉換圖解)(了解)
* A:十進制到任意進制的轉換原理
?? ?* 除積倒取余?
* B:畫圖練習
?? ?* 十進制--二進制
?? ?* 十進制--八進制
?? ?* 十進制--十六進制
?? ?
###02.06_Java語言基礎(快速的進制轉換法)(了解)
* A:8421碼及特點
?? ?* 8421碼是中國大陸的叫法,8421碼是BCD代碼中最常用的一種。在這種編碼方式中每一位二值代碼的1都是代表一個固定數值,把每一位的1代表的十進制數加起來,得到的結果就是它所代表的十進制數碼。?
* B:通過8421碼的方式進行二進制和十進制的相互轉換
* C:二進制到八進制的簡易方式
* D:二進制到十六進制的簡易方式

###02.07_Java語言基礎(原碼反碼補碼)(了解)
* A:為什么要學習原碼反碼補碼?
?? ?* 后面要學習強制類型轉換,如果不知道有原反補會看不懂結果?
* B:有符號數據表示法的幾種方式
?? ?* 原碼
?? ??? ?* 就是二進制定點表示法,即最高位為符號位,“0”表示正,“1”表示負,其余位表示數值的大小。
?? ??? ?* 通過一個字節,也就是8個二進制位表示+7和-7
?? ??? ?* 0(符號位)?? ?0000111
?? ??? ?* 1(符號位)?? ?0000111
?? ?* 反碼
?? ??? ?* 正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
?? ?* 補碼
?? ??? ?* 正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。?

###02.08_Java語言基礎(原碼反碼補碼的練習)(了解)
* A:已知原碼求補碼
?? ?* 0b10110100?
* B:已知補碼求原碼
?? ?* 0b11101110?
?? ?
###02.09_Java語言基礎(變量的概述及格式)(掌握)
* A:什么是變量
?? ?* 在程序執行的過程中,在某個范圍內其值可以發生改變的量
* B:變量的定義格式
?? ?* 數據類型 變量名 = 變量值;
* C:為什么要定義變量
?? ?* 用來不斷的存放同一類型的常量,并可以重復使用?

###02.10_Java語言基礎(數據類型的概述和分類)(掌握)
* A:為什么有數據類型
?? ?* Java語言是強類型語言,對于每一種數據都定義了明確的具體數據類型,在內存中分配了不同大小的內存空間
* B:Java中數據類型的分類
?? ?* 基本數據類型
?? ?* 引用數據類型?
?? ??? ?* 面向對象部分講解?
* C:基本數據類型分類(4類8種)?
?? ?* 整數型
?? ??? ?* byte 占一個字節 ?-128到127
?? ??? ?* short 占兩個字 ?-2^15~2^15-1
?? ??? ?* int 占四個字節 -2^31~2^31-1
?? ??? ?* long 占八個字節 -2^63~2^63-1
?? ?* 浮點型
?? ??? ?* float 占四個字節 -3.403E38~3.403E38 ?單精度
?? ??? ?* double 占八個字節-1.798E308~1.798E308 雙精度
?? ?* 字符型
?? ??? ?* char 占兩個字節 0~65535
?? ?* 布爾型
?? ??? ?* boolean ??
?? ??? ??? ?* boolean理論上是占八分之一個字節,因為一個開關就可以決定是true和false了,但是java中boolean類型沒有明確指定他的大小 ? ? ?

###02.11_Java語言基礎(定義不同數據類型的變量)(掌握)
* A:案例演示
?? ?* 定義不同基本數據類型的變量,并輸出
?? ?* 賦值時候注意float類型,long類型

###02.12_Java語言基礎(使用變量的注意事項)(掌握)
* A:案例演示
?? ?* a:作用域問題
?? ??? ?* 同一個區域不能使用相同的變量名?
?? ?* b:初始化值問題
?? ??? ?* 局部變量在使用之前必須賦值?
?? ?* c:一條語句可以定義幾個變量
?? ??? ?* int a,b,c...;?

###02.13_Java語言基礎(數據類型轉換之隱式轉換)(掌握)
* A:案例演示
?? ?* a:int + int
?? ?* b:byte + int?
* B:Java中的默認轉換規則
?? ?* 取值范圍小的數據類型與取值范圍大的數據類型進行運算,會先將小的數據類型提升為大的,再運算?
* C:畫圖解釋byte+int類型的問題

###02.14_Java語言基礎(數據類型轉換之強制轉換)(掌握)
* A:強制轉換問題
?? ?* int a = 10;
?? ?* byte b = 20;?
?? ?* b = a + b;
* B:強制轉換的格式
?? ?* b = (byte)(a + b);?
* C:強制轉換的注意事項
?? ?* 如果超出了被賦值的數據類型的取值范圍得到的結果會與你期望的結果不同?

###02.15_Java語言基礎(面試題之變量相加和常量相加的區別)(掌握)
* A:案例演示
?? ?* 面試題:看下面的程序是否有問題,如果有問題,請指出并說明理由。
?? ?* byte b1 = 3;
?? ?* byte b2 = 4;
?? ?* byte b3 = b1 + b2;
?? ??? ?* 從兩方面去回答這個題
?? ??? ?* b1和b2是兩個變量,變量里面存儲的值都是變化的,所以在程序運行中JVM是無法判斷里面具體的值
?? ??? ?* byte類型的變量在進行運算的時候,會自動類型提升為int類型?
?? ?* byte b4 = 3 + 4;
?? ??? ?* 3和4都是常量,java有常量優化機制,就是在編譯的的時候直接把3和4的結果賦值給b4了?
?? ??? ?
###02.16_Java語言基礎(long與float的取值范圍誰大誰小)(了解)
* 進行混合運算的時候,byte,short,char不會相互轉換,都會自動類型提升為int類型,其他類型進行混合運算的是小的數據類型提升為大的
?? ?* byte,short,char -- int -- long -- float -- double
?? ?
?? ?* long: 8個字節
?? ?* float:4個字節
?? ?* IEEE754
?? ?* 4個字節是32個二進制位
?? ?* 1位是符號位
?? ?* 8位是指數位
?? ?* 00000000 ? 11111111
?? ?* 0到255
?? ?* 1到254
?? ?* -126到127
?? ?* 23位是尾數位
?? ?* 每個指數位減去127
?? ?
?? ?* A:它們底層的存儲結構不同。
?? ?* B:float表示的數據范圍比long的范圍要大
?? ??? ?* long:2^63-1
?? ??? ?* float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1

###02.17_Java語言基礎(字符和字符串參與運算)(掌握)
* A:案例演示
?? ?* System.out.println('a');
?? ?* System.out.println('a'+1);
?? ?
?? ?* 通過看結果知道'a'的值是多少,由此引出ASCII碼表
* B:ASCII碼表的概述
?? ?* 記住三個值:
?? ??? ?* '0' ?48
?? ??? ?* 'A' ?65
?? ??? ?* 'a' ?97
* C:案例演示
?? ?* System.out.println("hello"+'a'+1);
?? ?* System.out.println('a'+1+"hello");
* D:+在有字符串參與中被稱為字符串連接符
?? ?* System.out.println("5+5="+5+5);
?? ?* System.out.println(5+5+"=5+5");
?? ?
###02.18_Java語言基礎(char數據類型)(掌握)
* A:char c = 97;?? ?0到65535
* B:Java語言中的字符char可以存儲一個中文漢字嗎?為什么呢?
?? ?* 可以。因為Java語言采用的是Unicode編碼。Unicode編碼中的每個字符占用兩個字節。中文也是占的兩個字節
?? ?* 所以,Java中的字符可以存儲一個中文漢字
###02.19_Java語言基礎(算術運算符的基本用法)(掌握)
* A:什么是運算符
?? ?* 就是對常量和變量進行操作的符號。
* B:運算符的分類
?? ?* 算術運算符,賦值運算符,比較(關系或條件)運算符,邏輯運算符,位運算符,三目(元)運算符?
* C:算數運算符有哪些
?? ?* +,-,*,/,%,++,--?
* D:注意事項:
?? ?* a:+號在java中有三種作用,代表正號,做加法運算,字符串的連接符
?? ?* b:整數相除只能得到整數。如果想得到小數,必須把數據變化為浮點數類型
?? ?* c:/獲取的是除法操作的商,%獲取的是除法操作的余數
?? ?* %運算符
?? ??? ?* 當左邊的絕對值小于右邊絕對值時,結果是左邊
?? ??? ?* 當左邊的絕對值等于右邊或是右邊的倍數時,結果是0
?? ??? ?* 當左邊的絕對值大于右邊絕對值時,結果是余數
?? ??? ?* %運算符結果的符號只和左邊有關系,與右邊無關
?? ??? ?* 任何一個正整數%2結果不是0就是1可以用來當作切換條件?

###02.20_Java語言基礎(算術運算符++和--的用法)(掌握)
* A:++,--運算符的作用
?? ?* 自加(++)自減(--)運算
?? ?* ++:自加。對原有的數據進行+1
?? ?* --:自減。對原有的數據進行-1
* B:案例演示
?? ?* a:單獨使用:
?? ??? ?* 放在操作數的前面和后面效果一樣。(這種用法是我們比較常見的)
?? ?* b:參與運算使用:
?? ??? ?* 放在操作數的前面,先自增或者自減,然后再參與運算。
?? ??? ?* 放在操作數的后面,先參與運算,再自增或者自減。

###02.21_Java語言基礎(算術運算符++和--的練習)(掌握)
* A:案例演示
?? ?* 請分別計算出a,b,c的值?
?? ?*?
?? ??? ??? ?int a = 10;
?? ??? ??? ?int b = 10;
?? ??? ??? ?int c = 10;
?? ??? ?
?? ??? ??? ?a = b++;?? ??? ?
?? ??? ??? ?c = --a;?? ??? ??? ?
?? ??? ??? ?b = ++a;?? ??? ?
?? ??? ??? ?a = c--;?? ??? ??? ?
?? ?
* B:案例演示
?? ?* 請分別計算出x,y的值?
?? ?
?? ??? ??? ?int x = 4;
?? ??? ??? ?int y = (x++)+(++x)+(x*10);
* C:面試題
?? ?* byte b = 10;
?? ?* b++;
?? ?* b = b + 1;
?? ?* 問哪句會報錯,為什么?

###02.22_Java語言基礎(賦值運算符的基本用法)(掌握)
* A:賦值運算符有哪些
?? ?* a:基本的賦值運算符:=
?? ??? ?* 把=右邊的數據賦值給左邊。
?? ??? ?
?? ?* b:擴展的賦值運算符:+=,-=,*=,/=,%=
?? ??? ?* += 把左邊和右邊做加法,然后賦值給左邊。
?? ?
###02.23_Java語言基礎(賦值運算符的面試題)(掌握)
* A:案例演示
?? ?* 面試題:看下面的程序是否有問題,如果有問題,請指出并說明理由。
?? ?* short s=1;s = s+1;
?? ?* short s=1;s+=1;

###02.24_Java語言基礎(關系運算符的基本用法及其注意事項)(掌握)
* A:關系運算符有哪些(比較運算符,條件運算符)
?? ?* ==,!=,>,>=,<,<=?
* 注意事項:
?? ?* 無論你的操作是簡單還是復雜,結果是boolean類型。
?? ?
?? ?* "=="不能寫成"="。

###02.25_day02總結
* 把今天的知識點總結一遍

###03.01_Java語言基礎(邏輯運算符的基本用法)(掌握)
* A:邏輯運算符有哪些
?? ?* &,|,^,!
?? ?* &&,||?
* B:案例演示
* 邏輯運算符的基本用法
?? ?
* 注意事項:
?? ?* a:邏輯運算符一般用于連接boolean類型的表達式或者值。
?? ?* b:表達式:就是用運算符把常量或者變量連接起來的符合java語法的式子。
?? ??? ?* 算術表達式:a + b
?? ??? ?* 比較表達式:a == b(條件表達式)
* C:結論:
* &邏輯與:有false則false。
* |邏輯或:有true則true。
* ^邏輯異或:相同為false,不同為true。
* !邏輯非:非false則true,非true則false。
?? ?* 特點:偶數個不改變本身。

###03.02_Java語言基礎(邏輯運算符&&和&的區別)(掌握)
* A:案例演示
?? ?* &&和&的區別?
?? ??? ?* a:最終結果一樣。
?? ??? ?* b:&&具有短路效果。左邊是false,右邊不執行。
?? ??? ?* ?? ?&是無論左邊是false還是true,右邊都會執行
* B:同理||和|的區別?(學生自學)
* C:開發中常用誰?
?? ?* &&,||,!

###03.03_Java語言基礎(位運算符的基本用法1)(了解)
* A:位運算符有哪些
?? ?* &,|,^,~ ,>>,>>>,<<
* B:案例演示
?? ?* 位運算符的基本用法1
?? ?
?? ?* &,|,^,~ 的用法
?? ?* &:有0則0
?? ?* |:有1則1
?? ?* ^:相同則0,不同則1
?? ?* ~:按位取反

###03.04_Java語言基礎(位異或運算符的特點及面試題)(掌握)
* A:案例演示
?? ?* 位異或運算符的特點

?? ?* ^的特點:一個數據對另一個數據位異或兩次,該數本身不變。
?? ?
* B:面試題:
?? ?* 請自己實現兩個整數變量的交換
?? ?* 注意:以后講課的過程中,我沒有明確指定數據的類型,默認int類型。

###03.05_Java語言基礎(位運算符的基本用法2及面試題)(了解)
* A:案例演示 >>,>>>,<<的用法:
?? ?* ?<<:左移?? ?左邊最高位丟棄,右邊補齊0
?? ?* ?>>:右移?? ?最高位是0,左邊補齊0;最高為是1,左邊補齊1
?? ?* ?>>>:無符號右移 無論最高位是0還是1,左邊補齊0
?? ?* ?最有效率的算出2 * 8的結果

###03.06_Java語言基礎(三元運算符的基本用法)(掌握)
* A:三元運算符的格式
* ?? ??? ?(關系表達式) ? 表達式1 : 表達式2;
* B:三元運算符的執行流程?
* C:案例演示
?? ?* 獲取兩個數中的最大值

###03.07_Java語言基礎(三元運算符的練習)(掌握)
* A:案例演示
?? ?* 比較兩個整數是否相同
* B:案例演示
?? ?* 獲取三個整數中的最大值

###03.08_Java語言基礎(鍵盤錄入的基本格式講解)(掌握)
* A:為什么要使用鍵盤錄入數據
?? ?* a:為了讓程序的數據更符合開發的數據
?? ?* b:讓程序更靈活一下
* B:如何實現鍵盤錄入呢?
?? ?* 先照格式來。
?? ?* a:導包
?? ??? ?* 格式:
?? ??? ??? ?* import java.util.Scanner;?
?? ??? ?* 位置:
?? ??? ??? ?* 在class上面。
?? ?* b:創建鍵盤錄入對象
?? ??? ?* 格式:
?? ??? ??? ?* Scanner sc = new Scanner(System.in);
?? ?* c:通過對象獲取數據?? ?
?? ??? ?* 格式:
?? ??? ??? ?* int x = sc.nextInt();
* C:案例演示
?? ?* 鍵盤錄入1個整數,并輸出到控制臺。
?? ?* 鍵盤錄入2個整數,并輸出到控制臺。

###03.09_Java語言基礎(鍵盤錄入的練習1)(掌握)
* A:案例演示
?? ?* 鍵盤錄入練習:鍵盤錄入兩個數據,并對這兩個數據求和,輸出其結果
* B:案例演示
?? ?* 鍵盤錄入練習:鍵盤錄入兩個數據,獲取這兩個數據中的最大值

###03.10_Java語言基礎(鍵盤錄入的練習2)(掌握)
* A:案例演示
?? ?* 鍵盤錄入練習:鍵盤錄入兩個數據,比較這兩個數據是否相等
* B:案例演示
?? ?* 鍵盤錄入練習:鍵盤錄入三個數據,獲取這三個數據中的最大值

###03.11_Java語言基礎(順序結構語句)(了解)
* A:什么是流程控制語句
?? ?* 流程控制語句:可以控制程序的執行流程。
* B:流程控制語句的分類
?? ?* 順序結構
?? ?* 選擇結構
?? ?* 循環結構
* C:執行流程:
?? ?* 從上往下,依次執行。
* D:案例演示
?? ?* 輸出幾句話看效果即可

###03.12_Java語言基礎(選擇結構if語句格式1及其使用)(掌握)
* A:選擇結構的分類
?? ?* if語句
?? ?* switch語句
* B:if語句有幾種格式
?? ?* 格式1
?? ?* 格式2
?? ?* 格式3
* C:if語句的格式1
*?
?? ??? ?if(比較表達式) {
?? ??? ??? ?語句體;
?? ??? ?}
* D:執行流程:
?? ?* 先計算比較表達式的值,看其返回值是true還是false。
?? ?* 如果是true,就執行語句體;
?? ?* 如果是false,就不執行語句體;

###03.13_Java語言基礎(選擇結構if語句注意事項)(掌握)
* A:案例演示
?? ?* a:比較表達式無論簡單還是復雜,結果必須是boolean類型
?? ?* b:if語句控制的語句體如果是一條語句,大括號可以省略;
?? ? ?* 如果是多條語句,就不能省略。建議永遠不要省略。
?? ?* c:一般來說:有左大括號就沒有分號,有分號就沒有左大括號

###03.14_Java語言基礎(選擇結構if語句格式2及其使用)(掌握)
* A:if語句的格式2
*?
?? ??? ?if(比較表達式) {
?? ??? ??? ?語句體1;
?? ??? ?}else {
?? ??? ??? ?語句體2;
?? ??? ?}
* B:執行流程:
?? ?* 首先計算比較表達式的值,看其返回值是true還是false。
?? ?* 如果是true,就執行語句體1;
?? ?* 如果是false,就執行語句體2;
* C:案例演示
?? ?* a:獲取兩個數據中較大的值
?? ?* b:判斷一個數據是奇數還是偶數,并輸出是奇數還是偶數

?? ?* 注意事項:else后面是沒有比較表達式的,只有if后面有。

###03.15_Java語言基礎(if語句的格式2和三元的相互轉換問題)(掌握)
* A:案例演示
?? ?* if語句和三元運算符完成同一個效果
* B:案例演示
?? ?* if語句和三元運算符的區別
?? ?
?? ?* 三元運算符實現的,都可以采用if語句實現。反之不成立。
?? ?
?? ?* 什么時候if語句實現不能用三元改進呢?
?? ??? ?* 當if語句控制的操作是一個輸出語句的時候就不能。
?? ??? ?* 為什么呢?因為三元運算符是一個運算符,運算符操作完畢就應該有一個結果,而不是一個輸出。

###03.16_Java語言基礎(選擇結構if語句格式3及其使用)(掌握)
* A:if語句的格式3:
*?
?? ??? ?if(比較表達式1) {
?? ??? ??? ?語句體1;
?? ??? ?}else if(比較表達式2) {
?? ??? ??? ?語句體2;
?? ??? ?}else if(比較表達式3) {
?? ??? ??? ?語句體3;
?? ??? ?}
?? ??? ?...
?? ??? ?else {
?? ??? ??? ?語句體n+1;
?? ??? ?}
* B:執行流程:
?? ?* 首先計算比較表達式1看其返回值是true還是false,
?? ?* 如果是true,就執行語句體1,if語句結束。
?? ?* 如果是false,接著計算比較表達式2看其返回值是true還是false,
?? ?
?? ?* 如果是true,就執行語句體2,if語句結束。
?? ?* 如果是false,接著計算比較表達式3看其返回值是true還是false,
?? ?
?? ?* 如果都是false,就執行語句體n+1。
* C:注意事項:最后一個else可以省略,但是建議不要省略,可以對范圍外的錯誤值提示?

###03.17_Java語言基礎(選擇結構if語句格式3練習)(掌握)
* A:練習1
*?
?? ??? ?需求:鍵盤錄入一個成績,判斷并輸出成績的等級。
?? ??? ?90-100 優
?? ??? ?80-89 ?良
?? ??? ?70-79 ?中
?? ??? ?60-69 ?及
?? ??? ?0-59 ? 差
?? ??? ?
* B:練習2
?? ?* 需求:
?? ??? ?* 鍵盤錄入x的值,計算出y的并輸出。
?? ??? ?
?? ??? ?* x>=3?? ?y = 2 * x + 1;
?? ??? ?* -1<x<3?? ?y = 2 * x;
?? ??? ?* x<=-1?? ?y = 2 * x - 1;

###03.18_Java語言基礎(選擇結構if語句的嵌套使用)(掌握)
* A:案例演示
?? ?* 需求:獲取三個數據中的最大值
?? ?* if語句的嵌套使用。

###03.19_Java語言基礎(選擇結構switch語句的格式及其解釋)(掌握)
* A:switch語句的格式
*?
?? ??? ?switch(表達式) {
?? ??? ? ? ? ?case 值1:
?? ??? ??? ??? ?語句體1;
?? ??? ??? ??? ?break;
?? ??? ??? ? ? ?case 值2:
?? ??? ??? ??? ?語句體2;
?? ??? ??? ??? ?break;
?? ??? ??? ? ? ?…
?? ??? ??? ? ? ?default:?? ?
?? ??? ??? ??? ?語句體n+1;
?? ??? ??? ??? ?break;
?? ? ? ?}
?
* B:switch語句的格式解釋
* C:面試題
?? ?* byte可以作為switch的表達式嗎?
?? ?* long可以作為switch的表達式嗎?
?? ?* String可以作為switch的表達式嗎?
* C:執行流程
?? ?* 先計算表達式的值
?? ?* 然后和case后面的匹配,如果有就執行對應的語句,否則執行default控制的語句

###03.20_Java語言基礎(選擇結構switch語句的練習)(掌握)
* A:整數(給定一個值,輸出對應星期幾)

###03.21_Java語言基礎(選擇結構switch語句的注意事項)(掌握)
* A:案例演示
?? ?* a:case后面只能是常量,不能是變量,而且,多個case后面的值不能出現相同的
?? ?* b:default可以省略嗎?
?? ??? ?* 可以省略,但是不建議,因為它的作用是對不正確的情況給出提示。
?? ??? ?* 特殊情況:
?? ??? ??? ?* case就可以把值固定。
?? ??? ??? ?* A,B,C,D
?? ?* c:break可以省略嗎?
?? ??? ?* 最后一個可以省略,其他最好不要省略
?? ??? ?* 會出現一個現象:case穿透。
?? ??? ?* 最終我們建議不要省略
?? ?* d:default一定要在最后嗎?
?? ??? ?* 不是,可以在任意位置。但是建議在最后。
?? ?* e:switch語句的結束條件
?? ??? ?* a:遇到break就結束了
?? ??? ?* b:執行到switch的右大括號就結束了

###03.22_Java語言基礎(選擇結構switch語句練習)(掌握)
* A:看程序寫結果:
*?
?? ??? ?int x = 2;
?? ??? ?int y = 3;
?? ??? ?switch(x){
?? ??? ??? ?default:
?? ??? ??? ??? ?y++;
?? ??? ??? ??? ?break;
?? ??? ??? ?case 3:
?? ??? ??? ??? ?y++;
?? ??? ??? ?case 4:
?? ??? ??? ??? ?y++;
?? ??? ?}
?? ??? ?System.out.println("y="+y);
?? ?
* B:看程序寫結果:
*?
?? ??? ?int x = 2;
?? ??? ?int y = 3;
?? ??? ?switch(x){
?? ??? ??? ?default:
?? ??? ??? ??? ?y++;
?? ??? ??? ?case 3:
?? ??? ??? ??? ?y++;
?? ??? ??? ?case 4:
?? ??? ??? ??? ?y++;
?? ??? ?}
?? ??? ?System.out.println("y="+y);

###03.23_Java語言基礎(選擇結構if語句和switch語句的區別)(掌握)
* A:總結switch語句和if語句的各自使用場景
* ?? ?switch建議判斷固定值的時候用
* ?? ?if建議判斷區間或范圍的時候用
* B:案例演示
?? ?* 分別用switch語句和if語句實現下列需求:
?? ??? ?* 鍵盤錄入月份,輸出對應的季節

###03.24_day03總結
把今天的知識點總結一遍。

###04.01_Java語言基礎(循環結構概述和for語句的格式及其使用)
* A:循環結構的分類
?? ?* for,while,do...while?
* B:循環結構for語句的格式:
*?
?? ??? ?for(初始化表達式;條件表達式;循環后的操作表達式) {
?? ??? ??? ?循環體;
?? ??? ?}
* C執行流程:
?? ?* a:執行初始化語句
?? ?* b:執行判斷條件語句,看其返回值是true還是false
?? ??? ?* 如果是true,就繼續執行
?? ??? ?* 如果是false,就結束循環
?? ?* c:執行循環體語句;
?? ?* d:執行循環后的操作表達式
?? ?* e:回到B繼續。
* D:案例演示
?? ?* 在控制臺輸出10次"helloworld"
?? ?
###04.02_Java語言基礎(循環結構for語句的練習之獲取數據)
* A:案例演示
?? ?* 需求:請在控制臺輸出數據1-10
?? ?* 需求:請在控制臺輸出數據10-1
* B:注意事項
?? ?* a:判斷條件語句無論簡單還是復雜結果是boolean類型。
?? ?* b:循環體語句如果是一條語句,大括號可以省略;如果是多條語句,大括號不能省略。建議永遠不要省略。
?? ?* c:一般來說:有左大括號就沒有分號,有分號就沒有左大括號

###04.03_Java語言基礎(循環結構for語句的練習之求和思想)
* A:案例演示
?? ?* 需求:求出1-10之間數據之和
* B:學生練習
?? ?* 需求:求出1-100之間偶數和
?? ?* 需求:求出1-100之間奇數和

###04.04_Java語言基礎(循環結構for語句的練習之水仙花)
* A:案例演示
?? ?* 需求:在控制臺輸出所有的”水仙花數”

?? ?* 所謂的水仙花數是指一個三位數,其各位數字的立方和等于該數本身。
?? ?* 舉例:153就是一個水仙花數。
?? ?* 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153

###04.05_Java語言基礎(循環結構for語句的練習之統計思想)
* A:案例演示
?? ?* 需求:統計”水仙花數”共有多少個

###04.06_Java語言基礎(循環結構while語句的格式和基本使用)
* A:循環結構while語句的格式:
* ?? ??? ?
?? ??? ?while循環的基本格式:
?? ??? ?while(判斷條件語句) {
?? ??? ??? ?循環體語句;
?? ??? ?}
?? ??? ?
?? ??? ?完整格式:
?? ??? ?
?? ??? ?初始化語句;
?? ? ? ?while(判斷條件語句) {
?? ??? ??? ? 循環體語句;
?? ??? ??? ? 控制條件語句;
?? ??? ?}
* B:執行流程:
?? ?* a:執行初始化語句
?? ?* b:執行判斷條件語句,看其返回值是true還是false
?? ??? ?* 如果是true,就繼續執行
?? ??? ?* 如果是false,就結束循環
?? ?* c:執行循環體語句;
?? ?* d:執行控制條件語句
?? ?* e:回到B繼續。
* C:案例演示
?? ?* 需求:請在控制臺輸出數據1-10

###04.07_Java語言基礎(循環結構while語句的練習)
* A:求和思想
?? ?* 求1-100之和
* B:統計思想
?? ?* 統計”水仙花數”共有多少個

###04.08_Java語言基礎(循環結構do...while語句的格式和基本使用)
* A:循環結構do...while語句的格式:
*?
?? ??? ?do {
?? ??? ??? ?循環體語句;
?? ??? ?}while(判斷條件語句);
?? ??? ?
?? ??? ?完整格式;
?? ??? ?初始化語句;
?? ??? ?do {
?? ??? ??? ?循環體語句;
?? ??? ??? ?控制條件語句;
?? ??? ?}while(判斷條件語句);
* B:執行流程:
?? ?* a:執行初始化語句
?? ?* b:執行循環體語句;
?? ?* c:執行控制條件語句
?? ?* d:執行判斷條件語句,看其返回值是true還是false
?? ??? ?* 如果是true,就繼續執行
?? ??? ?* 如果是false,就結束循環
?? ?* e:回到b繼續。
* C:案例演示
?? ?* 需求:請在控制臺輸出數據1-10

###04.09_Java語言基礎(循環結構三種循環語句的區別)
* A:案例演示
?? ?* 三種循環語句的區別:
?? ?* do...while循環至少執行一次循環體。
?? ?* 而for,while循環必須先判斷條件是否成立,然后決定是否執行循環體語句。
* B:案例演示
?? ?* for循環和while循環的區別:
?? ??? ?* A:如果你想在循環結束后,繼續使用控制條件的那個變量,用while循環,否則用for循環。不知道用誰就用for循環。因為變量及早的從內存中消失,可以提高內存的使用效率。
?? ??? ??? ??? ?
###04.10_Java語言基礎(循環結構注意事項之死循環)
* A:一定要注意控制條件語句控制的那個變量的問題,不要弄丟了,否則就容易死循環。
* B:兩種最簡單的死循環格式
?? ?* while(true){...}
?? ?* for(;;){...}

###04.11_Java語言基礎(循環結構循環嵌套輸出4行5列的星星)
* A:案例演示
?? ?* 需求:請輸出一個4行5列的星星(*)圖案。
?? ?*?
?? ??? ??? ?如圖:
?? ??? ??? ??? ?*****
?? ??? ??? ??? ?*****
?? ??? ??? ??? ?*****
?? ??? ??? ??? ?*****
?? ??? ??? ??? ?
?? ??? ??? ?注意:
?? ??? ??? ??? ?System.out.println("*");和System.out.print("*");的區別
* B:結論:
?? ?* 外循環控制行數,內循環控制列數

###04.12_Java語言基礎(循環結構循環嵌套輸出正三角形)
* A:案例演示
*?
?? ??? ?需求:請輸出下列的形狀
?? ??? ?*
?? ??? ?**
?? ??? ?***
?? ??? ?****
?? ??? ?*****

###04.13_Java語言基礎(循環結構九九乘法表)
* A:案例演示
?? ?* 需求:在控制臺輸出九九乘法表。
* B:代碼優化
*?
?? ??? ?注意:
?? ??? ?'\x' x表示任意,\是轉義符號,這種做法叫轉移字符。
?? ??? ?
?? ??? ?'\t'?? ?tab鍵的位置
?? ??? ?'\r'?? ?回車
?? ??? ?'\n'?? ?換行
?? ??? ?'\"'
?? ??? ?'\''

?? ?
###04.14_Java語言基礎(控制跳轉語句break語句)
* A:break的使用場景
?? ?* 只能在switch和循環中?

###04.15_Java語言基礎(控制跳轉語句continue語句)
* A:continue的使用場景
?? ?* 只能在循環中?

###04.16_Java語言基礎(控制跳轉語句標號)
* 標號:標記某個循環對其控制
* 標號組成規則:其實就是合法的標識符

###04.17_Java語言基礎(控制調整語句練習)
* A:練習題
*?
?? ??? ?for(int x=1; x<=10; x++) {
?? ??? ??? ?if(x%3==0) {
?? ??? ??? ??? ?//在此處填寫代碼
?? ??? ??? ?}
?? ??? ??? ?System.out.println(“Java基礎班”);
?? ??? ?}
?? ??? ?
?? ??? ?我想在控制臺輸出2次:“Java基礎班“
?? ??? ?我想在控制臺輸出7次:“Java基礎班“
?? ??? ?我想在控制臺輸出13次:“Java基礎班“?? ?


###04.18_Java語言基礎(控制跳轉語句return語句)
* A:return的作用
?? ?* 返回
?? ?* 其實它的作用不是結束循環的,而是結束方法的。
* B:案例演示
?? ?* return和break以及continue的區別?
?? ?* return是結束方法
?? ?* break是跳出循環
?? ?* continue是終止本次循環繼續下次循環


###04.19_Java語言基礎(方法概述和格式說明)
* A:為什么要有方法
?? ?* 提高代碼的復用性?
* B:什么是方法
?? ?* 完成特定功能的代碼塊。?
* C:方法的格式
*?
?? ??? ?修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2...) {
?? ??? ??? ?方法體語句;
?? ??? ??? ?return 返回值;?
?? ??? ?}?
* D:方法的格式說明
?? ?* 修飾符:目前就用 public static。后面我們再詳細的講解其他的修飾符。
?? ?* 返回值類型:就是功能結果的數據類型。
?? ?* 方法名:符合命名規則即可。方便我們的調用。
?? ?* 參數:
?? ??? ?* 實際參數:就是實際參與運算的。
?? ??? ?* 形式參數;就是方法定義上的,用于接收實際參數的。
?? ?* 參數類型:就是參數的數據類型
?? ?* 參數名:就是變量名
?? ?* 方法體語句:就是完成功能的代碼。
?? ?* return:結束方法的。
?? ?* 返回值:就是功能的結果,由return帶給調用者。?

###04.20_Java語言基礎(方法之求和案例及其調用)
* A:如何寫一個方法
?? ?* 1,明確返回值類型
?? ?* 2,明確參數列表?
* B:案例演示
?? ?* 需求:求兩個數據之和的案例
* C:方法調用圖解

###04.21_Java語言基礎(方法的注意事項)
* A:方法調用(有具體返回值)
?? ?* a:單獨調用,一般來說沒有意義,所以不推薦。
?? ?* b:輸出調用,但是不夠好。因為我們可能需要針對結果進行進一步的操作。
?? ?* c:賦值調用,推薦方案。
* B:案例演示
?? ?* a:方法不調用不執行
?? ?* b:方法與方法是平級關系,不能嵌套定義
?? ?* c:方法定義的時候參數之間用逗號隔開
?? ?* d:方法調用的時候不用在傳遞數據類型
?? ?* e:如果方法有明確的返回值,一定要有return帶回一個值

###04.22_Java語言基礎(方法的練習)
* A:案例演示
?? ?* 需求:鍵盤錄入兩個數據,返回兩個數中的較大值
* B:案例演示
?? ?* 需求:鍵盤錄入兩個數據,比較兩個數是否相等 ? ??


###04.23_Java語言基礎(方法之輸出星形及其調用)
* A:案例演示
?? ?* 需求:根據鍵盤錄入的行數和列數,在控制臺輸出星形
* B:方法調用:(無返回值,void)
?? ?* 單獨調用
?? ?* 輸出調用(錯誤)
?? ?* 賦值調用(錯誤)

###04.24_Java語言基礎(方法的練習)
* A:案例演示
?? ?* 需求:根據鍵盤錄入的數據輸出對應的乘法表

###04.25_Java語言基礎(方法重載概述和基本使用)
* A:方法重載概述
?? ?* 求和案例
?? ??? ?* 2個整數
?? ??? ?* 3個整數
?? ??? ?* 4個整數
* B:方法重載:
?? ?* 在同一個類中,方法名相同,參數列表不同。與返回值類型無關。
?? ?
?? ?* 參數列表不同:
?? ??? ?* A:參數個數不同
?? ??? ?* B:參數類型不同
?? ??? ?* C:參數的順序不同(算重載,但是在開發中不用)


###04.26_Java語言基礎(方法重載練習比較數據是否相等)
* A:案例演示
?? ?* 需求:比較兩個數據是否相等。
?? ?* 參數類型分別為兩個int類型,兩個double類型,并在main方法中進行測試

###04.27_day04總結
把今天的知識點總結一遍。

###05.01_Java語言基礎(數組概述和定義格式說明)(了解)
* A:為什么要有數組(容器)
?? ?* 為了存儲同種數據類型的多個值
* B:數組概念
?? ?* 數組是存儲同一種數據類型多個元素的集合。也可以看成是一個容器。
?? ?* 數組既可以存儲基本數據類型,也可以存儲引用數據類型。

* C:數組定義格式
?? ?數據類型[] 數組名 = new 數據類型[數組的長度];
###05.02_Java語言基礎(數組的初始化動態初始化)(掌握)
* A:什么是數組的初始化
?? ?* 就是為數組開辟連續的內存空間,并為每個數組元素賦予值?
* B:如何對數組進行初始化
?? ?* a:動態初始化 只指定長度,由系統給出初始化值
?? ??? ?* int[] arr = new int[5]; ?? ?
?? ?* b:靜態初始化 給出初始化值,由系統決定長度?? ?
* C:動態初始化的格式:
?? ?* 數據類型[] 數組名 = new 數據類型[數組長度];
* D:案例演示
?? ?* 輸出數組名稱和數組元素

###05.03_Java語言基礎(Java中的內存分配以及棧和堆的區別)
* A:棧(掌握)
?? ?* 存儲局部變量?
* B:堆(掌握)
?? ?* 存儲new出來的數組或對象?
* C:方法區
?? ?* 面向對象部分講解?
* D:本地方法區
?? ?* 和系統相關?
* E:寄存器
?? ?* 給CPU使用
###05.04_Java語言基礎(數組的內存圖解1一個數組)(掌握)
* A:畫圖演示
?? ?* 一個數組

###05.05_Java語言基礎(數組的內存圖解2二個數組)(了解)
* A:畫圖演示
?? ?* 二個不同的數組

###05.06_Java語言基礎(數組的內存圖解3三個引用兩個數組)(了解)
* A:畫圖演示
?? ?* 三個引用,有兩個數組的引用指向同一個地址

###05.07_Java語言基礎(數組的初始化靜態初始化及內存圖)(掌握)
* A:靜態初始化的格式:
?? ?* 格式:數據類型[] 數組名 = new 數據類型[]{元素1,元素2,…};
?? ?* 簡化格式:
?? ??? ?* 數據類型[] 數組名 = {元素1,元素2,…};
* B:案例演示
?? ?* 對數組的解釋
?? ?* 輸出數組名稱和數組元素
* C:畫圖演示
?? ?* 一個數組

###05.08_Java語言基礎(數組操作的兩個常見小問題越界和空指針)(掌握)
* A:案例演示
?? ?* a:ArrayIndexOutOfBoundsException:數組索引越界異常
?? ??? ?* 原因:你訪問了不存在的索引。
?? ?* b:NullPointerException:空指針異常
?? ??? ?* 原因:數組已經不在指向堆內存了。而你還用數組名去訪問元素。
?? ??? ?* int[] arr = {1,2,3};
?? ??? ?* arr = null;
?? ??? ?* System.out.println(arr[0]);

###05.09_Java語言基礎(數組的操作1遍歷)(掌握)
* A:案例演示
?? ?* 數組遍歷:就是依次輸出數組中的每一個元素。
?? ?* 數組的屬性:arr.length數組的長度
?? ?* 數組的最大索引:arr.length - 1;
?? ??
?? ??? ??? ?public static void print(int[] arr) {
?? ??? ??? ??? ?for (int i = 0;i < arr.length ;i++ ) {
?? ??? ??? ??? ??? ?System.out.print(arr[i] + " ");
?? ??? ??? ??? ?}
?? ??? ??? ?}

###05.10_Java語言基礎(數組的操作2獲取最值)(掌握)
* A:案例演示
?? ?* 數組獲取最值(獲取數組中的最大值最小值)
?? ??? ?
?? ??? ??? ?public static int getMax(int[] arr) {
?? ??? ??? ??? ?int max = arr[0];
?? ??? ??? ??? ?for (int i = 1;i < arr.length ;i++ ) {?? ??? ??? ?//從數組的第二個元素開始遍歷
?? ??? ??? ??? ??? ?if (max < arr[i]) {?? ??? ??? ??? ??? ??? ??? ?//如果max記錄的值小于的數組中的元素
?? ??? ??? ??? ??? ??? ?max = arr[i];?? ??? ??? ??? ??? ??? ??? ?//max記錄住較大的
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ?
?? ??? ??? ??? ?return max;
?? ??? ??? ?}
###05.11_Java語言基礎(數組的操作3反轉)(掌握)
* A:案例演示
?? ?* 數組元素反轉(就是把元素對調)
?? ??? ??? ?
?? ??? ??? ?public static void reverseArray(int[] arr) {
?? ??? ??? ??? ?for (int i = 0;i < arr.length / 2 ; i++) {
?? ??? ??? ??? ??? ?//arr[0]和arr[arr.length-1-0]交換
?? ??? ??? ??? ??? ?//arr[1]和arr[arr.length-1-1]交換
?? ??? ??? ??? ??? ?//arr[2]和arr[arr.lentth-1-2]
?? ??? ??? ??? ??? ?//...
?? ??? ?
?? ??? ??? ??? ??? ?int temp = arr[i];
?? ??? ??? ??? ??? ?arr[i] = arr[arr.length-1-i];
?? ??? ??? ??? ??? ?arr[arr.length-1-i] = temp;
?? ??? ??? ??? ?}
?? ??? ??? ?}

###05.12_Java語言基礎(數組的操作4查表法)(掌握)
* A:案例演示
?? ?* 數組查表法(根據鍵盤錄入索引,查找對應星期)
?? ?
?? ??? ??? ?public static char getWeek(int week) {
?? ??? ??? ??? ?char[] arr = {' ','一','二','三','四','五','六','日'};?? ??? ?//定義了一張星期表
?? ??? ??? ??? ?return arr[week];?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?//通過索引獲取表中的元素
?? ??? ??? ?}

###05.13_Java語言基礎(數組的操作5基本查找)(掌握)
* A:案例演示
?? ?* 數組元素查找(查找指定元素第一次在數組中出現的索引)
?? ?
?? ??? ??? ?public static int getIndex(int[] arr,int value) {
?? ??? ??? ??? ?for (int i = 0;i < arr.length ;i++ ) {?? ??? ??? ??? ?//數組的遍歷
?? ??? ??? ??? ??? ?if (arr[i] == value) {?? ??? ??? ??? ??? ??? ??? ?//如果數組中的元素與查找的元素匹配
?? ??? ??? ??? ??? ??? ?return i;
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ??? ?return -1;
?? ??? ??? ?}?

###05.14_Java語言基礎(二維數組概述和格式1的講解)(了解)
* A:二維數組概述
* B:二維數組格式1
?? ?* int[][] arr = new int[3][2];?
* C:二維數組格式1的解釋
* D:注意事項
?? ?* a:以下格式也可以表示二維數組
?? ??? ?* 1:數據類型 數組名[][] = new 數據類型[m][n];
?? ??? ?* 2:數據類型[] 數組名[] = new 數據類型[m][n];
?? ?* B:注意下面定義的區別
?? ?*?
?? ??? ??? ?int x;
?? ??? ??? ?int y;
?? ??? ??? ?int x,y;
?? ??? ??? ?
?? ??? ??? ?int[] x;
?? ??? ??? ?int[] y[];
?? ??? ??? ?
?? ??? ??? ?int[] x,y[];?? ?x是一維數組,y是二維數組
* E:案例演示
?? ?* 定義二維數組,輸出二維數組名稱,一維數組名稱,一個元素

###05.15_Java語言基礎(二維數組格式1的內存圖解)(了解)
* A:畫圖演示
?? ?* 畫圖講解上面的二維數組名稱,一維數組名稱,一個元素的值的問題

###05.16_Java語言基礎(二維數組格式2的講解及其內存圖解)(了解)
* A:二維數組格式2
?? ?* int[][] arr = new int[3][];?
* B:二維數組格式2的解釋
* C:案例演示
?? ?* 講解格式,輸出數據,并畫內存圖

###05.17_Java語言基礎(二維數組格式3的講解及其內存圖解)(了解)
* A:二維數組格式3
?? ?* int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};?
* B:二維數組格式3的解釋
* C:案例演示
?? ?* 講解格式,輸出數據,并畫內存圖

###05.18_Java語言基礎(二維數組練習1遍歷)(掌握)
* A:案例演示
?? ?* 需求:二維數組遍歷

?? ?* 外循環控制的是二維數組的長度,其實就是一維數組的個數。
?? ?* 內循環控制的是一維數組的長度。

?? ??? ??? ?int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
?? ?
?? ??? ??? ?for (int i = 0;i < arr.length ;i++ ) {?? ??? ??? ?//獲取到每個二維數組中的一維數組
?? ??? ??? ??? ?for (int j = 0;j < arr[i].length ;j++ ) {?? ?//獲取每個一維數組中的元素
?? ??? ??? ??? ??? ?System.out.print(arr[i][j] + " ");
?? ??? ??? ??? ?}
?? ?
?? ??? ??? ??? ?System.out.println();
?? ??? ??? ?}
###05.19_Java語言基礎(二維數組練習2求和)(掌握)
* A:案例演示
*?
?? ??? ?需求:公司年銷售額求和
?? ??? ?某公司按照季度和月份統計的數據如下:單位(萬元)
?? ??? ?第一季度:22,66,44
?? ??? ?第二季度:77,33,88
?? ??? ?第三季度:25,45,65
?? ??? ?第四季度:11,66,99
?? ??? ?
?? ??? ?int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};

?? ??? ?int sum = 0;?? ??? ??? ??? ??? ??? ??? ??? ??? ?//定義變量,記錄每次相加的結果
?? ??? ?for (int i = 0;i < arr.length ;i++ ) {?? ??? ??? ?//獲取每一個一維數組
?? ??? ??? ?for (int j = 0;j < arr[i].length ;j++ ) {?? ?//獲取每一個一維數組中的元素
?? ??? ??? ??? ?sum = sum + arr[i][j];?? ??? ??? ??? ??? ?//累加
?? ??? ??? ?}
?? ??? ?}

?? ??? ?System.out.println(sum);
###05.20_Java語言基礎(思考題Java中的參數傳遞問題及圖解)(掌握)
* A:案例演示
*?
?? ??? ?看程序寫結果,并畫內存圖解釋
?? ??? ?public static void main(String[] args) {
?? ??? ??? ?int a = 10;
?? ??? ??? ?int b = 20;
?? ??? ??? ?System.out.println("a:"+a+",b:"+b);
?? ??? ??? ?change(a,b);
?? ??? ??? ?System.out.println("a:"+a+",b:"+b);
?? ?
?? ??? ??? ?int[] arr = {1,2,3,4,5};
?? ??? ??? ?change(arr);
?? ??? ??? ?System.out.println(arr[1]);
?? ??? ?}
?? ?
?? ??? ?public static void change(int a,int b) {
?? ??? ??? ?System.out.println("a:"+a+",b:"+b);
?? ??? ??? ?a = b;
?? ??? ??? ?b = a + b;
?? ??? ??? ?System.out.println("a:"+a+",b:"+b);
?? ??? ?}
?? ?
?? ??? ?public static void change(int[] arr) {
?? ??? ??? ?for(int x=0; x<arr.length; x++) {
?? ??? ??? ??? ?if(arr[x]%2==0) {
?? ??? ??? ??? ??? ?arr[x]*=2;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ?}

###05.21_day05總結
* 把今天的知識點總結一遍。

###06.01_面向對象(面向對象思想概述)(了解)
* A:面向過程思想概述
?? ?* 第一步
?? ?* 第二步?
* B:面向對象思想概述
?? ?* 找對象(第一步,第二步)?
* C:舉例
?? ?* 買煎餅果子
?? ?* 洗衣服?
* D:面向對象思想特點
?? ?* a:是一種更符合我們思想習慣的思想
?? ?* b:可以將復雜的事情簡單化
?? ?* c:將我們從執行者變成了指揮者
?? ??? ?* 角色發生了轉換
* E:面向對象開發
?? ?* 就是不斷的創建對象,使用對象,指揮對象做事情。
* F:面向對象設計
?? ?* 其實就是在管理和維護對象之間的關系。
* G:面向對象特征
?? ?* 封裝(encapsulation)
?? ?* 繼承(inheritance)
?? ?* 多態(polymorphism)

###06.02_面向對象(類與對象概述)(掌握)
* A:我們學習編程是為了什么
?? ?* 為了把我們日常生活中實物用學習語言描述出來
* B:我們如何描述現實世界事物
?? ?* 屬性?? ?就是該事物的描述信息(事物身上的名詞)
?? ?* 行為?? ?就是該事物能夠做什么(事物身上的動詞)
* C:Java中最基本的單位是類,Java中用class描述事物也是如此
?? ?* 成員變量?? ?就是事物的屬性
?? ?* 成員方法?? ?就是事物的行為
* D:定義類其實就是定義類的成員(成員變量和成員方法)
?? ?* a:成員變量?? ?和以前定義變量是一樣的,只不過位置發生了改變。在類中,方法外。
?? ?* b:成員方法?? ?和以前定義方法是一樣的,只不過把static去掉,后面在詳細講解static的作用。
* E:類和對象的概念
?? ?* a:類:是一組相關的屬性和行為的集合
?? ?* b:對象:是該類事物的具體體現
?? ?* c:舉例:
?? ??? ?* 類?? ? 學生
?? ??? ?* 對象?? ?具體的某個學生就是一個對象

###06.03_面向對象(學生類的定義)(掌握)
* A:學生事物
* B:學生類
* C:案例演示
?? ?* 屬性:姓名,年齡,性別
?? ?* 行為:學習,睡覺

###06.04_面向對象(手機類的定義)(掌握)
* 模仿學生類,讓學生自己完成
?? ?* 屬性:品牌(brand)價格(price)
?? ?* 行為:打電話(call),發信息(sendMessage)玩游戲(playGame)

###06.05_面向對象(學生類的使用)(掌握)
* A:文件名問題
?? ?* 在一個java文件中寫兩個類:一個基本的類,一個測試類。
?? ?* 建議:文件名稱和測試類名稱一致。
* B:如何使用對象?
?? ?* 創建對象并使用
?? ?* 格式:類名 對象名 = new 類名();
* D:如何使用成員變量呢?
?? ?* 對象名.變量名
* E:如何使用成員方法呢?
?? ?* 對象名.方法名(...)

###06.06_面向對象(手機類的使用)(掌握)
* A:學生自己完成
?? ?* 模仿學生類,讓學生自己完成
?? ?
###06.07_面向對象(一個對象的內存圖)(掌握)
* A:畫圖演示
?? ?* 一個對象

###06.08_面向對象(二個對象的內存圖)(了解)
* A:畫圖演示
?? ?* 二個不同的對象

###06.09_面向對象(三個引用兩個對象的內存圖)(了解)
* A:畫圖演示
?? ?* 三個引用,有兩個對象的引用指向同一個地址

###06.10_面向對象(成員變量和局部變量的區別)(掌握)
* A:在類中的位置不同
?? ?* 成員變量:在類中方法外
?? ?* 局部變量:在方法定義中或者方法聲明上
* B:在內存中的位置不同
?? ?* 成員變量:在堆內存(成員變量屬于對象,對象進堆內存)
?? ?* 局部變量:在棧內存(局部變量屬于方法,方法進棧內存)
* C:生命周期不同
?? ?* 成員變量:隨著對象的創建而存在,隨著對象的消失而消失
?? ?* 局部變量:隨著方法的調用而存在,隨著方法的調用完畢而消失
* D:初始化值不同
?? ?* 成員變量:有默認初始化值
?? ?* 局部變量:沒有默認初始化值,必須定義,賦值,然后才能使用。
?? ?
* 注意事項:
?? ?* 局部變量名稱可以和成員變量名稱一樣,在方法中使用的時候,采用的是就近原則。
?? ?* 基本數據類型變量包括哪些:byte,short,int,long,float,double,boolean,char
?? ?* 引用數據類型變量包括哪些:數組,類,接口,枚舉
?? ?
###06.11_面向對象(方法的形式參數是類名的時候如何調用)(掌握)
* A:方法的參數是類名public void print(Student s){}//print(new Student());
?? ?* 如果你看到了一個方法的形式參數是一個類類型(引用類型),這里其實需要的是該類的對象。

###06.12_面向對象(匿名對象的概述和應用)(掌握)
* A:什么是匿名對象
?? ?* 沒有名字的對象?
* B:匿名對象應用場景
?? ?* a:調用方法,僅僅只調用一次的時候。
?? ??? ?* 那么,這種匿名調用有什么好處嗎?
?? ??? ??? ?* 節省代碼?
?? ??? ?* 注意:調用多次的時候,不適合。匿名對象調用完畢就是垃圾。可以被垃圾回收器回收。
?? ?* b:匿名對象可以作為實際參數傳遞
* C:案例演示
?? ?* 匿名對象應用場景

###06.13_面向對象(封裝的概述)(掌握)
* A:封裝概述
?? ?* 是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。

* B:封裝好處
?? ?* 隱藏實現細節,提供公共的訪問方式
?? ?* 提高了代碼的復用性
?? ?* 提高安全性。
* C:封裝原則
?? ?* 將不需要對外提供的內容都隱藏起來。
?? ?* 把屬性隱藏,提供公共方法對其訪問。

###06.14_面向對象(private關鍵字的概述和特點)(掌握)
* A:人類賦值年齡的問題
* B:private關鍵字特點
?? ?* a:是一個權限修飾符
?? ?* b:可以修飾成員變量和成員方法
?? ?* c:被其修飾的成員只能在本類中被訪問
* C:案例演示
?? ?* 封裝和private的應用:
?? ?* A:把成員變量用private修飾
?? ?* B:提供對應的getXxx()和setXxx()方法
?? ?* private僅僅是封裝的一種體現形式,不能說封裝就是私有

###06.15_面向對象(this關鍵字的概述和應用)(掌握)
* A:this關鍵字特點
?? ?* 代表當前對象的引用?
* B:案例演示
?? ?* this的應用場景
?? ?* 用來區分成員變量和局部變量重名

###06.16_面向對象(手機類代碼及其測試)(掌握)
* A:學生練習
?? ?* 請把手機類寫成一個標準類,然后創建對象測試功能。
?? ??
?? ??? ??? ?class Demo2_Phone {
?? ??? ??? ??? ?public static void main(String[] args) {
?? ??? ??? ??? ??? ?Phone p1 = new Phone();
?? ??? ??? ??? ??? ?p1.setBrand("三星");
?? ??? ??? ??? ??? ?p1.setPrice(5288);
?? ??? ??? ?
?? ??? ??? ??? ??? ?System.out.println(p1.getBrand() + "..." + p1.getPrice());
?? ??? ??? ??? ??? ?p1.call();
?? ??? ??? ??? ??? ?p1.sendMessage();
?? ??? ??? ??? ??? ?p1.playGame();
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?/*
?? ??? ??? ?手機類
?? ??? ??? ??? ?屬性:品牌brand,價格price
?? ??? ??? ??? ?行為:打電話call,發短信sendMessage,玩游戲,playGame
?? ??? ??? ?*/
?? ??? ??? ?class Phone {?? ??? ??? ??? ??? ??? ??? ??? ?//java bean
?? ??? ??? ??? ?private String brand;?? ??? ??? ??? ??? ?//品牌
?? ??? ??? ??? ?private int price;?? ??? ??? ??? ??? ??? ?//價格
?? ??? ??? ?
?? ??? ??? ??? ?public void setBrand(String brand) {?? ?//設置品牌
?? ??? ??? ??? ??? ?this.brand = brand;
?? ??? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ??? ?public String getBrand() {?? ??? ??? ??? ?//獲取品牌
?? ??? ??? ??? ??? ?return this.brand;?? ??? ??? ??? ??? ?//this.可以省略,你不加系統會默認給你加
?? ??? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ??? ?public void setPrice(int price) {?? ??? ?//設置價格
?? ??? ??? ??? ??? ?this.price = price;
?? ??? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ??? ?public int getPrice() {?? ??? ??? ??? ??? ?//獲取價格
?? ??? ??? ??? ??? ?return price;
?? ??? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ??? ?public void call() {?? ??? ??? ??? ??? ?//打電話
?? ??? ??? ??? ??? ?System.out.println("打電話");
?? ??? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ??? ?public void sendMessage() {?? ??? ??? ??? ?//發短信
?? ??? ??? ??? ??? ?System.out.println("發短信");
?? ??? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ??? ?public void playGame() {?? ??? ??? ??? ?//玩游戲
?? ??? ??? ??? ??? ?System.out.println("玩游戲");
?? ??? ??? ??? ?}
?? ??? ??? ?}
###06.17_day06總結
* 把今天的知識點總結一遍。

###07.01_面向對象(構造方法Constructor概述和格式)(掌握)
* A:構造方法概述和作用
?? ?* 給對象的數據(屬性)進行初始化
* B:構造方法格式特點
?? ?* a:方法名與類名相同(大小也要與類名一致)
?? ?* b:沒有返回值類型,連void都沒有
?? ?* c:沒有具體的返回值return;

###07.02_面向對象(構造方法的重載及注意事項)(掌握)
* A:案例演示
?? ?* 構造方法的重載
?? ?* 重載:方法名相同,與返回值類型無關(構造方法沒有返回值),只看參數列表
* B:構造方法注意事項
?? ?* a:如果我們沒有給出構造方法,系統將自動提供一個無參構造方法。
?? ?* b:如果我們給出了構造方法,系統將不再提供默認的無參構造方法。
?? ??? ?* 注意:這個時候,如果我們還想使用無參構造方法,就必須自己給出。建議永遠自己給出無參構造方法
?? ??? ?
###07.03_面向對象(給成員變量賦值的兩種方式的區別)
* A:setXxx()方法
?? ?* 修改屬性值?
* B:構造方法
?? ?* 給對象中屬性進行初始化?

###07.04_面向對象(學生類的代碼及測試)(掌握)
* A:案例演示
?? ?* 學生類:
?? ??? ?* 成員變量:
?? ??? ??? ?* name,age
?? ??? ?* 構造方法:
?? ??? ??? ?* 無參,帶兩個參
?? ??? ?* 成員方法:
?? ??? ??? ?* getXxx()/setXxx()
?? ??? ??? ?* show():輸出該類的所有成員變量值
* B:給成員變量賦值:
?? ?* a:setXxx()方法
?? ?* b:構造方法
?? ?
* C:輸出成員變量值的方式:
?? ?* a:通過getXxx()分別獲取然后拼接
?? ?* b:通過調用show()方法搞定

###07.05_面向對象(手機類的代碼及測試)(掌握)
* A:案例演示
?? ?* 模仿學生類,完成手機類代碼

###07.06_面向對象(創建一個對象的步驟)(掌握)
* A:畫圖演示
?? ?* 畫圖說明一個對象的創建過程做了哪些事情?
?? ?* Student s = new Student();
?? ?* 1,Student.class加載進內存
?? ?* 2,聲明一個Student類型引用s
?? ?* 3,在堆內存創建對象,
?? ?* 4,給對象中屬性默認初始化值
?? ?* 5,屬性進行顯示初始化
?? ?* 6,構造方法進棧,對對象中的屬性賦值,構造方法彈棧
?? ?* 7,將對象的地址值賦值給s

###07.07_面向對象(長方形案例練習)(掌握)
* A:案例演示
?? ?* 需求:
?? ??? ?* 定義一個長方形類,定義 求周長和面積的方法,
?? ??? ?* 然后定義一個測試類進行測試。

###07.08_面向對象(員工類案例練習)(掌握)
* A:案例演示
?? ?* 需求:定義一個員工類Employee
?? ?* 自己分析出幾個成員,然后給出成員變量
?? ??? ?* 姓名name,工號id,工資salary?
?? ?* 構造方法,
?? ??? ?* 空參和有參的
?? ?* getXxx()setXxx()方法,
?? ?* 以及一個顯示所有成員信息的方法。并測試。
?? ??? ?* work?

###07.09_面向對象(static關鍵字及內存圖)(了解)
* A:案例演示
?? ?* 通過一個案例引入static關鍵字。
?? ?* 人類:Person。每個人都有國籍,中國。

* B:畫圖演示
?? ?* 帶有static的內存圖
?
###07.10_面向對象(static關鍵字的特點)(掌握)
* A:static關鍵字的特點
?? ?* a:隨著類的加載而加載
?? ?* b:優先于對象存在
?? ?* c:被類的所有對象共享
?? ??? ?* 舉例:咱們班級的學生應該共用同一個班級編號。
?? ??? ?* 其實這個特點也是在告訴我們什么時候使用靜態?
?? ??? ??? ?* 如果某個成員變量是被所有對象共享的,那么它就應該定義為靜態的。
?? ??? ?* 舉例:
?? ??? ??? ?* 飲水機(用靜態修飾)
?? ??? ??? ?* 水杯(不能用靜態修飾)
?? ??? ??? ?* 共性用靜態,特性用非靜態
?? ?* d:可以通過類名調用
?? ??? ?* 其實它本身也可以通過對象名調用。
?? ??? ?* 推薦使用類名調用。
?? ??? ?* 靜態修飾的內容一般我們稱其為:與類相關的,類成員
* B:案例演示
?? ?* static關鍵字的特點


###07.11_面向對象(static的注意事項)(掌握)
* A:static的注意事項
?? ?* a:在靜態方法中是沒有this關鍵字的
?? ??? ?* 如何理解呢?
?? ??? ??? ?* 靜態是隨著類的加載而加載,this是隨著對象的創建而存在。
?? ??? ??? ?* 靜態比對象先存在。
?? ?* b:靜態方法只能訪問靜態的成員變量和靜態的成員方法
?? ??? ?* 靜態方法:
?? ??? ??? ?* 成員變量:只能訪問靜態變量
?? ??? ??? ?* 成員方法:只能訪問靜態成員方法
?? ??? ?* 非靜態方法:
?? ??? ??? ?* 成員變量:可以是靜態的,也可以是非靜態的
?? ??? ??? ?* 成員方法:可是是靜態的成員方法,也可以是非靜態的成員方法。
?? ??? ?* 簡單記:
?? ??? ??? ?* 靜態只能訪問靜態。
* B:案例演示
?? ?* static的注意事項

###07.12_面向對象(靜態變量和成員變量的區別)(掌握)
* 靜態變量也叫類變量 ?成員變量也叫對象變量
* A:所屬不同
?? ?* 靜態變量屬于類,所以也稱為為類變量
?? ?* 成員變量屬于對象,所以也稱為實例變量(對象變量)
* B:內存中位置不同
?? ?* 靜態變量存儲于方法區的靜態區
?? ?* 成員變量存儲于堆內存
* C:內存出現時間不同
?? ?* 靜態變量隨著類的加載而加載,隨著類的消失而消失
?? ?* 成員變量隨著對象的創建而存在,隨著對象的消失而消失
* D:調用不同
?? ?* 靜態變量可以通過類名調用,也可以通過對象調用
?? ?* 成員變量只能通過對 象名調用

###07.13_面向對象(main方法的格式詳細解釋)(了解)
* A:格式
?? ?* public static void main(String[] args) {}
* B:針對格式的解釋
?? ?* public 被jvm調用,訪問權限足夠大。
?? ?* static 被jvm調用,不用創建對象,直接類名訪問
?? ?* void被jvm調用,不需要給jvm返回值
?? ?* main 一個通用的名稱,雖然不是關鍵字,但是被jvm識別
?? ?* String[] args 以前用于接收鍵盤錄入的
* C:演示案例
?? ?* 通過args接收鍵盤例如數據

###07.14_面向對象(工具類中使用靜態)(了解)
* A:制作一個工具類
?? ?* ArrayTool
?? ?* 1,獲取最大值
?? ?* 2,數組的遍歷
?? ?* 3,數組的反轉
?? ?

###07.15_面向對象(說明書的制作過程)(了解)
* A:對工具類加入文檔注釋
* B:通過javadoc命令生成說明書
?? ?* @author(提取作者內容)
?? ?* @version(提取版本內容)
?? ?* javadoc -d 指定的文件目錄 -author -version ArrayTool.java
?? ?* @param 參數名稱//形式參數的變量名稱@return 函數運行完返回的數據

###07.16_面向對象(如何使用JDK提供的幫助文檔)(了解)
* A:找到文檔,打開文檔
* B:點擊顯示,找到索引,出現輸入框
* C:你應該知道你找誰?舉例:Scanner
* D:看這個類的結構(需不需要導包)
?? ?* 成員變量?? ?字段
?? ?* 構造方法?? ?構造方法
?? ?* 成員方法?? ?方法

###07.17_面向對象(學習Math類的隨機數功能)(了解)
* 打開JDK提供的幫助文檔學習
* A:Math類概述
?? ?* 類包含用于執行基本數學運算的方法
* B:Math類特點
?? ?* 由于Math類在java.lang包下,所以不需要導包。
?? ?* 因為它的成員全部是靜態的,所以私有了構造方法
* C:獲取隨機數的方法
?? ?* public static double random():返回帶正號的 double 值,該值大于等于 0.0 且小于 1.0。
* D:我要獲取一個1-100之間的隨機數,腫么辦?
?? ?* int number = (int)(Math.random()*100)+1;
?? ?
###07.18_面向對象(猜數字小游戲案例)(了解)
* A:案例演示
?? ?* 需求:猜數字小游戲(數據在1-100之間)

###07.19_day07總結
把今天的知識點總結一遍。

###08.01_面向對象(代碼塊的概述和分類)(了解)(面試的時候會問,開發不用或者很少用)
* A:代碼塊概述
?? ?* 在Java中,使用{}括起來的代碼被稱為代碼塊。
* B:代碼塊分類
?? ?* 根據其位置和聲明的不同,可以分為局部代碼塊,構造代碼塊,靜態代碼塊,同步代碼塊(多線程講解)。
* C:常見代碼塊的應用
?? ?* a:局部代碼塊?
?? ??? ?* 在方法中出現;限定變量生命周期,及早釋放,提高內存利用率
?? ?* b:構造代碼塊 (初始化塊)
?? ??? ?* 在類中方法外出現;多個構造方法方法中相同的代碼存放到一起,每次調用構造都執行,并且在構造方法前執行
?? ?* c:靜態代碼塊?
?? ??? ?* 在類中方法外出現,并加上static修飾;用于給類進行初始化,在加載的時候就執行,并且只執行一次。
?? ??? ?* 一般用于加載驅動

###08.02_面向對象(代碼塊的面試題)(掌握)
* A:看程序寫結果
*?
?? ??? ?class Student {
?? ??? ??? ?static {
?? ??? ??? ??? ?System.out.println("Student 靜態代碼塊");
?? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ?{
?? ??? ??? ??? ?System.out.println("Student 構造代碼塊");
?? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ?public Student() {
?? ??? ??? ??? ?System.out.println("Student 構造方法");
?? ??? ??? ?}
?? ??? ?}
?? ?
?? ??? ?class Demo2_Student {
?? ??? ??? ?static {
?? ??? ??? ??? ?System.out.println("Demo2_Student靜態代碼塊");
?? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ?public static void main(String[] args) {
?? ??? ??? ??? ?System.out.println("我是main方法");
?? ??? ??? ??? ?
?? ??? ??? ??? ?Student s1 = new Student();
?? ??? ??? ??? ?Student s2 = new Student();
?? ??? ??? ?}
?? ??? ?}


###08.03_面向對象(繼承案例演示)(掌握)
* A:繼承(extends)
?? ?* 讓類與類之間產生關系,子父類關系?
* B:繼承案例演示:
?? ?* 動物類,貓類,狗類
?? ?* 定義兩個屬性(顏色,腿的個數)兩個功能(吃飯,睡覺)
* C:案例演示
?? ?* 使用繼承前
* D:案例演示
?? ?* 使用繼承后

###08.04_面向對象(繼承的好處和弊端)(掌握)
* A:繼承的好處
?? ?* a:提高了代碼的復用性
?? ?* b:提高了代碼的維護性
?? ?* c:讓類與類之間產生了關系,是多態的前提
* B:繼承的弊端
?? ?* 類的耦合性增強了。
?? ?
?? ?* 開發的原則:高內聚,低耦合。
?? ?* 耦合:類與類的關系
?? ?* 內聚:就是自己完成某件事情的能力

###08.05_面向對象(Java中類的繼承特點)(掌握)
* A:Java中類的繼承特點
?? ?* a:Java只支持單繼承,不支持多繼承。(一個兒子只能有一個爹)
?? ??? ?* 有些語言是支持多繼承,格式:extends 類1,類2,...
?? ?* b:Java支持多層繼承(繼承體系)
* B:案例演示
?? ?* Java中類的繼承特點
?? ??? ?* 如果想用這個體系的所有功能用最底層的類創建對象
?? ??? ?* 如果想看這個體系的共性功能,看最頂層的類?

###08.06_面向對象(繼承的注意事項和什么時候使用繼承)(掌握)
* A:繼承的注意事項
?? ?* a:子類只能繼承父類所有非私有的成員(成員方法和成員變量)
?? ?* b:子類不能繼承父類的構造方法,但是可以通過super(馬上講)關鍵字去訪問父類構造方法。
?? ?* c:不要為了部分功能而去繼承
?? ?* 項目經理 姓名 工號 工資 獎金
?? ?* 程序員?? ?姓名 工號 工資
* B:什么時候使用繼承
?? ?* 繼承其實體現的是一種關系:"is a"。
?? ??? ?Person
?? ??? ??? ?Student
?? ??? ??? ?Teacher
?? ??? ?水果
?? ??? ??? ?蘋果
?? ??? ??? ?香蕉
?? ??? ??? ?橘子
?? ??? ??? ?
?? ?采用假設法。
?? ??? ?如果有兩個類A,B。只有他們符合A是B的一種,或者B是A的一種,就可以考慮使用繼承。

###08.07_面向對象(繼承中成員變量的關系)(掌握)
* A:案例演示
?? ?* a:不同名的變量
?? ?* b:同名的變量
###08.08_面向對象(this和super的區別和應用)(掌握)
* A:this和super都代表什么
?? ?* this:代表當前對象的引用,誰來調用我,我就代表誰
?? ?* super:代表當前對象父類的引用
* B:this和super的使用區別
?? ?* a:調用成員變量
?? ??? ?* this.成員變量 調用本類的成員變量,也可以調用父類的成員變量
?? ??? ?* super.成員變量 調用父類的成員變量
?? ?* b:調用構造方法
?? ??? ?* this(...)?? ?調用本類的構造方法
?? ??? ?* super(...)?? ?調用父類的構造方法
?? ?* c:調用成員方法
?? ??? ?* this.成員方法 調用本類的成員方法,也可以調用父類的方法
?? ??? ?* super.成員方法 調用父類的成員方法
?? ??? ?

###08.09_面向對象(繼承中構造方法的關系)(掌握)
* A:案例演示
?? ?* 子類中所有的構造方法默認都會訪問父類中空參數的構造方法
* B:為什么呢?
?? ?* 因為子類會繼承父類中的數據,可能還會使用父類的數據。
?? ?* 所以,子類初始化之前,一定要先完成父類數據的初始化。
?? ?
?? ?* 其實:
?? ??? ?* 每一個構造方法的第一條語句默認都是:super() Object類最頂層的父類。

###08.10_面向對象(繼承中構造方法的注意事項)(掌握)
* A:案例演示
?? ?* 父類沒有無參構造方法,子類怎么辦?
?? ?* super解決
?? ?* this解決
* B:注意事項
?? ?* super(…)或者this(….)必須出現在構造方法的第一條語句上

###08.11_面向對象(繼承中的面試題)(掌握)

* A:案例演示
* ?? ??? ?
?? ??? ?看程序寫結果1
?? ??? ?class Fu{
?? ??? ??? ?public int num = 10;
?? ??? ??? ?public Fu(){
?? ??? ??? ??? ?System.out.println("fu");
?? ??? ??? ?}
?? ??? ?}
?? ??? ?class Zi extends Fu{
?? ??? ??? ?public int num = 20;
?? ??? ??? ?public Zi(){
?? ??? ??? ??? ?System.out.println("zi");
?? ??? ??? ?}
?? ??? ??? ?public void show(){
?? ??? ??? ??? ?int num = 30;
?? ??? ??? ??? ?System.out.println(num);
?? ??? ??? ??? ?System.out.println(this.num);
?? ??? ??? ??? ?System.out.println(super.num);
?? ??? ??? ?}
?? ??? ?}
?? ??? ?class Test1_Extends {
?? ??? ??? ?public static void main(String[] args) {
?? ??? ??? ??? ?Zi z = new Zi();
?? ??? ??? ??? ?z.show();
?? ??? ??? ?}
?? ??? ?}

?? ??? ?看程序寫結果2
?? ??? ?class Fu {
?? ??? ??? ?static {
?? ??? ??? ??? ?System.out.println("靜態代碼塊Fu");
?? ??? ??? ?}
?? ?
?? ??? ??? ?{
?? ??? ??? ??? ?System.out.println("構造代碼塊Fu");
?? ??? ??? ?}
?? ?
?? ??? ??? ?public Fu() {
?? ??? ??? ??? ?System.out.println("構造方法Fu");
?? ??? ??? ?}
?? ??? ?}
?? ?
?? ??? ?class Zi extends Fu {
?? ??? ??? ?static {
?? ??? ??? ??? ?System.out.println("靜態代碼塊Zi");
?? ??? ??? ?}
?? ?
?? ??? ??? ?{
?? ??? ??? ??? ?System.out.println("構造代碼塊Zi");
?? ??? ??? ?}
?? ?
?? ??? ??? ?public Zi() {
?? ??? ??? ??? ?System.out.println("構造方法Zi");
?? ??? ??? ?}
?? ??? ?}
?? ?
?? ??? ?Zi z = new Zi(); 請執行結果。

###08.12_面向對象(繼承中成員方法關系)(掌握)
* A:案例演示
?? ?* a:不同名的方法
?? ?* b:同名的方法

###08.13_面向對象(方法重寫概述及其應用)(掌握)
* A:什么是方法重寫
?? ?* 重寫:子父類出現了一模一樣的方法(注意:返回值類型可以是子父類,這個我們學完面向對象講)?
* B:方法重寫的應用:
?? ?* 當子類需要父類的功能,而功能主體子類有自己特有內容時,可以重寫父類中的方法。這樣,即沿襲了父類的功能,又定義了子類特有的內容。
* C:案例演示
?? ?* a:定義一個手機類。

###08.14_面向對象(方法重寫的注意事項)(掌握)
* A:方法重寫注意事項
?? ?* a:父類中私有方法不能被重寫
?? ??? ?* 因為父類私有方法子類根本就無法繼承
?? ?* b:子類重寫父類方法時,訪問權限不能更低
?? ??? ?* 最好就一致
?? ?* c:父類靜態方法,子類也必須通過靜態方法進行重寫
?? ??? ?* 其實這個算不上方法重寫,但是現象確實如此,至于為什么算不上方法重寫,多態中我會講解(靜態只能覆蓋靜態)
?? ??? ?
?? ?* 子類重寫父類方法的時候,最好聲明一模一樣。
* B:案例演示
?? ?* 方法重寫注意事項

###08.15_面向對象(方法重寫的面試題)(掌握)
* A:方法重寫的面試題
?? ?* Override和Overload的區別?Overload能改變返回值類型嗎?
?? ?* overload可以改變返回值類型,只看參數列表
?? ?* 方法重寫:子類中出現了和父類中方法聲明一模一樣的方法。與返回值類型有關,返回值是一致(或者是子父類)的
?? ?
?? ?* 方法重載:本類中出現的方法名一樣,參數列表不同的方法。與返回值類型無關。

?? ?* 子類對象調用方法的時候:
?? ??? ?* 先找子類本身,再找父類。

###08.16_面向對象(使用繼承前的學生和老師案例)(掌握)
* A:案例演示
?? ?* 使用繼承前的學生和老師案例
?? ?* 屬性:姓名,年齡
?? ?* 行為:吃飯
?? ?* 老師有特有的方法:講課
?? ?* 學生有特有的方法:學習

###08.17_面向對象(使用繼承后的學生和老師案例)(掌握)
* A:案例演示
?? ?* 使用繼承后的學生和老師案例

###08.18_面向對象(貓狗案例分析,實現及測試)(掌握)
* A:貓狗案例分析
* B:案例演示
?? ?* 貓狗案例繼承版
?? ?* 屬性:毛的顏色,腿的個數
?? ?* 行為:吃飯
?? ?* 貓特有行為:抓老鼠catchMouse
?? ?* 狗特有行為:看家lookHome


###08.19_面向對象(final關鍵字修飾類,方法以及變量的特點)(掌握)
* A:final概述
* B:final修飾特點
?? ?* 修飾類,類不能被繼承
?? ?* 修飾變量,變量就變成了常量,只能被賦值一次
?? ?* 修飾方法,方法不能被重寫
* C:案例演示
?? ?* final修飾特點

###08.20_面向對象(final關鍵字修飾局部變量)(掌握)
* A:案例演示
?? ?* 方法內部或者方法聲明上都演示一下(了解)

?? ?* 基本類型,是值不能被改變
?? ?* 引用類型,是地址值不能被改變,對象中的屬性可以改變

###08.21_面向對象(final修飾變量的初始化時機)(掌握)
* A:final修飾變量的初始化時機
?? ?* 顯示初始化?
?? ?* 在對象構造完畢前即可
?? ?
###08.22_day08總結
* 把今天的知識點總結一遍。

###10.01_面向對象(package關鍵字的概述及作用)(了解)
* A:為什么要有包
?? ?* 將字節碼(.class)進行分類存放?
?? ?* 包其實就是文件夾
* B:包的概述
*?
?? ?舉例:
?? ??? ?學生:增加,刪除,修改,查詢
?? ??? ?老師:增加,刪除,修改,查詢
?? ??? ?...
?? ??? ?
?? ??? ?方案1:按照功能分
?? ??? ??? ?com.heima.add
?? ??? ??? ??? ?AddStudent
?? ??? ??? ??? ?AddTeacher
?? ??? ??? ?com.heima.delete
?? ??? ??? ??? ?DeleteStudent
?? ??? ??? ??? ?DeleteTeacher
?? ??? ??? ?com.heima.update
?? ??? ??? ??? ?UpdateStudent
?? ??? ??? ??? ?UpdateTeacher
?? ??? ??? ?com.heima.find
?? ??? ??? ??? ?FindStudent
?? ??? ??? ??? ?FindTeacher
?? ??? ?
?? ??? ?方案2:按照模塊分
?? ??? ??? ?com.heima.teacher
?? ??? ??? ??? ?AddTeacher
?? ??? ??? ??? ?DeleteTeacher
?? ??? ??? ??? ?UpdateTeacher
?? ??? ??? ??? ?FindTeacher
?? ??? ??? ?com.heima.student
?? ??? ??? ??? ?AddStudent
?? ??? ??? ??? ?DeleteStudent
?? ??? ??? ??? ?UpdateStudent
?? ??? ??? ??? ?FindStudent
###10.02_面向對象(包的定義及注意事項)(掌握)
* A:定義包的格式
?? ?* package 包名;
?? ?* 多級包用.分開即可
* B:定義包的注意事項
?? ?* A:package語句必須是程序的第一條可執行的代碼
?? ?* B:package語句在一個java文件中只能有一個
?? ?* C:如果沒有package,默認表示無包名
* C:案例演示
?? ?* 包的定義及注意事項
?? ?
###10.03_面向對象(帶包的類編譯和運行)(掌握)
* A:如何編譯運行帶包的類
?? ?* a:javac編譯的時候帶上-d即可
?? ??? ?* javac -d . HelloWorld.java
?? ?* b:通過java命令執行。
?? ??? ?* java 包名.HellWord
###10.04_面向對象(不同包下類之間的訪問)(掌握)
* A:案例演示
?? ?* 不同包下類之間的訪問

###10.05_面向對象(import關鍵字的概述和使用)(掌握)
* A:案例演示
?? ?* 為什么要有import
?? ??? ?* 其實就是讓有包的類對調用者可見,不用寫全類名了?
* B:導包格式
?? ?* import 包名;
?? ?* 注意:
?? ?* 這種方式導入是到類的名稱。
?? ?* 雖然可以最后寫*,但是不建議。
* C:package,import,class有沒有順序關系(面試題)

###10.06_面向對象(四種權限修飾符的測試)(掌握)
* A:案例演示
?? ?* 四種權限修飾符
* B:結論
*?
?? ??? ??? ??? ??? ?本類?? ? 同一個包下(子類和無關類)?? ?不同包下(子類)?? ?不同包下(無關類)
?? ??? ?private ?? ?Y?? ??? ?
?? ??? ?默認?? ??? ??? ?Y?? ??? ?Y
?? ??? ?protected?? ?Y?? ??? ?Y?? ??? ??? ??? ??? ??? ??? ?Y
?? ??? ?public?? ??? ?Y?? ??? ?Y?? ??? ??? ??? ??? ??? ??? ?Y?? ??? ??? ??? ?Y

###10.07_面向對象(類及其組成所使用的常見修飾符)(掌握)
* A:修飾符:
?? ?* 權限修飾符:private,默認的,protected,public
?? ?* 狀態修飾符:static,final
?? ?* 抽象修飾符:abstract
* B:類:
?? ?* 權限修飾符:默認修飾符,public
?? ?* 狀態修飾符:final
?? ?* 抽象修飾符:abstract
?? ?
?? ?* 用的最多的就是:public
?? ?
* C:成員變量:
?? ?* 權限修飾符:private,默認的,protected,public
?? ?* 狀態修飾符:static,final
?? ?
?? ?* 用的最多的就是:private
?? ?
* D:構造方法:
?? ?* 權限修飾符:private,默認的,protected,public
?? ?
?? ?* 用的最多的就是:public
?? ?
* E:成員方法:
?? ?* 權限修飾符:private,默認的,protected,public
?? ?* 狀態修飾符:static,final
?? ?* 抽象修飾符:abstract
?? ?
?? ?* 用的最多的就是:public
?? ?
* F:除此以外的組合規則:
?? ?* 成員變量:public static final
?? ?* 成員方法:
?? ??? ?* public static?
?? ? ? ?* public abstract
?? ??? ?* public final

###10.08_面向對象(內部類概述和訪問特點)(了解)
* A:內部類概述
* B:內部類訪問特點
?? ?* a:內部類可以直接訪問外部類的成員,包括私有。
?? ?* b:外部類要訪問內部類的成員,必須創建對象。
?? ?* 外部類名.內部類名 對象名 = 外部類對象.內部類對象;
* C:案例演示
?? ?* 內部類極其訪問特點
?? ?
###10.09_面向對象(成員內部類私有使用)(了解)
* private

###10.10_面向對象(靜態成員內部類)(了解)
* static
* B:成員內部類被靜態修飾后的訪問方式是:
?? ?* 外部類名.內部類名 對象名 = 外部類名.內部類對象;

###10.11_面向對象(成員內部類的面試題)(掌握)
* A:面試題
*?
?? ??? ?要求:使用已知的變量,在控制臺輸出30,20,10。
?? ??? ?
?? ??? ?class Outer {
?? ??? ??? ?public int num = 10;
?? ??? ??? ?class Inner {
?? ??? ??? ??? ?public int num = 20;
?? ??? ??? ??? ?public void show() {
?? ??? ??? ??? ??? ?int num = 30;
?? ??? ??? ??? ??? ?System.out.println(?);
?? ??? ??? ??? ??? ?System.out.println(??);
?? ??? ??? ??? ??? ?System.out.println(???);
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ?}
?? ??? ?class InnerClassTest {
?? ??? ??? ?public static void main(String[] args) {
?? ??? ??? ??? ?Outer.Inner oi = new Outer().new Inner();
?? ??? ??? ??? ?oi.show();
?? ??? ??? ?}?? ?
?? ??? ?}

###10.12_面向對象(局部內部類訪問局部變量的問題)(掌握)
* A:案例演示
?? ?* 局部內部類訪問局部變量必須用final修飾
?? ?* 局部內部類在訪問他所在方法中的局部變量必須用final修飾,為什么?
?? ??? ?因為當調用這個方法時,局部變量如果沒有用final修飾,他的生命周期和方法的生命周期是一樣的,當方法彈棧,這個局部變量也會消失,那么如果局部內部類對象還沒有馬上消失想用這個局部變量,就沒有了,如果用final修飾會在類加載的時候進入常量池,即使方法彈棧,常量池的常量還在,也可以繼續使用

?? ??? ?但是jdk1.8取消了這個事情,所以我認為這是個bug

###10.13_面向對象(匿名內部類的格式和理解)
* A:匿名內部類
?? ?* 就是內部類的簡化寫法。
* B:前提:存在一個類或者接口
?? ?* 這里的類可以是具體類也可以是抽象類。
* C:格式:
*?
?? ??? ?new 類名或者接口名(){
?? ??? ??? ?重寫方法;
?? ??? ?}
* D:本質是什么呢?
?? ?* 是一個繼承了該類或者實現了該接口的子類匿名對象。
* E:案例演示
?? ?* 按照要求來一個匿名內部類
?? ??? ?
###10.14_面向對象(匿名內部類重寫多個方法調用)
* A:案例演示
?? ?* 匿名內部類的方法調用

###10.15_面向對象(匿名內部類在開發中的應用)

* A:代碼如下
*?
?? ??? ?//這里寫抽象類,接口都行
?? ??? ?abstract class Person {
?? ??? ??? ?public abstract void show();
?? ??? ?}
?? ?
?? ??? ?class PersonDemo {
?? ??? ??? ?public void method(Person p) {
?? ??? ??? ??? ?p.show();
?? ??? ??? ?}
?? ??? ?}
?? ?
?? ??? ?class PersonTest {
?? ??? ??? ?public static void main(String[] args) {
?? ??? ??? ??? ?//如何調用PersonDemo中的method方法呢?
?? ??? ??? ??? ?PersonDemo pd = new PersonDemo ();
?? ??? ??? ??? ?
?? ??? ??? ?}
?? ??? ?}

###10.16_面向對象(匿名內部類的面試題)
* A:面試題
*?
?? ??? ?按照要求,補齊代碼
?? ??? ?interface Inter { void show(); }
?? ??? ?class Outer { //補齊代碼 }
?? ??? ?class OuterDemo {
?? ??? ??? ?public static void main(String[] args) {
?? ??? ??? ??? ? ?Outer.method().show();
?? ??? ??? ? ?}
?? ??? ?}
?? ??? ?要求在控制臺輸出”HelloWorld”

###10.17_day10總結
* 把今天的知識點總結一遍。

###11.01_Java開發工具(常見開發工具介紹)(了解)
* A:操作系統自帶的記事本軟件
* B:高級記事本軟件
* C:集成開發環境 IDE
?? ?* (Integrated Development Environment)
* D:Eclipse和MyEclipse的區別
?? ?* a:Eclipse是一種可擴展的開放源代碼的IDE。
?? ?* b:Eclipse的特點描述
?? ??? ?* 免費
?? ??? ?* 純Java語言編寫
?? ??? ?* 免安裝
?? ??? ?* 擴展性強
?? ?* c:MyEclipse
?? ??? ?* 在Eclipse基礎上追加的功能性插件,對插件收費
?? ??? ?* 在WEB開發中提供強大的系統架構平臺
* E:下載 http://eclipse.org/
?? ?* org是非盈利團體?
* F:安裝
?? ?* 綠色版?? ?解壓就可以使用(Eclipse)
?? ?* 安裝版 ? 雙擊運行,一路next即可(JDK)
* G:卸載
?? ?* 綠色版?? ?直接刪除文件夾即可
?? ?* 安裝版 專業卸載軟件或者控制面板添加刪除程序

###11.02_Java開發工具(Eclipse中HelloWorld案例以及漢化)(了解)
* A:選擇工作空間
?? ?* 工作空間 ?其實就是我們寫的源代碼所在的目錄
* B:用Eclipse來完成一個HelloWorld案例
?? ?* 代碼以項目為基本單位
?? ?* 創建項目
?? ?* 創建包
?? ?* 創建類
?? ?* 編寫代碼
* C:編譯和運行
* D:Eclipse的漢化
?? ?* 從Eclipse3.5開始,安裝目錄下就多了一個dropins目錄,只要將插件解壓后放到到該目錄即可。
?? ?* 同理,這種方式卸載插件也是特別的方便,推薦這種方式
* E:語法檢查提示
?? ?* 紅色波浪線
?? ??? ?* 必須處理,否則編譯通不過
?? ?* 黃色波浪線?? ?
?? ??? ?* 可以不搭理他?

###11.03_Java開發工具(Eclipse的視窗和視圖概述)(了解)
* A:視窗 ?每一個基本的窗體被稱為視窗
?? ?* PackageExplorer ?顯示項目結構,包,類,及資源
?? ?* Outline ? 顯示類的結構,方便查找,識別,修改
?? ?* Console ?程序運行的結果在該窗口顯示
?? ?* Hierarchy 顯示Java繼承層次結構,選中類后F4
* B:視圖 ?是由某些視窗的組合而成的
?? ?* Java視圖
?? ?* Debug視圖

###11.04_Java開發工具(Eclipse工作空間的基本配置)(掌握)
* A:程序的編譯和運行的環境配置(一般不改)
?? ?* window -- Preferences -- Java
?? ?* 編譯環境:Compiler?? ?默認選中的就是最高版本。
?? ?* 運行環境:Installed JREs?? ?默認會找你安裝的那個JDK。建議配置了Java的環境變量。
?? ?* 問題:
?? ??? ?* 低編譯,高運行。可以。
?? ??? ?* 高編譯,低運行。不可以。
?? ??? ?* 建議,編譯和運行的版本一致。
* B:如何去掉默認注釋?
?? ?* window -- Preferences -- Java -- Code Style -- Code Templates
?? ?* 選擇你不想要的內容,通過右邊Edit編輯。
?? ?* 注意:請只刪除注釋部分,不是注釋部分的不要刪除。
* C:行號的顯示和隱藏
?? ?* 顯示:在代碼區域的最左邊的空白區域,右鍵 -- Show Line Numbers即可。
?? ?* 隱藏:把上面的動作再做一次。
* D:字體大小及顏色
?? ?* a:Java代碼區域的字體大小和顏色:
?? ??? ?* window -- Preferences -- General -- Appearance -- Colors And Fonts --Java修改 -- Java Edit Text Font
?? ?* b:控制臺
?? ??? ?* window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font
?? ?* c:其他文件
?? ??? ?* window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font
* E:窗體給弄亂了,怎么辦?
?? ?* window -- Reset Perspective
* F:控制臺找不到了,怎么辦?
?? ?* Window--Show View—Console
* G:取消懸浮提示
?? ?* window -- Preferences -- Java--Editor--Hovers。右邊將Combined Hover勾去掉。
?? ?* 這樣代碼的懸浮框就不會自動出現了。如果想看提示,將光標懸浮在代碼上,按F2即可。
?
###11.05_Java開發工具(Eclipse中內容輔助鍵的使用)(掌握)
* A:Alt+/ 起提示作用
* B:main+alt+/,syso+alt+/,給出其他提示
* C:補充輸出語句,選中需要輸出的部分,alt+/選擇最后一項即可
* C:定義自己的alt + /
?? ?* windows--perference-Java-Editor-Templates--New

###11.06_Java開發工具(Eclipse中快捷鍵的使用)(掌握)
* A:新建 ctrl + n
* B:格式化 ?ctrl+shift+f
* C:導入包 ?ctrl+shift+o?
* D:注釋 ?ctrl+/,ctrl+shift+/,ctrl+shift+\
* E:代碼上下移動 選中代碼alt+上/下箭頭
* F:查看源碼 ?選中類名(F3或者Ctrl+鼠標點擊)
* G:查找具體的類 ctrl + shift + t
* H:查找具體類的具體方法 ctrl + o
* I:給建議 ctrl+1,根據右邊生成左邊的數據類型,生成方法
* J:刪除代碼 ctrl + d
* K:抽取方法alt + shift + m?
* L:改名alt + shift + r?
*?

###11.07_Java開發工具(Eclipse中如何提高開發效率)(掌握)
* alt + shift + s
* A:自動生成構造方法
* B:自動生成get/set方法

###11.08_Java開發工具(Eclipse中一個標準學生類及其測試)(掌握)
* A:案例演示
?? ?* 用Eclipse實現標準學生類及其測試

###11.09_Java開發工具(Eclipse中接口抽象類具體類代碼體現)(掌握)
* A:案例演示
?? ?* 用Eclipse實現接口抽象類具體類代碼

###11.10_Java開發工具(Eclipse中如何生成jar包并導入到項目中)(了解)
* A:jar是什么?
?? ?* jar是多個class文件的壓縮包。
* B:jar有什么用?
?? ?* 用別人寫好的東西?? ?
* C:打jar包
?? ?* 選中項目--右鍵--Export--Java--Jar--自己指定一個路徑和一個名稱--Finish
* D:導入jar包
?? ?* 復制到項目路徑下并添加至構建路徑。


###11.11_Java開發工具(Eclipse中如何刪除項目和導入項目)(掌握)
* A:刪除項目
?? ?* 選中項目 – 右鍵 – 刪除
?? ??? ?* 從項目區域中刪除
?? ??? ?* 從硬盤上刪除
* B:導入項目
?? ?* 在項目區域右鍵找到import
?? ?* 找到General,展開,并找到
?? ?* Existing Projects into Workspace
?? ?* 點擊next,然后選擇你要導入的項目
?? ?* 注意:這里選擇的是項目名稱

###11.12_Java開發工具(Eclipse中斷點調試的基本使用)(了解)
* A:Debug的作用
?? ?* 調試程序
?? ?* 查看程序執行流程
* B:如何查看程序執行流程?? ??? ?
?? ?* 什么是斷點:
?? ??? ?* 就是一個標記,從哪里開始。
?? ??? ?
?? ?* 如何設置斷點:
?? ??? ?* 你想看哪里的程序,你就在那個有效程序的左邊雙擊即可。
?? ??? ?
?? ?* 在哪里設置斷點:
?? ??? ?* 哪里不會點哪里。
?? ??? ?* 目前:我們就在每個方法的第一條有效語句上都加。
?? ??? ?
?? ?* 如何運行設置斷點后的程序:
?? ??? ?* 右鍵 -- Debug as -- Java Application
?? ??? ?
?? ?* 看哪些地方:
?? ??? ?* Debug:斷點測試的地方
?? ??? ??? ?* 在這個地方,記住F6,或者點擊也可以。一次看一行的執行過程。
?? ??? ?* Variables:查看程序的變量變化
?? ??? ?* ForDemo:被查看的源文件
?? ??? ?* Console:控制臺
?? ??? ?
?? ?* 如何去斷點:
?? ??? ?* a:再次雙擊即可
?? ??? ?* b:找到Debug視圖,Variables界面,找到Breakpoints,并點擊,然后看到所有的斷點,最后點擊那個雙叉。

###11.13_Java開發工具(Eclipse查看Java中參數傳遞問題)(了解)
* A:斷點演示
?? ?* 斷點查看Java中參數傳遞問題

###11.14_常見對象(API概述)(了解)
* A:API(Application Programming Interface)?
?? ?* 應用程序編程接口
* B:Java API
?? ?* 就是Java提供給我們使用的類,這些類將底層的實現封裝了起來,
?? ?* 我們不需要關心這些類是如何實現的,只需要學習這些類如何使用。

###11.15_常見對象(Object類的概述)(了解)
* A:Object類概述
?? ?* 類層次結構的根類
?? ?* 所有類都直接或者間接的繼承自該類
* B:構造方法
?? ?* public Object()
?? ?* 回想面向對象中為什么說:
?? ?* 子類的構造方法默認訪問的是父類的無參構造方法

###11.16_常見對象(Object類的hashCode()方法)(了解)
* A:案例演示
?? ?* public int hashCode()
?? ?* a:返回該對象的哈希碼值。默認情況下,該方法會根據對象的地址來計算。
?? ?* b:不同對象的,hashCode()一般來說不會相同。但是,同一個對象的hashCode()值肯定相同。

###11.17_常見對象(Object類的getClass()方法)(在反射的時候掌握)
* A:案例演示
?? ?* public final Class getClass()
?? ?* a:返回此 Object 的運行時類。
?? ?* b:可以通過Class類中的一個方法,獲取對象的真實類的全名稱。?? ?
?? ??? ?* public String getName()

###11.18_常見對象(Object類的toString()方法)(掌握)
* A:案例演示
?? ?* public String toString()
?? ?* a:返回該對象的字符串表示。
*?
?? ??? ?
?? ??? ?public Stirng toString() {
?? ??? ??? ?return name + "," + age;
?? ??? ?}
?? ?* b:它的值等于:?
?? ??? ?* getClass().getName() + "@" + Integer.toHexString(hashCode())?
?? ?* c:由于默認情況下的數據對我們來說沒有意義,一般建議重寫該方法。
* B:最終版
?? ?* 自動生成

###11.19_常見對象(Object類的equals()方法)(掌握)
* A:案例演示
?? ?* a:指示其他某個對象是否與此對象“相等”。?
?? ?* b:默認情況下比較的是對象的引用是否相同。
?? ?* c:由于比較對象的引用沒有意義,一般建議重寫該方法。

###11.20_常見對象(==號和equals方法的區別)(掌握)
* ==是一個比較運算符號,既可以比較基本數據類型,也可以比較引用數據類型,基本數據類型比較的是值,引用數據類型比較的是地址值
* equals方法是一個方法,只能比較引用數據類型,所有的對象都會繼承Object類中的方法,如果沒有重寫Object類中的equals方法,equals方法和==號比較引用數據類型無區別,重寫后的equals方法比較的是對象中的屬性

###11.21_day11總結
* 把今天的知識點總結一遍。

總結

以上是生活随笔為你收集整理的JavaSE基础知识(附上代码实现)1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。