一、
1.先從計算機基礎常識開始,介紹了軟件分爲系統軟件和應用軟件。並掌握了幾種常用的DOS命令:
1) dir : 列出當前目錄下的文件以及文件夾
2) md : 創建目錄(mkdir)
3) rd : 刪除目錄
4) cd : 進入指定目錄
5) cd.. : 退回到上一級目錄
6) cd\: 退回到根目錄
7) del : 刪除文件
8) exit : 退出 dos 命令行
9) D: 直接進入d盤;
10) cls 清屏
11) echo 111 > 1.txt 一個箭頭是覆蓋
12) Echo 1115 >> 1.txt 兩個箭頭是追加
2. java軟件下載,安裝等;並學習了環境搭建,配置環境變量:
1)我的電腦--右擊----高級系統變量----環境變量
2)創建
3)JAVA_HOME
4)C:\Program Files\Java\jdk1.8.0_74
5)path
6)%JAVA_HOME%\bin;(英文狀態下
3. 創建java文件、編譯、運行等
二、
1.標識符:凡是自己可以取名字的地方都叫標識符;
定義合法標識符規則:
(1)由26個英文字母大小寫,0-9,_或$組成
(2)數字不可以開頭。
(3)不可以使用關鍵字和保留字,但能包含關鍵字和保留字
(4)Java中嚴格區分大小寫,長度無限制
(5)標識符不能包含空格
注意:在起名字時,爲了提高閱讀性,要儘量有意義,“見名知意
Java中的名稱命名規範
(1)包名:多單詞組成時所有字母都小寫:xxxyyyzzz
// 包名是一個應用的唯一身份標示(例如:安裝包,工程包)
(2)類名、接口名:多單詞組成時,所有單詞的首字母大寫:XxxYyyZzz
(3)變量名、方法名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫:xxxYyyZzz
(4)常量名:所有字母都大寫。多單詞時每個單詞用下劃線連接:XXX_YYY_ZZZ
2. 數據類型,
byte、short、int、long、float、double、char、boolean八個基本類型;
類、數組、字符串等三個引用類型。
對於變量的賦值格式爲:數據類型變量名 =賦予值;
變量要遵循“先定義後使用”的原則。
3. 計算機的存儲方式爲補碼形式;
正數的原碼、反碼、補碼是一樣的;
負數的存儲,
1)將其正數轉成二進制原碼,
2)在符號位添加1表示負數,
3)符號位不變,其他位取反,變成反碼,
4)反碼+1,就是其補碼形式。
4.基本數據類型轉換:
容量小的數據類型運算時自動轉換爲容量大的數據類型;
byte,short,char之間不會相互轉換,他們三者在計算時首先轉換爲int類型。
強制類型轉換:
自動類型轉換的逆過程,將容量大的數據類型轉換爲容量小的數據類型。使用時要加上強制轉換符(()),但可能造成精度降低或溢出,格外要注意。
5. 運算符:
算術運算符、
賦值運算符、
比較運算符(關係運算符)、
邏輯運算符、
位運算符、
三元運算符 boolean a = (b > c) ? ture : false;
今天的重點在進制轉換,尤其是二進制轉換爲八進制和十六進制的方法,在以後的十進制轉十六進制算法中以此思路藉助位運算來實現。
三、
1.掌握幾種運算符,重點區分
short s = 3;
s=s+2; ①
s+=2; ②
①和②有什麼區別?
①因爲short在運算時要轉成int型,所以(s+2爲int型,再將其賦值給short型的s,就會產生精度丟失;而 ②採用+=運算符,運算時左邊類型不變,所以最後是short型。
2. 區分&和&&:
特點:只要一個爲false,全爲false
不同點:& 無論左邊是否爲false,右邊都參與運算
&& 左邊爲false右邊不參與運算
區分|和||
特點:只要一個爲true,全部爲true
不同點:| 左邊爲true時候,右邊正常參與運算
|| 左邊我true,右邊不參與運算
3. 三元運算符 : 類型 變量 =條件語句 ?表達1:表達2;
如果條件成立值爲表達1;
如果條件不成立值爲表達2;
表達1和表達2值類型一致。
4.程序流程控制:
if(條件語句){
語句;
}
if(條件語句){
語句;
}else{
語句;
}
if(條件語句1){
語句1;
}else if(條件語句2){
語句2;
}else if(條件語句3){
語句3;
}else......
switch
switch(變量){
case 常量1:
語句;
break;
case 常量2:
語句;
break;//中斷操作
default:
語句3;
1)根據變量的值,選擇相應的case去判斷,一旦滿足case條件,就執行case的相應語句。如果沒有break或者已經到結尾的話,會繼續執行其下的case語句。
2)default:是可選的,而且位置是靈活的。
3)變量可以是哪些類型?char byte short int枚舉String(jdk1.7)
4)case 條件:其中條件只能是值,不能是取值範圍!
四、
1.循環:for語句、while語句和do while語句;循環可以嵌套。
1)無限循環:
for(;;){}
while(true){
break;
}
2.break的用法:終止某個語句塊的操作,即終止本層操作;
continue語句的用法:跳過某個循環語句的一次執行,即跳過本次操作。
今天在練習打印各種排列形狀的“*”時,學到了換行和在同一行打印的命令:
System.out.print();可以在同一行打印
System.out.println();則爲換行打印。
同時今天練習打印菱形是重點內容,尤其要弄清這個算法的編寫思路。
五、
1.學習方法;
修飾符(public static)void(int) aa(數據類型 變量名1,數據類型 變量名2){
語句;
return 值;
}
2.方式注意點:
------------------
1)方法不調用不執行
2)方法與方法是平級關係,不能嵌套定義
3)方法定義的時候參數之間用逗號隔開
4)方法調用的時候不用在傳遞數據類型
5)如果方法有明確的返回值,一定要有return帶回一個值
3.沒有明確返回值的函數調用:其實就是void類型方法的調用,只能單獨調用
void類型返回值的方法調用:
單獨調用
輸出調用(錯誤)
賦值調用(錯誤)
4.方法重載
方法名一致,參數數據類型或參數個數不一致
5.打印九九乘法表。
6.數組概念:數組是存儲同一種數據類型多個元素的集合。也可以看成是一個容器。
數組既可以存儲基本數據類型,也可以存儲引用數據類型。
數組的定義格式
格式1:數據類型[]數組名; A:int[] a;定義一個int類型的數組a變量
格式2:數據類型 數組名[];B:int a[];定義一個int類型的a數組變量
7. 動態初始化:初始化時只指定數組長度,由系統爲數組分配初始值。
格式:數據類型[] 數組名 = new 數據類型[數組長度];
數組長度其實就是數組中元素的個數。
舉例:int[] arr = new int[3];
靜態初始化:初始化時指定每個數組元素的初始值,由系統決定數組長度。
格式:數據類型[] 數組名 = new 數據類型[]{元素1,元素2,…};
舉例: int[] arr = new int[]{1,2,3};
8. 理解java的內存分配,
棧 (存儲局部變量 )、
堆(存儲new出來的東西)、
方法區、
本地方法區 (和系統相關)、
寄存器 (給CPU使用)
9. 數組操作的兩個常見小問題:
ArrayIndexOutOfBoundsException:數組索引越界異常
原因:你訪問了不存在的索引。
NullPointerException:空指針異常
原因:數組已經不在指向堆內存了。而你還用數組名去訪問元素。
今天在練習數組的遍歷打印時又用到了一個length屬性,專門用於獲取數組的長度,格式爲:數組名.length返回數組的長度。重點練習形如[1,2,3,4,5]數組的遍歷打印、數組的逆序打印、求最大最小元素、給出指定數值獲取數組相關元素以及給出指定元素獲取其在數組中的索引位置等代碼編寫。
六、
1、二維數組
格式1
數據類型[][] 變量名 = new 數據類型[m][n];
m表示這個二維數組有多少個一維數組
n表示每一個一維數組的元素個數
格式2
數據類型[][] 變量名 = new 數據類型[m][];
m表示這個二維數組有多少個一維數組
這一次沒有直接給出一維數組的元素個數,可以動態的給出。
舉例:
int[][] arr = new int[3][];
arr[0] = new int[2];
arr[1] = new int[3]
arr[2] = new int[1];
格式3
數據類型[][] 變量名 = new 數據類型[][]{{元素…},{元素…},{元素…}};
簡化版格式:
數據類型[][] 變量名 = {{元素…},{元素…},{元素…}};
舉例:
int[][] arr = {{1,2,3},{4,6},{6}};
2.二維數組遍歷。
外循環控制的是二維數組的長度,其實就是一維數組的個數。
內循環控制的是一維數組的長度。
3.重點練習打印楊輝三角形。
4.面向對象思想面向對象是基於面向過程的編程思想。
面向過程:強調的是每一個功能的步驟
面向對象:強調的是對象,然後由對象去調用功能
萬事萬物皆對象。
5.面向對象特徵
封裝(encapsulation)
繼承(inheritance)
多態(polymorphism)
6.類與對象
我們學習編程語言,是爲了模擬現實世界的事物的。
而我們學習的編程語言Java中最基本的單位是:類。
由此,我們就得到了現實世界事物和類的對應關係:
事物: 類:
屬性 成員變量
行爲 成員方法
類:是一組相關的屬性和行爲的集合。是一個抽象的概念。
對象:是該類事物的具體表現形式。具體存在的個體。
7.重點理解對象的內存圖
一個對象的基本初始化過程
兩個對象的內存圖
方法的共用
七 、
1.成員變量和局部變量的區別
1)在類中的位置不同
成員變量 類中方法外
局部變量 方法內或者方法聲明上
2)在內存中的位置不同
成員變量 堆內存
局部變量 棧內
3)生命週期不同
成員變量 隨着對象的存在而存在,隨着對象的消失而消失
局部變量 隨着方法的調用而存在,隨着方法的調用完畢而消失
4)初始化值不同
成員變量 有默認的初始化值
局部變量 沒有默認的初始化值,必須先定義,賦值,才能使用。
2.形式參數的問題:
基本類型:形式參數的改變不影響實際參數
引用類型:形式參數的改變直接影響實際參數
3.匿名對象:就是沒有名字的對象。是對象的一種簡化表示形式。
匿名對象的兩種使用情況:
對象調用方法僅僅一次的時候
作爲實際參數傳遞
4.封裝概述:是指隱藏對象的屬性和實現細節,僅對外提供公共訪問方式。
好處:
隱藏實現細節,提供公共的訪問方式
提高了代碼的複用性
提高安全性。
封裝原則:
將不需要對外提供的內容都隱藏起來。
把屬性隱藏,提供公共方法對其訪問。
5.private關鍵字:
是一個權限修飾符。
可以修飾成員(成員變量和成員方法)
被private修飾的成員只在本類中才能訪問。
private最常見的應用:
把成員變量用private修飾
提供對應的getXxx()/setXxx()方法
6.this:代表所在類的對象引用
記住:
方法被哪個對象調用,this就代表那個對象
什麼時候使用this呢?
局部變量隱藏成員變量
7.構造方法作用:給對象的數據進行初始化
構造方法格式
方法名與類名相同
沒有返回值類型,連void都沒有
沒有具體的返回值
構造方法注意事項
如果你不提供構造方法,系統會給出默認構造方法
如果你提供了構造方法,系統將不再提供
構造方法也是可以重載的
今天重點練習一個基本類的標準寫法:
一個基本類的標準代碼寫法
類
成員變量
構造方法
無參構造方法
帶參構造方法
成員方法
getXxx()
setXxx()
show()
給成員變量賦值的方式
無參構造方法+setXxx()
帶參構造方法