個(gè)人筆記,僅供參考
1、面向?qū)ο蠛兔嫦蜻^程
簡單來說,面向過程就是讓你自己做一個(gè)每一步泌霍,面向?qū)ο缶褪鞘褂糜邢鄳?yīng)功能的工具來完成。
例如:按特定格式打印一個(gè)數(shù)組
面向過程:
int[] array = {10,20,30,40,50};
//打印格式為:[10,20,30,40,50]
System.out.print("[");
for (int i = 0; i < array.length; i++) {
if(i == array.length - 1){//最后一個(gè)數(shù)
System.out.println(array[i] + "]");
}
else
{//不是最后一個(gè)數(shù)
System.out.print(array[i] + ",");
}
}
面向?qū)ο螅?/p>
System.out.println(Arrays.toString(array));
注:IDEA會(huì)自動(dòng)導(dǎo)入Arrays類
這兩者結(jié)果沒有區(qū)別述召,主要區(qū)別是編程的思想朱转。在這里,幫我們打印數(shù)組的Arrays類就被稱為對(duì)象
面向?qū)ο蟮娜齻€(gè)特征:
封裝性
繼承性
多態(tài)性
2积暖、類和對(duì)象
什么是類:類是一組相關(guān)屬性和行為的集合藤为,可以看成是一類事物的模板
? 屬性就是該事物的狀態(tài)信息,行為是該事物能做什么
什么是對(duì)象:對(duì)象是類的具體化實(shí)例夺刑,即類是對(duì)象的模板分别,對(duì)象是類的實(shí)體
3耘斩、類的定義
由屬性和行為組成,以下為例子:
學(xué)生類示范
定義一個(gè)學(xué)生類,有姓名和年齡兩個(gè)屬性,吃法睡覺學(xué)習(xí)三個(gè)行為。
對(duì)應(yīng)到j(luò)ava類中:
成員變量(屬性):
? String name;
? int age;
成員方法(行為):成員方法沒有static關(guān)鍵字
public void eat(){}
public void sleep(){}
public void study(){}
實(shí)際示范:
public class student {
//成員變量
//成員變量直接定義在類中,在方法外
String name;
int age;
//成員方法
//成員方法沒有static關(guān)鍵字
public void eat(){
System.out.println("吃飯");
}
public void sleep(){
System.out.println("睡覺");
}
public void study(){
System.out.println("學(xué)習(xí)");
}
}
4恢恼、對(duì)象的創(chuàng)建及其使用
通常情況牵署,一個(gè)類不能直接使用,要?jiǎng)?chuàng)建一個(gè)對(duì)象才能使用
創(chuàng)建步驟:
- 導(dǎo)包,指出需要使用的類在什么位置浩村,同一個(gè)包下可以不寫導(dǎo)包
- 創(chuàng)建榨乎,格式:類名 對(duì)象名 = new 類名();
- 使用,使用成員變量:對(duì)象名.成員變量,使用成員方法:對(duì)象名.成員方法名(參數(shù))
public class Demo4 {
public static void main(String[] args) {
//創(chuàng)建對(duì)象
student stu = new student();
//打印成員變量
System.out.println(stu.name);
//使用成員方法
stu.eat();
//重新賦值成員變量
stu.name = "Alan";
System.out.println(stu.name);
}
}
5缀蹄、對(duì)象可以當(dāng)做參數(shù)傳遞給方法
public static void method(Phone parse){}
這個(gè)方法的參數(shù)是一個(gè)Phone類的對(duì)象
同樣的,對(duì)象也可以當(dāng)返回值
6拯刁、封裝性
在java當(dāng)中的體現(xiàn)有兩點(diǎn):
- 方法就是一種封裝
- 關(guān)鍵字private也是一種封裝
封裝就是將一些細(xì)節(jié)信息隱藏,對(duì)外界不可見
7逝段、private關(guān)鍵字
private關(guān)鍵字意為私有化筛璧,可以通過該關(guān)鍵字將需要保護(hù)的成員變量進(jìn)行修飾。
private int age;
使用該關(guān)鍵字后惹恃,在本類當(dāng)中仍然可以隨意訪問夭谤,但超出本類范圍之外就不能直接訪問了,如果要在類外對(duì)該成員變量賦值巫糙,需要通過類內(nèi)的get/set
方法朗儒。注意:方法名必須叫g(shù)et xxx或set xxx
public void setAge(int num){
age = num;
}//用來修改age,無返回值参淹,有參數(shù)
public int getAge(){
return age;
}//用來調(diào)用age醉锄,有返回值,無參數(shù)
可以在這兩個(gè)方法內(nèi)通過代碼限制age的值浙值。提高代碼安全性
注意恳不,布爾型的get方法名字應(yīng)為isXXX,例如:
public boolean isMale(){
return male;
//布爾型的get方法名字是is
}
8开呐、this關(guān)鍵字
當(dāng)方法的局部變量和類的成員變量重名時(shí)烟勋,根據(jù)就近原則會(huì)優(yōu)先使用局部變量规求。
如果需要訪問本類當(dāng)中的成員變量,需使用this關(guān)鍵字(方法內(nèi))
this.成員變量名
通過誰調(diào)用的方法卵惦,誰就是this
9阻肿、構(gòu)造方法
專門用來創(chuàng)建對(duì)象的方法,當(dāng)我們用關(guān)鍵字new創(chuàng)建對(duì)象時(shí)沮尿,new后面的語句就是在使用構(gòu)造方法
public 類名(參數(shù)類型 參數(shù)名稱){
方法體
}
注意:
- 構(gòu)造方法的名稱與類名必須完全一樣
- 構(gòu)造方法不要寫返回值類型
- 構(gòu)造方法不能return一個(gè)具體的返回值
- 如果沒寫構(gòu)造方法丛塌,編譯器會(huì)自動(dòng)生成,沒有參數(shù)畜疾,方法體什么都不做
- 構(gòu)造方法也可以重載
構(gòu)造方法的主要作用是赴邻,方便在創(chuàng)建對(duì)象是設(shè)置成員變量
10、定義一個(gè)標(biāo)準(zhǔn)的類
標(biāo)準(zhǔn)的類包含以下四部分
- 所有成員變量都使用private進(jìn)行私有化
- 每一個(gè)成員變量都有一堆get/set方法
- 編寫一個(gè)無參構(gòu)造方法
- 編寫一個(gè)全參構(gòu)造方法
public class work_student {
private String name;
private int age;
public work_student() {
}
public work_student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
以上為一個(gè)標(biāo)準(zhǔn)的類
注意:在IDEA中構(gòu)造方法和get/set方法可以通過IDEA自動(dòng)生成啡捶,在Code--->Generate中