1.面向?qū)ο笏枷敫攀?br>
·面向:
基本意:面向、朝向
引申意:注重、關(guān)注
·對(duì)象:
世間一切事物
·面向過程思想:
面向過程思想就是把關(guān)注點(diǎn)放在一件事或一個(gè)活動(dòng)中涉及到的步驟(也就是過程)上的思想
·面向?qū)ο笏枷耄?/b>
-面向?qū)ο笏枷刖褪前殃P(guān)注點(diǎn)放在一件事或一個(gè)活動(dòng)中涉及到的人或事物(也就是對(duì)象)上的思想
-特點(diǎn):更符合人們思考習(xí)慣的思想、把復(fù)雜的事情簡單話、把人們從執(zhí)行者變成指揮者
-特征:封裝、繼承、多態(tài)
2.類與對(duì)象
描述事物從兩個(gè)方面著手:
1.屬性
2.行為
java中如何描述一個(gè)事物?
Java中通過“類”來描述事物,主要由屬性和行為構(gòu)成
類的概念
即歸類,分類,是一系列具有相同屬性和行為的事物的統(tǒng)稱,擁有屬性和行為
抽象
把一系列相關(guān)事物共同的屬性和行為提取出來的過程
對(duì)象-什么是對(duì)象?
某一類事物的某個(gè)具體存在
類和對(duì)象的關(guān)系
類:屬性和行為的集合,是一個(gè)抽象概念
對(duì)象:是該類事物的具體體現(xiàn),是一個(gè)具體存在
3.類的定義和使用
如果定義一個(gè)類?
定義類的過程,就是把一系列相關(guān)事物共同屬性和行為抽取出來的過程
事物的屬性,在類中叫成員變量
事物的行為,在類中叫成員方法
如果創(chuàng)建一個(gè)對(duì)象?
類名 對(duì)象名 = new 類名();
如何使用一個(gè)對(duì)象?
對(duì)象名.變量名
對(duì)象名.方法名()
例子:手機(jī)類的定義和使用
1.定義:
??? 類名:Phone
??? 成員變量:
??? String brand;//品牌
??? String model;//型號(hào)
??? String name;//名稱
??? 成員方法:
??? call();//打電話
??? sendMessage();//發(fā)短信
??? playGame();//玩游戲
2.使用:
??? Phone p = new Phone();
//定義一個(gè)手機(jī)類
public class Phone {
??? //成員變量:定義類中,方法外的變量
? ? //品牌
? ? Stringband;
??? //型號(hào)
? ? Stringmodel;
??? //名稱
? ? Stringname;
??? //成員方法
? ? //打電話
? ? public void call(String name){
??? ??? System.out.println("給"+name +"打電話" );
}
??? //發(fā)短信
? ? public void sendMessage(String name){
??? System.out.println("給"+name +"發(fā)短信" );
}
??? //玩游戲
? ? public void playGame(){
??? System.out.println("玩游戲");
}
}
public class TestPhone {
??? //main函數(shù)是程序的主入口,所有代碼的執(zhí)行都是從這里開始
? ? public static void main(String[] args) {
??? ??? //1.創(chuàng)建對(duì)象
? ? ? ? Phone p =new Phone();
??? ??? //2.調(diào)用成員變量并打印
? ? ? ? //給成員變量賦值
? ? ? ? p.band ="蘋果";
??? ??? p.model ="x";
??? ??? p.name ="a同學(xué)";
??? ??? //打印成員變量的值
? ? ? ? System.out.println(p.band);
??? ??? System.out.println(p.model);
??? ??? System.out.println(p.name);
??? ??? //3.調(diào)用成員方法
? ? ? ? System.out.println("==========");
??? ??? p.call("b同學(xué)");
??? ??? p.sendMessage("c同學(xué)");
??? ??? p.playGame();
??? }
}
運(yùn)行結(jié)果:

