什么是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é)碼可獨立運行
注釋
起到解釋與說明的作用:
單行注釋:// 代碼
多行注釋:/*內容*/
文檔注釋:/**內容*/
字面量
字符串:用"? "把內容包括起來
整數:一串數字為整數
浮點數:就是一串小數
字符:用' '把內容包括起來
布爾值:true? ? false

關鍵字
已經被java語言使用過的單詞,具備一定的語法含義,關鍵字是小寫的,高級開發(fā)工具中會有特定的顏色,不能使用關鍵字作為你的類名、變量名、方法名。

變量
變量是存放數據的容器,在內存中對應一塊小空間,為了方便訪問這塊空間,需要為這塊空間取一個名字,這個名字就是變量名,不同的數據需要不同的數據類型。
定義變量的語法:
數據類型? 變量名=值;
注意:java 是一門強類型語言,定義變量必須聲明其數據類型,并且所賦予值必須是變量的類型。
變量的命名規(guī)則:
1、由數字、 字母 、下劃線 、$ 組成
2、數字不能開頭
3、不能使用關鍵字
4、類名首字母要大寫? 變量名要小寫
5、變量名如果有多個單詞組成,應該使用駝峰命名法:多個單詞組合語句中每個單詞首字母要大寫
數據類型
java語言中有8大基本數據類型
字節(jié):byte 最大兩位數
短整型:short? 最大四位數
長整型:long? 默認是int類型,數字最后加一個L去掉int位數的范圍限制
整數:int (integer)? 最大十位數
小數:float(單精度)默認是double類型,數字最后加一個F去掉double限制、double(雙精度)
字符:char
布爾:boolean
測試每個數據類型的最大與最小范圍,注意字母大小寫!

數據類型轉換:
把高精度的值 賦值給 低精度的變量,可能會丟失精度。
數據類型 變量名=(與前面同等的數據類型)值;
把低精度的值賦值給高精度的變量

運算符:
1、賦值運算符 =
2、算術運算符 +? -? *? ? /? ? %
3、關系運算符>? <? >=? ? <=? ==? !=
4、邏輯運算符? &&? ||? !
5、復合賦值運算符 +=? -=? *=? ? /=? %=

6、自增++ 、自減--? ? 當賦值時或者輸出時自增自減運算符必須在前才能運算!
7、三目運算符? ?

8、位運算? >>? 、 <<
流程控制:
選擇控制:
if:

Switch……case、for、while、do……while:

函數:

計算圓與三角形面積

return函數的使用

數組:用于存放一組相同數據類型的數據集合

導入工具包

向數組中添加數據

冒泡排序:按數據大小排序

選擇排序

JAVA 面向對象

創(chuàng)建對象: 類名? 對象名=new 類名();
構造器:構造器也叫構造方法
作用:創(chuàng)建對象、為屬性賦值
特點:構造器本質上是一個方法
構造器的名字后類名必須一致
構造器沒有返回值類型
一個類如果程序員沒有自己定義構造系統(tǒng)會提供一個無參構造器,一旦程序員自己定義了有參數構造器,系統(tǒng)將不再提供無參構造。
構造器不能顯示調用,只能new
生成構造器的快捷方式:Alt+Shift+s

構造器重載:多個構造器并存,通過參數情況加以區(qū)分
參數區(qū)分方式:參數的個數
參數的類型
參數的順序

保存數組


成員與靜態(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)數學計算的一部分方法:

多個類連接到一起的列子https://pan.lanzou.com/1464193/
針對數據類型的一些錯誤!
引用數據類型如果不賦值,默認值為null!
基本數據類型賦值,默認值為:
int、long、byte、short? 默認為0
float 、double? 默認為0.0
char 默認為空白符
boolean 默認為false
運行后報錯:java.lang.NullpointerException是空指針異常
對一個值為空 ,進行了引用或者是調用了屬性、方法時出現,這時應該找出輸出的變量名所賦值是不是有錯誤!

面向對象三大特征:
1、封裝:實現信息隱藏,提高代碼的安全性。
Ctrl+Shift+O快速導入同一個項目下其他包(直接在本包名下寫import 包名.類名也可以實現)

軟件包:package 用來管理源代碼,降低程序的復雜度,便于查看項目的結構
注意:被使用的類不在當前類同項目名下
封裝權限:
private私有權限:在屬性的數據類型前或方法的返回值前添加private把這個屬性或方法隱藏掉,其他類中無法使用。
public公開權限:在屬性的數據類型前或方法的返回值前添加public這個屬性或方法在同一個項目下所有的包都可以訪問。
protected繼承權限:子類中可以訪問,可以跨包訪問。
使用原則:在沒有要求的情況下
屬性全部私有化都用:private
方法全部公開都用:public
需要在子類中訪問的都用:protected
注:如果需要給私有權限的屬性賦值,就需要給這個屬性添加一個存值(set)和取值(get)的方法,就是添加一個public公開權限的方法參數中把這個屬性放進去??墒褂每旖萱IAlt+Shift+s如下圖:

使用存值(set)和取值(get)的方法:

2、繼承:實現代碼復用,提高代碼的重用率。(特別是當之前版本的類不能更改代碼的時候用?。?/b>
給子類繼承構造器時的快捷鍵Alt+Shift+s

給父類繼承子類:子類名 extends 父類名
當父類屬性用private權限時, 調用父類的有參構造器,初始化繼承來的屬性的方法

當父類屬性用protected權限時, 調用父類的有參構造器,初始化繼承來的屬性的方法

注:子類的構造器會無條件的調用父類的構造器,所以創(chuàng)建父類構造器時必須要有一個無參構造器!
子類添加屬性且權限是private私有權限時,賦值的使用方法

子類方法覆蓋父類方法的同時調用父類方法時,返回值類型、方法名、參數要一樣,且權限不能比父類的權限嚴格!不能拋出更寬泛的異常。

3、多態(tài):提高代碼的靈活性,可擴展性。