Java 面向?qū)ο?封裝

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é)果:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容