第一章 初識Java
易錯:
- public class 類名稱 與 檔案名稱.java 必須相同
- void 不可少(這是無傳回值的意思後面會講)
- Java 對英文字母 大小寫 敏感
- ; 注意英文的分号
- “ 注意英文的引号
- \t 為一個tab鍵
- \n 為換行
第二章 變量和資料類型
資料類型 | 含義 |
---|---|
int | 整型 |
double | 雙精度浮點型 |
加粗樣式 | 字元型 |
String | 字元串型 |
boolean | 布爾類型 |
變量聲明
文法:
變量類型 | 變量名 | ; |
---|---|---|
int | time | ; |
##變量指派
文法:
變量名 = 值; |
---|
time = 33; |
聲明并指派
文法:
資料類型 變量名 = 值; |
---|
char sex = ‘女’; |
掃描器的使用
資料類型轉換
-
自動資料類型轉換 “放大轉換”
條件:a.類型相容 b.小轉大
int score = 80;
double newScore = score;
-
強制資料類型轉換”縮小轉換”
double score = 123.23;
int newScore – (int)score;
關系運算符
> | 小于 |
---|---|
>= | 小于等于 |
== | 等于 |
<= | 大于等于 |
!= | 不等于 |
算術運算符
+ | |
---|---|
- | |
* | |
/ | 取商 |
% | 取餘 |
a++ | 先運算後自加 |
a- - | 先運算後自減 |
++a | 先自加後運算 |
- -a | 先自減後運算 |
指派運算符
下面是Java語言支援的指派運算符:
操作符 | 描述 | 例子 |
---|---|---|
= | 簡單的指派運算符,将右操作數的值賦給左側操作數 | C = A + B将把A + B得到的值賦給C |
+ = | 加和指派操作符,它把左操作數和右操作數相加指派給左操作數 | C + = A等價于C = C + A |
- = | 減和指派操作符,它把左操作數和右操作數相減指派給左操作數 | C - = A等價于C = C - A |
* = | 乘和指派操作符,它把左操作數和右操作數相乘指派給左操作數 | C * = A等價于C = C * A |
/ = | 除和指派操作符,它把左操作數和右操作數相除指派給左操作數 | C / = A等價于C = C / A |
(%)= | 取模和指派操作符,它把左操作數和右操作數取模後指派給左操作數 | C%= A等價于C = C%A |
邏輯運算符
&&
||
!
短路邏輯運算符
當使用與邏輯運算符時,在兩個操作數都為true時,結果才為true,但是當得到第一個操作為false時,其結果就必定是false,這時候就不會再判斷第二個操作了。
條件運算符(?:)
條件運算符也被稱為三元運算符。該運算符有3個操作數,并且需要判斷布爾表達式的值。該運算符的主要是決定哪個值應該指派給變量。
文法:
變量x | = | (表達式) ? 值若為真 : 值若為假; |
---|
int a , b;
a = 10;
// 如果 a 等于 1 成立,則設定 b 為 20,否則為 30
b = (a == 1) ? 20 : 30;
System.out.println( "Value of b is : " + b );
//因為a=10,不為1,是以是false,b=30
優先級:算術>關系.>邏輯
第四章 選擇結構
if選擇結構
ifelse選擇結構
elseif多重選擇
嵌套if選擇
switch選擇結構
[0,10 )的随機數
小結:if處理範圍 switch處理定值
處理系統異常
如何讓其輸入數字hasNextInt判斷判斷是否輸入為數字
第五章 循環結構
while循環
do-while循環
for循環
程式調試
- 分析錯誤,設定斷點
- 啟動調試,單步執行 點蟲子
- 觀察變量
-
消滅蟲子
F5單步跳入 會進入本行代碼内部執行
F6單步跳過 就執行你看見的本行代碼,執行完跳到下一行
break 跳出循環體
continue跳出目前循環,進行下一次循環
return 跳出目前方法 傳回一個值
第八章 數組
- 辨別符
- 數組元素
- 數組下标
- 元素類型
如何使用數組
聲明數組
文法:
資料類型[] | 數組名; |
---|---|
int[] | scores; |
配置設定空間
文法:
數組名 | = | new | 資料類型[數組長度]; |
---|---|---|---|
scores | = | new | int[30]; |
聲明并配置設定空間
文法:
資料類型[] | 數組名 | = | new | 資料類型[數組長度]; |
---|---|---|---|---|
int[] | scores | = | new | int[30]; |
指派
文法:
數組名[下标值] | = | XXX; |
---|---|---|
scores[12] | = | 98; |
聲明配置設定空間并且指派
文法
資料類型[] 數組名 | = | {值1,值2,值3}; |
---|---|---|
int | scores[] | = |
也等價于 | ||
int scores[] | = | new int[] {213,43,542,13}; |
注意int[這裡為空] |
數組元素初始值
char | ‘\u0000’ |
---|---|
boolean | false |
數組排序
文法
Arrays.sort(數組名);
排列出來後是升序 |
比較字元串大小
文法:
這個是無視了大小寫的 |
---|
String1.compareToIgnoreCase(String2); |
如果1>2就傳回1 |
等于傳回0 |
小于為-1 |
第九章 二重循環
解釋解釋的話,就是循環裡套循環
當然也可以for裡套while
二重循環裡的break和while
都是跳出本層循環
第十一章 類和對象
面向對象
Java是一種面向對象的程式設計語言(Object Oriented Programming Language,OOPL)
身邊的對象
對象 | 靜态特征 | 靜态特征的值 | 動态特征 |
---|---|---|---|
顧客對象: | 姓名 | 小明 | 購買商品 |
收銀員對象: | 員工号 | 10012 | 收款 |
對象的屬性和方法
在面向對象的程式設計思想中,把對象多的 靜态特征 和 動态特征
分别稱為對象的對象的 屬性 和 方法
對象:用來描述客觀事物的一個實體,由一組屬性和方法構成。
封裝
就是把一個事物包裝起來,并盡可能隐藏内部細節
對象具有封裝性
類
類定義了對象會具有的屬性(特征)和方法(行為)
類 | = | 抽象概念 |
---|---|---|
對象 | = | 實體 |
Java類的模闆
- 不能使用Java中的關鍵字
- 不能包含任何嵌入的空格或“.”,以及除下劃線“_”,字元“$”外的特殊符号
-
不能以數字開頭
記憶法: 想賺錢下載下傳apptry$_123
定義方法
通路修飾符 傳回值類型 方法名(){
//方法體
}
方法或變量名 | 先小後大 |
---|---|
類 | 全大 |
如何建立和使用對象
建立
文法
類名 對象名 | = | new 類名(); |
---|---|---|
School sch | = | new School(); |
指派
文法
對象名.屬性 = xxx; |
---|
對象名.方法名(); |
sch.name = “孤獨自學”; |
sch.Dream(); |
面向對象的優點
- 與人類思維一緻
- 資訊隐藏,提高了程式的可維護性和安全性
- 提高了程式的可重用性
第十二章 類的無參方法
什麼是類的方法
如何定義類的方法
文法:
public 傳回值類型 方法名(){
//方法的主體
}
方法名字先小後大
類名全大
方法執行後傳回一個結果,結果的類型稱為稱為傳回值類型,使用return語句傳回
文法:
return 表達式;
方法的調用
文法:
對象名.方法名(); |
---|
AutoLion lion = new AutoLion();
Lion.run();
- 同一類中的方法,直接使用方法名調用該方法。
- 不同類的方法,先建立對象,再使用對象名.方法名()來調用
易錯
- 傳回值為void,方法不能有return
- return不能傳回多個值(除非數組或對象什麼的)
- 多個方法不能嵌套
- 不能在方法外部直接寫 邏輯代碼
變量的作用域
成員變量和局部變量
成員變量:在類中定義的變量稱為類的成員變量
- 在類本身裡可直接使用,其他類的方法要通路,在通路權限允許的情況下,必須先建立對象,然後通過”.”來引用,
- Java會給其賦預設值
局部變量:在方法中定義的變量稱為局部變量
- 隻能在本方法内使用
- Java不會給其賦預設值
- 同一個方法内不能有同名局部變量,不同方法裡可以有
PS:局部變量可以和成員變量同名,并且在使用時,局部比成員具有更高的優先級
小聲哔哔:除非你用this語句,可以選擇調用同名的成員和局部變量
JavaDoc注釋
File—export—導出—Java—JavaDoc
第十四章 帶參數的方法
定義帶參的方法
文法:
<通路修飾符> 傳回值類型 <方法名> (<(參數清單)>){
//方法的主體
}
public void addName(String name){
//增加學生的姓名
}
調用帶參方法
文法:
對象名.方法名(參數1,參數2……參數n)
要先執行個體化對象,再調用
實參的類型,數量,順序要與形參一一對應
常見錯誤
- 在傳遞的實參前添加資料類型如show.sayHello(String name,int time)
- 實參形參資料類型不一緻
- 實參形參數量不一緻
- 有傳回值但調用該方法後沒有對傳回值做任何處理
數組作為參數的方法
對象作為參數的方法
對象數組
包
用來分類管理
聲明包
文法
package 包名 |
---|
package cn.gdzx.learning; |
導入包
文法
import 包名.類名; |
---|
import 包名.*; |
第十五章 字元串
String | |
---|---|
str.length() | 傳回長度 |
str1.equals.str2 | 判斷值相等 |
str.equalsIgnoreCase(str2) | 不區分大小寫 |
str1.compareToIgnoreCase(str2) | 無視大小寫 比較字元串順序 1比2大傳回1 等于為0 小于為-1 |
str.toUpperCase() | 轉大寫 |
str.toLowerCase() | 轉小寫 |
str1.contact(str2) | 連接配接字元串 等同于 + => str1+str2 |
str.indexOf(“1”) | 從前往後開始查找 字元 如果找到傳回下标 未找到傳回-1 PS:隻傳回第一次出現的下标 |
str.lastIndexOf(“1”) | 從後往前開始查找 字元 如果找到傳回下表 未找到傳回-1 PS:隻傳回第一次出現的下标 |
str.subString(0,5) | 截取字元串從下标0開始到5結束 ps:不包括下标5 |
str.trim() | 去除字元串前後空格 |
str.split(String類型 “分離的标志”,int類型 傳回的個數) | 根據引号裡的參數 拆分字元串,傳回字元串數組有幾個元素 |
StringBuffer | |
---|---|
toString() | 轉成String類型 |
append("") | 追加 |
insert(0,“xx”) | 将字元串插入到指定位置 |