大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 你知道Java類與對象的關(guān)系嗎,看這里

你知道Java類與對象的關(guān)系嗎,看這里

更新時間:2020-05-28 15:32:46 來源:動力節(jié)點 瀏覽2759次

類:事物的描述。是具備某些共同特征的實體的集合,它是一種抽象的數(shù)據(jù)類型,它是對所具有相同特征實體的抽象。在面向?qū)ο蟮某绦蛟O(shè)計語言中,類是對一類“事物”的屬性與行為的抽象。

對象:該類事物的實例。在Java中通過new進(jìn)行創(chuàng)建。是一個真實世界中的實體,對象與實體是一一對應(yīng)關(guān)系的,意思就是現(xiàn)實世界的每一個實體都是一個對象,所以對象是一個具體的概念。對象是一種個性的表示,表示一個獨立的個體,每個對象擁有自己獨立的屬性,依靠屬性來區(qū)分不同對象。

舉個例子

我們發(fā)的卷子出的題都是一樣的相當(dāng)于一個類,而每個同學(xué)做的都相當(dāng)于對象了

造汽車的圖紙相當(dāng)于類,而造出來的汽車相當(dāng)于對象了

每個學(xué)校的老師是一個類,但是具體到每個老師就是對象了

類和對象的區(qū)別

1.類是一個抽象的概念,它不存在于現(xiàn)實中的時間/空間里,類只是為所有的對象定義了抽象的屬性與行為。就好像“Person(人)”這個類,它雖然可以包含很多個體,但它本身不存在于現(xiàn)實世界上。

2.對象是類的一個具體。它是一個實實在在存在的東西。

3.類是一個靜態(tài)的概念,類本身不攜帶任何數(shù)據(jù)。當(dāng)沒有為類創(chuàng)建任何對象時,類本身不存在于內(nèi)存空間中。

4.對象是一個動態(tài)的概念。每一個對象都存在著有別于其它對象的屬于自己的獨特的屬性和行為。對象的屬性可以隨著它自己的行為而發(fā)生改變。

具體的:類是對象的模板,對象是類的實例。類只有通過對象才可以使用,而在開發(fā)之中應(yīng)該先產(chǎn)生類,之后再產(chǎn)生對象。類不能直接使用,對象是可以直接使用的。

在Java中定義類,使用關(guān)鍵字class完成。語法如下:

class?類名稱?{
?????????屬性?(變量)?;
?????????行為?(方法(函數(shù)))?;
}

范例:定義一個Person類

class?Person?{?????//?類名稱首字母大寫
????String?name?;
????int?age?;
????public?void?tell()?{????????//?沒有static
??????????System.out.println("姓名:"?+?name?+?",年齡:"?+?age)?;
?????????}
}

類定義完成之后,肯定無法直接使用。如果要使用,必須依靠對象,那么由于類屬于引用數(shù)據(jù)類型,所以對象的產(chǎn)生格式(兩種格式)如下:

格式一:聲明并實例化對象

  • 類名稱對象名稱=new類名稱();

格式二:先聲明對象,然后實例化對象:

  • 類名稱對象名稱=null;
  • 對象名稱=new類名稱();

引用數(shù)據(jù)類型與基本數(shù)據(jù)類型最大的不同在于:引用數(shù)據(jù)類型需要內(nèi)存的分配和使用。所以,關(guān)鍵字new的主要功能就是分配內(nèi)存空間,也就是說,只要使用引用數(shù)據(jù)類型,就要使用關(guān)鍵字new來分配內(nèi)存空間。

當(dāng)一個實例化對象產(chǎn)生之后,可以按照如下的方式進(jìn)行類的操作:

對象.屬性:表示調(diào)用類之中的屬性;

對象.方法():表示調(diào)用類之中的方法。

范例:使用對象操作類