JAVA中使用變量的規(guī)則:
使用變量遵循就近原則,如果局部位置由,就使用
沒有就去本類成員位置找,有就使用,沒有就報(bào)錯(cuò)
成員變量和局部變量的區(qū)別
1.定義位置
成員變量:類中,方法外
局部變量:方法中或形式參數(shù)
2.初始化值
成員變量:有默認(rèn)初始化值
局部變量:無默認(rèn)初始化值,必須先賦值再使用
3.作用范圍:
成員變量:在類中
局部變量:在方法中
4.在內(nèi)存中位置:
成員變量:堆內(nèi)存中
局部變量:棧內(nèi)存中
5.生命周期
成員變量:隨著對(duì)象的創(chuàng)建而存在,隨著對(duì)象的消失而消失
局部變量:隨著方法的調(diào)用而存在,隨著方法的調(diào)用完畢而消失
注意事項(xiàng):
局部變量和成員表變量重名時(shí),采取就近原則
4.封裝概述
什么是封裝?
把一系列能打包到一臺(tái)設(shè)備里,提供使用給這些功能的界面
封裝的好處
-提高安全性
-提高復(fù)用性
-將復(fù)雜的事情簡單化
java中的封裝體
1.方法
安全性:調(diào)用者不知道方法的具體實(shí)現(xiàn)
復(fù)用性:方法可以重復(fù)使用
簡單化:將繁多的代碼以一個(gè)方法的方式呈現(xiàn),僅通過調(diào)用方法就可以實(shí)現(xiàn)功能,代碼維護(hù)也變得簡單
2.類
安全性:調(diào)用者不知道類的具體實(shí)現(xiàn)
復(fù)用性:類的對(duì)象可以被重復(fù)使用
簡單化:類的對(duì)象包含了更多的功能,使用起來更方便
5.private關(guān)鍵字
private的基本概念
私有的,一種訪問權(quán)限修飾符,用來修飾類的成員
特點(diǎn):別修飾的成員只能在本類中訪問
用法:
??? private 數(shù)據(jù)類型? 變量名
??? private 返回值類型 方法名(參數(shù)列表){}
拓展:public ,公共的,訪問權(quán)限修飾符,用來修飾類,成員變量,成員方法等,被修飾的內(nèi)容可以在任意類中訪問
例子:private修飾成員變量
需求:給student類的變量用private修飾,然后再測(cè)試類中正確使用該成員變量
public class Student {
??? //成員變量
? ? //姓名
? ? private Stringname;
??? //年齡
? ? private int age;
??? //成員方法
? ? //學(xué)習(xí)
? ? public void study(){
??? ??? System.out.println(name +"在學(xué)習(xí)");
??? }
??? //提供公共訪問方式,分別設(shè)置值,獲取值
? ? //設(shè)置姓名
? ? public void SetName(String n){
??? ??? name = n;
??? }
??? //獲取姓名
? ? public String getName(){
??? ??? return name;
??? }
??? //設(shè)置年齡
? ? public void setAge(int a){
??? ??? age = a;
??? }
??? //獲取年齡
? ? public int getAge(){
??? ??? return age;
??? }
}
public class TestStudent {
public static void main(String[] args) {
Student s =new Student();
//調(diào)用setName成員方法來設(shè)置成員變量name
? ? ? ? s.SetName("張三");
//調(diào)用setAge成員方法來設(shè)置成員變量age
? ? ? ? s.setAge(15);
//調(diào)用getName和getAge方法來獲取姓名和年齡
? ? ? ? System.out.println("姓名:"+s.getName()+"年齡:"+s.getAge());
}
}
運(yùn)行結(jié)果:

6.this關(guān)鍵字
表示本類對(duì)象的引用,本質(zhì)是一個(gè)對(duì)象
特點(diǎn)
每一個(gè)普通方法都有一個(gè)this,誰調(diào)用該方法就指向誰
用法
this.屬性名
7.標(biāo)準(zhǔn)代碼:JavaBean
構(gòu)造方法的基本概念
構(gòu)建、創(chuàng)造,也叫構(gòu)造器,準(zhǔn)確的說,構(gòu)造方法的作用是初始化對(duì)象
誰來創(chuàng)建對(duì)象?
new關(guān)鍵字,Java中通過new關(guān)鍵字創(chuàng)造對(duì)象,并在內(nèi)存中開辟空間,然后使用構(gòu)造方法(構(gòu)造器)完成對(duì)象的初始化工作
構(gòu)造方法的定義
格式
修飾符 構(gòu)造方法名(參數(shù)列表){
//方法體
}
注意事項(xiàng):
1.方法名必須與類名相同(包括大小寫)
2.沒有返回值(但是里面可以寫return)
3.沒有返回類型(也沒有void)
4.若未提供任何構(gòu)造方法,系統(tǒng)會(huì)給出默認(rèn)無參構(gòu)造
5.若已提供任何構(gòu)造方法,系統(tǒng)不再提供無參構(gòu)造
6.構(gòu)造方法可以重載
標(biāo)準(zhǔn)代碼:JavaBean
Java語言編寫類的保準(zhǔn)規(guī)范。符合JavaBean標(biāo)準(zhǔn)的類,必須是具體的、公共的,并且具有無參數(shù)的構(gòu)造方法,提供用來操作成員變量的set 和 get方法
Java中封裝的概念
將一系列相關(guān)事物共同的屬性和行為提取出來,放到一個(gè)類中,隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外提供公共的訪問方式
封裝的關(guān)鍵
絕對(duì)不能讓類中的方法直接訪問其他類的數(shù)據(jù)(屬性),程序僅通過對(duì)象的方法與對(duì)象的數(shù)據(jù)進(jìn)行交互
例子:
//定義一個(gè)標(biāo)準(zhǔn)的JavaBean類
public class Student {
? ? //成員變量:全部用private修飾
? ? //姓名
? ? private Stringname;
? ? //年齡
? ? private int age;
? ? //構(gòu)造方法:無參構(gòu)造,全參構(gòu)造
? ? //無參構(gòu)造
? ? public Student(){
? ? }
? ? //全參構(gòu)造
? ? public Student(String name ,int age){
? ? ? ? this.name = name;
? ? ? ? this.age = age;
? ? }
? ? //公共訪問方式:getXXX() ,setXXX()
? ? //設(shè)置姓名
? ? public void setName(String name){
? ? ? ? this.name = name;
? ? }
? ? //獲取姓名
? ? public String getName(){
? ? ? ? return this.name;
}
? ? //設(shè)置年齡
? ? public void setAge(int age) {
? ? ? ? this.age = age;
? ? }
? ? //獲取年齡
? ? public int getAge() {
? ? ? ? return age;
? ? }
}
public class TestStudent {
??? public static void main(String[] args) {
??? ??? Student stu =new Student();
??? ??? stu.setName("張三");
??? ??? stu.setAge(12);
??? ??? System.out.println("姓名:"+stu.getName()+"年齡:"+stu.getAge());
??? ??? System.out.println("===================");
??? ??? Student stu2 =new Student("李四",15);
??? ??? System.out.println("姓名:"+stu2.getName()+"年齡:"+stu2.getAge());
??? }
}
運(yùn)行結(jié)果:
