JAVA基礎:一、類和物件
Java基礎語法規範
Java兩種大的資料型別:基本資料型別、引用資料型別
基本資料型別:八種回顧
引用資料型別:陣列、字串、類、Scanner、Connection 變數的命名規則:
1.只能由數字、字母、下劃線和$組成
2.不能有數字開頭
3.不能以關鍵字命名(new class )
4.嚴格區分大小寫。 八種基本資料型別:
整形 int(32位) long short byte
小數:double float
字元型:char
布林型:boolean String(特殊的資料型別) 變數; 資料型別 變數名;
變數的賦值: 變數名 = 資料;
注意:資料要和與之對應的資料型別相匹配。
(錯誤示範:)int a ="逗逼";
算術運算子:+ - * / % += -= *= ++ -- (自加,自減)
注意:/(取整:當除數和被除數都是整數的時候,做的是取整) 例如:8/3=2
例如; String str ="逗逼" ; str +="無聊"; 相當於 str = str +"無聊";
例如:i++ 相當於 i= i+1;
關係運算符: < > == <= >= !=
邏輯運算子:&&並且 ||或者 !(非) if(){
} if(){
}else{
} if(){
}else if(){
} while(){
} for(int i ; i<10 ;i++){
} 2、新內容
一、目標:掌握類和物件的特徵
會建立和使用物件
理解封裝:a)理解封裝概念。 b)掌握private關鍵字。c)掌握構造方法。d)掌握方法過載。 二、類和物件(面向物件,屬性,方法,封裝,類與物件的概念,new,訪問成員)
●從抽象的世界理解:
面向過程;所有的程式碼都是寫在main函式中的
面向物件:可以把程式碼寫在main函式之外
把現實世界抽象到程式程式碼中------------------->
類:物以類聚人以群分,人類,動物類,植物類。
比如:某某同學,一看就是人類。標準是什麼?
不能說(兩個眼睛一個鼻子倆胳膊倆腿)長得像人就是人(猩猩),要符合人類的定義。
人類:能直立行走,能獨立思考。
●類的屬性,方法
警察找犯罪現場目擊證人描述犯罪嫌疑人。 靜態的特徵(屬性):身高、年齡、體重、男女
動態的行為(方法):習慣行動作(無間道劉德華) 一個類由兩部分組成:屬性、方法。
類的特徵:用變數描述
類的行為:用函式描述
●類與物件的概念
人類:特徵:height weight
行為:run walk cry laugh happy 直立行走、獨立思考、會使用工具 類是模子,確定物件將會擁有的特徵(屬性)和行為(方法)
類和物件:類是對事件一類事物的描述(模板),物件就是類的具體化,(是類的產品)
類是建立物件的模版,是一個抽象的概念。是一個看不見摸不著的東西。
比如說:我叫你拿一個人類過來,你拿過來的往往是人類的例項:張三、李四 ●從語法上理解:
int a = 10; //基本資料型別
Person p = new Person(); //自定義資料型別
★類是我們自定義的一種資料型別,而物件則是這種資料型別的變數值。 ●類和物件的關係:類是建立物件的模版,物件是類的一個例項。
千萬不能把類和物件搞混淆,它們是完全不同的兩種東西:
類是一個靜態的東西,是一種定義,是一種概念,是一種資料型別。
在現實生活中有:老師、學生、宿管阿姨、機房、快餐店、藥
程式碼裡有:Scanner Connection Statement 物件是一個例項,是真實存在的,我們可以去溝通交流使用操作
對應上面的例子有:李老師、小崔、張阿姨、603、牛牛、太極藿香正氣水
程式碼裡有:scan conn stat ●Java中類和例項的建立
所有Java程式都以類為組織單元。(Java是純面向物件的程式語言:封裝、繼承、多型)
用關鍵字class來建立自定義資料型別。 //無意義的類,只從語法上演示了java程式的執行
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World");
}
}
//為什麼要用面向物件,因為可以使用類將現實世界模擬到計算機程式中。
★面向物件是一種思維方式。
public class 類名 { 類名:英文單詞,有意義的,首字母大寫。
//定義屬性部分
屬性1的型別 屬性1;
屬性2的型別 屬性2;
…
屬性n的型別 屬性n; //定義方法部分
方法1;
方法2;
…
方法m;
}
屬性也叫成員變數,主要描述類的狀態。
方法也叫成員方法,主要描述類的行為。
●見圖片01類、02類的定義、03生成物件 ●見程式碼JavaOOP_01示例 練習:新建一個Person類中新增姓名、性別、年齡。新增一個送外賣的方法(行為),
並給方法設定一個返回值String。在main方法呼叫並接收返回值列印 三、Java類中的方法(函式) ●見程式碼JavaOOP_01示例Person
1.無引數無返回
void 方法名(){}
2.有引數無返回
void 方法名(資料型別 引數名){}
引數名可以隨便命名,但是一定要遵守變數的命名規則
3.無引數有返回
返回值資料型別 方法名(){
return 返回值;
}
4.有引數有返回
返回值資料型別 方法名(資料型別 引數名){
return 返回值;
}
形參:定義方法的時候,會需要傳遞引數。在定義的時候,那個引數叫做形參。
就形式上的引數,沒有實際的值。只起以形式上的作用。就是告訴你這個地方需要一個引數而已。
實參:是呼叫方法的時候需要傳遞的引數,有實際意義(有值的變數) 四、封裝和訪問控制權限(public和private)
●封裝:將屬性(變數)和行為(函式)封裝到一個類中。 public 、private 只是一個修飾詞,被這兩個詞修飾的屬性或者方法有以下特徵:
public(公共的東西,其他地方都可以用)
private(私有的,只有自己可以使用)
★通常我們類的屬性都是用private去修飾。但這也不是絕對,是情況而定。
生成getters/setters方法。
空白處點選滑鼠右鍵---Source---Generate Getters and Setters--
--選擇你要生成getters/setters方法的屬性——>ok即可 將屬性設定為私有,並使用set方法去設定屬性的優點:
保證資料的安全型
我們還需要給這個類新增一個get方法去獲取這個類中的屬性值 ★通常我們類的行為(方法)都用public去修飾 ★封裝的實現:
1、修改類的屬性的可見性來限制對屬性的訪問。
2、為每一個屬性建立一對賦值(setter)方法和取值(getter)方法用於對這些屬性的訪問。
3、在(setter)(getter)方法中加入對屬性存取的限制。(作用:為了保護欄位) 為啥?舉例:你錢包空了要去銀行賬戶取錢,你不是直接通過
修改銀行賬戶錢的屬性減少,你是要通過一個視窗職員給你的
賬戶取值的getter方法,然後減去給你現金數,職員再呼叫setter方法設定你的錢數