package?com.wz.classandobj;
class?Person?{?
????String?name?;
????int?age?;
????public?void?get()?{
????????System.out.println("姓名:"?+?name?+?",年齡:"?+?age);
????}
}
?
public?class?TestDemo?{
????????public?static?void?main(String?args[])?{
????????????Person?per?=?new?Person()?;//?聲明并實例化對象
????????????per.name?=?"張三"?;//操作屬性內(nèi)容
????????????per.age?=?30?;//操作屬性內(nèi)容
????????????per.get()?;//調(diào)用類中的get()方法
????????}
}

運行結(jié)果:
姓名:張三,年齡:30

以上完成了一個類和對象的操作關(guān)系,下面換另外一個操作來觀察一下:

package?com.wz.classandobj;
?class?Person?{?
????String?name?;
????int?age?;
????public?void?get()?{
????????System.out.println("姓名:"?+?name?+?",年齡:"?+?age);
????}
}
?
public?class?TestDemo?{
????????public?static?void?main(String?args[])?{
????????????Person?per?=?null;//聲明對象
????????????per?=?new?Person()?;//實例化對象
????????????per.name?=?"張三"?;//操作屬性內(nèi)容
????????????per.age?=?30?;//操作屬性內(nèi)容
????????????per.get()?;//調(diào)用類中的get()方法
????????}
}

運行結(jié)果:
姓名:張三,年齡:30

那么,問題來了,以上兩種不同的實例化方式有什么區(qū)別呢?

我們從內(nèi)存的角度分析。首先,給出兩種內(nèi)存空間的概念:

  • 堆內(nèi)存:保存對象的屬性內(nèi)容。堆內(nèi)存需要用new關(guān)鍵字來分配空間;
  • 棧內(nèi)存:保存的是堆內(nèi)存的地址(在這里為了分析方便,可以簡單理解為棧內(nèi)存保存的是對象的名字)。

你知道Java類與對象的關(guān)系嗎,看這里

任何情況下,只要看見關(guān)鍵字new,都表示要分配新的堆內(nèi)存空間,一旦堆內(nèi)存空間分配了,里面就會有類中定義的屬性,并且屬性內(nèi)容都是其對應(yīng)數(shù)據(jù)類型的默認(rèn)值。

于是,上面兩種對象實例化對象方式內(nèi)存表示如下:

你知道Java類與對象的關(guān)系嗎,看這里

兩種方式的區(qū)別在于①②,第一種聲明并實例化的方式實際就是①②組合在一起,而第二種先聲明然后實例化是把①和②分步驟來。

Java技術(shù)相關(guān)內(nèi)容

Java類與對象的定義:http://www.dabaquan.cn/tutorial_java_se/104.html

以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“你知道Java類與對象的關(guān)系嗎,看這里”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 日韩a免费 | 免费看一级特黄a大片 | 伊人色美文情网址 | 四虎影视在线永久免费观看 | 黄色免费网站在线观看 | 视频在线观看入口一二三2021 | 欧美一级录像 | 欧美艹逼视频 | 久久精品国产99久久72 | 久久这里有 | 99在线视频精品费观看视 | 99久久精品久久久 | 国产一级毛片网站 | 日韩在线视精品在亚洲 | 激情国产白嫩美女在线观看 | 亚洲国产精品久久久天堂麻豆 | 欧美一级毛片片免费孕妇 | 国产视频一区二 | 欧美成人私人视频88在线观看 | 久久99国产这里有精品视 | 色好看在线视频播放 | 四虎视频在线精品免费观看 | 九九热在线免费观看 | 日韩欧美日本 | 国产福利视频在线播放 | 玖玖国产在线观看 | 国产51自产区 | 亚洲国产日韩在线一区 | 欧美一级毛片免费播放器 | 一级毛片牲交大片 | 橘子视频在线观看 | 国产精品久久久久蜜芽 | 91香蕉嫩草 | 99久热在线精品视频播 | 中文字幕亚洲综合久久 | 欧美成人午夜影院 | 国产精品成人免费视频99 | 欧美精品大片 | 奇米在线观看 | 免费h片在线观看 | 激情欧美一区二区三区中文字幕 |