面向?qū)ο蟮幕靖拍?/h2>

一基本特征

面向?qū)ο蟮幕咎卣饔腥齻€(gè):封裝性,繼承性,多態(tài)性

  • 封裝性 封裝是一種信息隱藏技術(shù),封裝使數(shù)據(jù)和加工數(shù)據(jù)的函數(shù)封裝成一個(gè)整體,使用戶只看到對(duì)象的外特性,目的在于把對(duì)象的設(shè)計(jì)者和對(duì)象的使用者區(qū)別開來。
  • 繼承性 繼承就是子類和父類可以共享數(shù)據(jù),子類可以直接繼承父類的全部描述,并且可以加以修改和補(bǔ)充,繼承分為單繼承和多繼承。
  • 多態(tài)性
    對(duì)象根據(jù)接受到的消息做出的不同的動(dòng)作。不同對(duì)象對(duì)接收到的同一消息可以產(chǎn)生不同的動(dòng)作。

二、面向?qū)ο蠛兔嫦蜻^程的區(qū)別

  • 面向過程編程試講程序一步一步分解,并且按照一定的順序執(zhí)行,環(huán)環(huán)相扣,最大的缺點(diǎn)就是,如果需求發(fā)生了改變,需要改動(dòng)的太多了。
  • 面向?qū)ο缶幊痰氖褂檬且榷x一個(gè)類然后用該類型下的“對(duì)象”組裝程序,對(duì)象之間通過‘消息傳遞’。最大的缺點(diǎn)是:執(zhí)行效率過低。

二、基本概念

類是具有相同屬性及相同動(dòng)作的一組對(duì)象。

類的聲明

  • 語法

[標(biāo)識(shí)符] class 類名稱{
//類成員變量
//類的方法
}

- 類的控制符

Java的訪問權(quán)限主要有四個(gè)

  • 1、默認(rèn)模式(default) 默認(rèn)模式下,不需要為某個(gè)類,方法等不加任何訪問修飾符。這類方式聲明的方法和類,只允許在同一個(gè)包(package)內(nèi)是可 以訪問的。
  • 2、private(私有) 被聲明為“私有”訪問,那么他只能在當(dāng)前聲明它的類里面訪問,類和接口的訪問方式是不能被聲明為私有的
  • 3、public(公有) Java中歲訪問權(quán)限控制最寬松的修飾符。如果一個(gè)方法、變量、和構(gòu)造方法和接口被定義為“公共”訪問,那么它不僅可以跨類訪問,而且允許跨包訪問。如果要訪問的其它包里有公共成員,則需要倒包。
  • 4、protected(受保護(hù)的)如果一個(gè)變量、方法、和構(gòu)造方法在父類中被聲明為"保護(hù)"訪問類型,只能被類本身及其子類訪問,即使子類在不同的包也可以被訪問。
    注:final類不能被繼承。
- 類的定義

[標(biāo)識(shí)符] class 類名稱{
數(shù)據(jù)類型 屬性;
類名稱 (參數(shù),...)
}
返回值的數(shù)據(jù)類型 方法名稱(參數(shù)1,參數(shù)2,...)
{
程序語句;
return表達(dá)式;
}
}

注:static修飾的成員不能訪問沒有stati修飾的成員。

- 類的屬性

定義屬性的語法:
[修飾符]屬性類型 屬性名[=默認(rèn)值]

對(duì)象

對(duì)象是類的實(shí)例化產(chǎn)物。但是對(duì)象可以定義不同的屬性。

- 對(duì)象的聲明

語法:
類名 對(duì)象名 = new 類名();
步驟:

  • 1、聲明指向“由類所創(chuàng)建的對(duì)象”的變量。
  • 2、利用new創(chuàng)建新的對(duì)象,并指派給先前所創(chuàng)建的變量。
    舉例:
    Person p = new Person();
- 對(duì)象的使用

語法:
對(duì)象名稱.屬性名 //訪問屬性
語法名稱.方法名 //訪問方法

- 匿名對(duì)象

對(duì)一個(gè)實(shí)例化的操作來講,對(duì)象真正有用的部分是在堆內(nèi)存里面,棧內(nèi)存只保存了一個(gè)對(duì)象的引用名稱。所以所謂的匿名對(duì)象是指,只開辟堆內(nèi)存空間,而沒有棧內(nèi)存指向的對(duì)象
匿名特點(diǎn):

  • 1、匿名對(duì)象是沒有被其他對(duì)象所引用
  • 2、由于匿名對(duì)象沒有棧內(nèi)存指向,所以其只能使用一次,時(shí)候就變成無法尋找的垃圾
- 對(duì)象的比較
  • 1、“ == ”運(yùn)算符
    “==”運(yùn)算符是比較兩個(gè)對(duì)象的內(nèi)存地址值(引用值)是否相等
  • 2、利用“equals()”方法
    equals()方法用于比較兩個(gè)對(duì)象的內(nèi)容是否一致
    例:

String str1 = new String("java");
String str2 = new String("java");
str1和str2完全相等,如果用“==”運(yùn)算符比較,那就是不相等的,因?yàn)榉謩e是用new實(shí)例化了兩個(gè)String類型。如果是用“equals()”方法比較那他們就是想等的。

最后編輯于
?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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