類和對(duì)象
成都創(chuàng)新互聯(lián)長(zhǎng)期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為沁縣企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,沁縣網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
對(duì)象我們知道,代表現(xiàn)實(shí)世界中可以明確標(biāo)識(shí)的一個(gè)實(shí)體(萬(wàn)物皆對(duì)象),每個(gè)對(duì)象都有自己獨(dú)特的標(biāo)識(shí)、狀態(tài)和行為。
類是具有相似特征和行為的事物的統(tǒng)稱。使用一個(gè)通用類來(lái)定義同一類型的對(duì)象。 類是一個(gè)模板 、藍(lán)本或者說(shuō)是合約 , 用來(lái)定義對(duì)象的數(shù)據(jù)域是什么以及方法是做什么的 。
一個(gè)對(duì)象是類的一個(gè)實(shí)例,可以從一個(gè)類中創(chuàng)建多個(gè)實(shí)例 。
注意:主函數(shù)是不需要?jiǎng)?chuàng)建對(duì)象的,可以直接調(diào)用(由JVM)。
類的分類
主類:主要負(fù)責(zé)程序的運(yùn)行
實(shí)體類:主要負(fù)責(zé)描述事物
工具類:一般不會(huì)創(chuàng)建對(duì)象,直接通過(guò)類調(diào)用函數(shù)(靜態(tài))
下面幾個(gè)就是我們常用的比較熟悉的幾個(gè)工具類:
Math.abs() Math.random() Arrays.toString(); System.out.println();
對(duì)象與類的關(guān)系:
類是對(duì)象的定義, 對(duì)象從類創(chuàng)建。例如狗是一個(gè)類,對(duì)所有狗的一個(gè)統(tǒng)稱,而哈士奇就是狗這個(gè)類的一個(gè)實(shí)體對(duì)象。
如何去定義一個(gè)類
主要定義其特征和行為
特征:變量
行為:函數(shù)
定義狗這個(gè)類 ,特征有姓名、性別、年齡、身高、體重和毛色,定義6個(gè)成員變量存放,行為有吃和睡,定義兩個(gè)成員函數(shù)來(lái)實(shí)現(xiàn)。
class Dog{ //直接定義在類中的變量 成員變量 姓名 String name; 性別 String sex; 年齡 int age; 身高 double heigth; 體重 double weight; 毛色 String color; //成員函數(shù)(非static函數(shù)) 吃 public void eat(){... return;} 睡 public void sleep(){... return;} }
創(chuàng)建具體對(duì)象:
public class Mian{ public static void main(String[] args) { Dog Huskies=new Dog(); } }
對(duì)象創(chuàng)建的流程
1、主函數(shù)先進(jìn)棧
2、執(zhí)行語(yǔ)句的右邊new Dog(),在堆內(nèi)存中開辟一個(gè)空間,隨機(jī)分配地址
3、在對(duì)象空間中創(chuàng)建成員變量的空間,并對(duì)成員變量進(jìn)行默認(rèn)初始化,創(chuàng)建成員函數(shù)(并不在對(duì)象空間里,也不再棧里,在棧中調(diào)用)
4、在函數(shù)棧中創(chuàng)建局部變量,存放的是該對(duì)象在堆內(nèi)存中的地址
局部變量和成員變量的區(qū)別
區(qū)別一:定義的位置不同
成員變量定義在類中,局部變量定義在方法中或者語(yǔ)句里面
區(qū)別二:在內(nèi)存中的位置不同
成員變量存儲(chǔ)在堆內(nèi)存的對(duì)象中,局部變量存儲(chǔ)在棧內(nèi)存的方法中
區(qū)別三:聲明周期不同
成員變量隨著對(duì)象的出現(xiàn)而出現(xiàn)在堆中,隨著對(duì)象的消失而從堆中消失,局部變量隨著方法的運(yùn)行而出現(xiàn)在棧中,隨著方法的彈棧而消失
區(qū)別四:初始化不同
成員變量因?yàn)樵诙褍?nèi)存中,有默認(rèn)的初始化值,局部變量沒有默認(rèn)的初始化值,必須手動(dòng)的給其賦值才可以使用
以上就是關(guān)于java中類和對(duì)象的詳細(xì)介紹的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!