什么是Java編程語言
Java開發(fā)的環(huán)境搭建
JDK 安裝完成后 用CMD→Java→Java -version 查看安裝的版本信息
JDK安裝目錄介紹:
配置環(huán)境變量:使系統(tǒng)可以使用Java的一些控制命令
計算機→屬性→高級系統(tǒng)設置→高級→環(huán)境變量→選中變量名ComSpec→新建→變量名:JAVA_HOME→變量值:JDK的安裝目錄地址(C:\Program Files\Java\jdk1.7.0_80)→確定→找到變量名path雙擊打開→在變量值最后加一個;%JAVA_HOME&\bin(C:\Program Files\Java\jdk1.7.0_80\bin)→確定→重新打開CMD輸入Javac測試是否配置變量成功
Java 程序入門
源代碼:程序員編寫的代碼文件,Java源代碼文件后綴為.java
字節(jié)碼:二進制代碼物蝙,由源代碼編譯產生腋粥。(大小寫一定要區(qū)分)
public class hell{
public static void main(String[] args){
System.out.println("自定義");
}
}
源代碼:把源代碼轉換成字節(jié)碼的過程叫編譯勤家。
編譯工具:javac 命令
使用: Javac 文件名.java
結果:會得到一個同名的 .class文件
運行:讓計算機執(zhí)行你的字節(jié)碼
解釋工具:Java class文件名
java的基礎語法
public?class?Hello{??模塊名(一個類就是一個模塊)
public static void main( String[]?args ){??程序入口
System.out.println(?"今天學習java編程很快樂民晒!"?);
}
}
Java Hello ---> 讓jvm 執(zhí)行 Hello 模塊扣孟,jvm會從程序入口開始執(zhí)行你的代碼勉耀,程序入口寫法是固定的瘫想,如果jvm找不到入口,則會報錯醋粟。
一個源代碼可以包含多個類(這些類中只有一個叫主類靡菇,用public 修飾的的類,主類名必須和源代碼的名字相同)
注意:每個類都是相互獨立的米愿,編譯 Hehe.java 會同時產生 每個類的字節(jié)碼,這些字節(jié)碼可獨立運行
注釋
起到解釋與說明的作用:
單行注釋:// 代碼
多行注釋:/*內容*/
文檔注釋:/**內容*/
字面量
字符串:用"? "把內容包括起來
整數(shù):一串數(shù)字為整數(shù)
浮點數(shù):就是一串小數(shù)
字符:用' '把內容包括起來
布爾值:true? ? false
關鍵字
已經(jīng)被java語言使用過的單詞厦凤,具備一定的語法含義,關鍵字是小寫的吗货,高級開發(fā)工具中會有特定的顏色泳唠,不能使用關鍵字作為你的類名、變量名宙搬、方法名笨腥。
變量
變量是存放數(shù)據(jù)的容器,在內存中對應一塊小空間勇垛,為了方便訪問這塊空間脖母,需要為這塊空間取一個名字,這個名字就是變量名闲孤,不同的數(shù)據(jù)需要不同的數(shù)據(jù)類型谆级。
定義變量的語法:
數(shù)據(jù)類型? 變量名=值;
注意:java 是一門強類型語言烤礁,定義變量必須聲明其數(shù)據(jù)類型,并且所賦予值必須是變量的類型肥照。
變量的命名規(guī)則:
1脚仔、由數(shù)字、 字母 舆绎、下劃線 鲤脏、$ 組成
2、數(shù)字不能開頭
3吕朵、不能使用關鍵字
4猎醇、類名首字母要大寫? 變量名要小寫
5、變量名如果有多個單詞組成努溃,應該使用駝峰命名法:多個單詞組合語句中每個單詞首字母要大寫
數(shù)據(jù)類型
java語言中有8大基本數(shù)據(jù)類型
字節(jié):byte 最大兩位數(shù)
短整型:short? 最大四位數(shù)
長整型:long? 默認是int類型硫嘶,數(shù)字最后加一個L去掉int位數(shù)的范圍限制
整數(shù):int (integer)? 最大十位數(shù)
小數(shù):float(單精度)默認是double類型,數(shù)字最后加一個F去掉double限制梧税、double(雙精度)
字符:char
布爾:boolean
測試每個數(shù)據(jù)類型的最大與最小范圍沦疾,注意字母大小寫!
數(shù)據(jù)類型轉換:
把高精度的值 賦值給 低精度的變量贡蓖,可能會丟失精度曹鸠。
數(shù)據(jù)類型 變量名=(與前面同等的數(shù)據(jù)類型)值;
把低精度的值賦值給高精度的變量
運算符:
1、賦值運算符 =
2斥铺、算術運算符 +? -? *? ? /? ? %
3彻桃、關系運算符>? <? >=? ? <=? ==? !=
4、邏輯運算符? &&? ||? !
5晾蜘、復合賦值運算符 +=? -=? *=? ? /=? %=
6邻眷、自增++ 、自減--? ? 當賦值時或者輸出時自增自減運算符必須在前才能運算剔交!
7肆饶、三目運算符? ?
8、位運算? >>? 岖常、 <<
流程控制:
選擇控制:
if:
Switch……case驯镊、for、while竭鞍、do……while:
函數(shù):
計算圓與三角形面積
return函數(shù)的使用
數(shù)組:用于存放一組相同數(shù)據(jù)類型的數(shù)據(jù)集合
導入工具包
向數(shù)組中添加數(shù)據(jù)
冒泡排序:按數(shù)據(jù)大小排序
選擇排序
JAVA 面向對象
創(chuàng)建對象: 類名? 對象名=new 類名();
構造器:構造器也叫構造方法
作用:創(chuàng)建對象板惑、為屬性賦值
特點:構造器本質上是一個方法
構造器的名字后類名必須一致
構造器沒有返回值類型
一個類如果程序員沒有自己定義構造系統(tǒng)會提供一個無參構造器,一旦程序員自己定義了有參數(shù)構造器偎快,系統(tǒng)將不再提供無參構造冯乘。
構造器不能顯示調用,只能new
生成構造器的快捷方式:Alt+Shift+s
構造器重載:多個構造器并存晒夹,通過參數(shù)情況加以區(qū)分
參數(shù)區(qū)分方式:參數(shù)的個數(shù)
參數(shù)的類型
參數(shù)的順序
保存數(shù)組
成員與靜態(tài)
成員方法與成員屬性必須通過該類的對象來調用裆馒。
靜態(tài)方法和靜態(tài)屬性 通過類名調用即可姊氓,添加static的方法或屬性就是靜態(tài)的;且靜態(tài)屬性在最后賦值時之前的所有值都會變?yōu)榻y(tǒng)一的值喷好。
靜態(tài)方法中不能調用成員方法與成員屬性翔横,反之成員中可以調用靜態(tài)方法與靜態(tài)屬性;如果一定需要在靜態(tài)中調用成員绒窑,可以在靜態(tài)中創(chuàng)建一個對象來調用棕孙。
調用Math靜態(tài)數(shù)學計算的一部分方法:
多個類連接到一起的列子https://pan.lanzou.com/1464193/
針對數(shù)據(jù)類型的一些錯誤!
引用數(shù)據(jù)類型如果不賦值些膨,默認值為null!
基本數(shù)據(jù)類型賦值钦铺,默認值為:
int订雾、long、byte矛洞、short? 默認為0
float 洼哎、double? 默認為0.0
char 默認為空白符
boolean 默認為false
運行后報錯:java.lang.NullpointerException是空指針異常
對一個值為空 ,進行了引用或者是調用了屬性沼本、方法時出現(xiàn)噩峦,這時應該找出輸出的變量名所賦值是不是有錯誤!
面向對象三大特征:
1抽兆、封裝:實現(xiàn)信息隱藏识补,提高代碼的安全性。
Ctrl+Shift+O快速導入同一個項目下其他包(直接在本包名下寫import 包名.類名也可以實現(xiàn))
軟件包:package 用來管理源代碼辫红,降低程序的復雜度凭涂,便于查看項目的結構
注意:被使用的類不在當前類同項目名下
封裝權限:
private私有權限:在屬性的數(shù)據(jù)類型前或方法的返回值前添加private把這個屬性或方法隱藏掉,其他類中無法使用贴妻。
public公開權限:在屬性的數(shù)據(jù)類型前或方法的返回值前添加public這個屬性或方法在同一個項目下所有的包都可以訪問切油。
protected繼承權限:子類中可以訪問,可以跨包訪問名惩。
使用原則:在沒有要求的情況下
屬性全部私有化都用:private
方法全部公開都用:public
需要在子類中訪問的都用:protected
注:如果需要給私有權限的屬性賦值澎胡,就需要給這個屬性添加一個存值(set)和取值(get)的方法,就是添加一個public公開權限的方法參數(shù)中把這個屬性放進去娩鹉」ニ可使用快捷鍵Alt+Shift+s如下圖:
使用存值(set)和取值(get)的方法:
2、繼承:實現(xiàn)代碼復用底循,提高代碼的重用率巢株。(特別是當之前版本的類不能更改代碼的時候用!)
給子類繼承構造器時的快捷鍵Alt+Shift+s
給父類繼承子類:子類名 extends 父類名
當父類屬性用private權限時熙涤, 調用父類的有參構造器阁苞,初始化繼承來的屬性的方法
當父類屬性用protected權限時困檩, 調用父類的有參構造器,初始化繼承來的屬性的方法
注:子類的構造器會無條件的調用父類的構造器那槽,所以創(chuàng)建父類構造器時必須要有一個無參構造器悼沿!
子類添加屬性且權限是private私有權限時,賦值的使用方法
子類方法覆蓋父類方法的同時調用父類方法時骚灸,返回值類型糟趾、方法名、參數(shù)要一樣甚牲,且權限不能比父類的權限嚴格义郑!不能拋出更寬泛的異常。
3丈钙、多態(tài):提高代碼的靈活性非驮,可擴展性。