摘要:一構(gòu)造器構(gòu)造方法構(gòu)造函數(shù)在創(chuàng)建對象時(shí)必會(huì)調(diào)用一個(gè)特殊的方法,這個(gè)方法是初始化對象信息的為服務(wù)的。構(gòu)造函數(shù)與類同名且沒有返回值。
一、 構(gòu)造器(構(gòu)造方法|構(gòu)造函數(shù))
在創(chuàng)建對象時(shí)(new),必會(huì)調(diào)用一個(gè)特殊的方法,這個(gè)方法是初始化對象信息的為new服務(wù)的。這個(gè)方法稱為“構(gòu)造器”
使用 new + 構(gòu)造方法創(chuàng)建一個(gè)新的對象。
構(gòu)造函數(shù)是定義在 Java類中的一個(gè)用來初始化對象的函數(shù)。
構(gòu)造函數(shù)與類同名且沒有返回值。
例如: Person類的構(gòu)造函數(shù):
public class Person { int id; int age; Person(int n, int i){ id = n; age = i; } }
創(chuàng)建對象時(shí),使用構(gòu)造函數(shù)初始化對象的成員變量
public class Test { public static void main(String[] args) { Person tom = new Person(1, 18); Person jeck = new Person(2, 20); } }二、構(gòu)造方法的特點(diǎn):
1) 名稱必須和類名一致,與類名相同
2) 沒有返回類型|void
3) 構(gòu)造器可以存在return,return有選擇的跳出構(gòu)造器
4) 不能隨便調(diào)用,和new在一起使用,其他時(shí)候不能調(diào)用
5) 修飾符不能為 final abstract static
作用:
初始化對象信息,不是用于創(chuàng)建對象的
空構(gòu)造:
沒有參數(shù)的構(gòu)造器、無參構(gòu)造
1) 一個(gè)類中,如果沒有顯示|手動(dòng) 加入 任意構(gòu)造器 javac編譯后 自動(dòng)加入空構(gòu)造
2) 一旦加入構(gòu)造器, javac 不會(huì)加入空構(gòu)造器
三、方法的重載方法的重載是指一個(gè)類中可以定義有相同的方法名,但參數(shù)不同的多個(gè)方法。調(diào)用時(shí),會(huì)根據(jù)不同的參數(shù)列表選擇對應(yīng)的方法。
與普通方法一樣,構(gòu)造方法也可以重載
例子如下:
A:一個(gè)對象的內(nèi)存圖
B:二個(gè)對象的內(nèi)存圖
C:三個(gè)對象的內(nèi)存圖
內(nèi)存分析
劃分
引用的特點(diǎn):
1) 同一時(shí)刻一個(gè)一引用只能指向一個(gè)對象
2) 一個(gè)對象可以被多個(gè)引用所指向,其中一個(gè)對其進(jìn)行更改,該對象的其他引用也可見該變化
3) Java一切為值傳遞,引用拷貝地址
約定俗成的命名規(guī)則
類名的首字母大寫
變量名和方法名的首字母小寫
運(yùn)用駝峰標(biāo)識
例子:
public class Cat { String color; // 毛的顏色 String name; // 名稱 public void chase(Mice mice){ mice.type = "jerry"; // 改變 System.out.println(name + " 逮 " + mice.type); } public static void main(String[] args) { // 引用 與內(nèi)存分析(運(yùn)行期為--》數(shù)據(jù)的流向) Cat cat = new Cat(); cat = new Cat(); // 引用發(fā)生變化,同一個(gè)時(shí)刻一個(gè)引用只能指向一個(gè)對象 cat.color = "黑色"; cat.name = "tom"; Mice mice = new Mice(); mice.type = "米奇"; // 將二者聯(lián)系起來 --》 依賴 cat.chase(mice); // 傳遞時(shí),值拷貝,拷貝地址,拷貝完成后 一個(gè)對象被多個(gè)引用所指向 System.out.println(mice.type); // jerry 其中一個(gè)對其發(fā)生變化,該對象的其他引用也可減該變化 } } class Mice{ String type; }
定義如下類
public class BirthDate { int day; int month; int year; public BirthDate(int d, int m, int y){ day = d; month = m; year = y; } void setDay(int d){ day = d; } void setMonth(int m){ month = m; } void setYear(int y){ year = y; } int getDay(){ return day; } int getMonth(){ return month; } int getYear(){ return year; } void display(){ System.out.println(day + "-" + month + "-" + year); } }
測試類:
public class Test { public static void main(String[] args) { Test test = new Test(); int date = 9; BirthDate d1 = new BirthDate(7,7,1970); BirthDate d2 = new BirthDate(1,1,2000); test.change1(date); test.change2(d1); test.change3(d2); System.out.println(date); System.out.println(d1); System.out.println(d2); } void change1(int i){ i = 1234; } void change2(BirthDate b){ b = new BirthDate(22,2,2004); } void change3(BirthDate b){ b.setDay(22); } }
總結(jié):
對象的創(chuàng)建和使用,必須使用new 關(guān)鍵字創(chuàng)建對象,使用對象引用.成員變量來引用對象的成員變量,使用對象引用.方法(參數(shù)列表)來調(diào)用對象的方法。
同一類的每個(gè)對象有不同的成員變量存儲空間,同一類的每個(gè)對象共享該類的方法,
非靜態(tài)方法是針對每個(gè)對象進(jìn)行調(diào)用 。
樂字節(jié)原創(chuàng),轉(zhuǎn)載請注明出處。請繼續(xù)關(guān)注樂字節(jié)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/75495.html
摘要:二面向?qū)ο蟾攀雒嫦蜻^程的設(shè)計(jì)思想和面向?qū)ο蟮脑O(shè)計(jì)思想我要吃魚香肉絲蓋飯面向過程我買菜我洗菜我切菜我放水我點(diǎn)火我做飯我炒菜。。。。 大家好,上次我們講過了樂字節(jié)Java編程之方法、調(diào)用、重載、遞歸,接下來我們將會(huì)進(jìn)入到Java封裝的內(nèi)容。Java編程語言發(fā)展,面向?qū)ο蠛皖悺?一、編程語言的發(fā)展 機(jī)器語言——直接由計(jì)算機(jī)的指令組成,指令、數(shù)據(jù)、地址都以0和1組成:可以被計(jì)算機(jī)直接識別并執(zhí)行...
摘要:大家好,樂字節(jié)的小樂又來了,上一篇是樂字節(jié)繼承與權(quán)限修飾,也是屬于繼承的,今天繼續(xù)繼承方法重寫和關(guān)鍵字。三關(guān)鍵字表示最終的。修飾類,表示該類不能被繼承修飾方法,表示該方法不能被重寫修飾屬性,表示常量,值一旦確定不可改變。 大家好,樂字節(jié)的小樂又來了,上一篇是:樂字節(jié)Java|JavaBean、繼承與權(quán)限修飾,也是屬于Java繼承的,今天繼續(xù)Java繼承-方法重寫、super和final...
摘要:上一篇小樂介紹了新特性函數(shù)式接口,大家可以點(diǎn)擊回顧。中引入方法引用新特性用于簡化應(yīng)用對象方法的調(diào)用,方法引用是用來直接訪問類或者實(shí)例的已經(jīng)存在的方法或者構(gòu)造方法。方法引用是一種更簡潔易懂的表達(dá)式。 上一篇小樂介紹了《Java8新特性-函數(shù)式接口》,大家可以點(diǎn)擊回顧。這篇文章將接著介紹Java8新特性之方法引用。 Java8 中引入方法引用新特性,用于簡化應(yīng)用對象方法的調(diào)用,?方法引用是...
摘要:在成員方法中或構(gòu)造器中隱式的傳遞。作用如下在構(gòu)造器中只能放在第一行屬性避免屬性和形參局部變量同名,發(fā)生就近原則實(shí)參列表構(gòu)造器的首行調(diào)用其他構(gòu)造器。關(guān)鍵字靜態(tài)的公共的。構(gòu)造塊,先于構(gòu)造器執(zhí)行,每創(chuàng)建一個(gè)對象執(zhí)行一次。 大家好,我是樂字節(jié)的小樂,從本文開始將會(huì)給大家講述Java繼承,一下是Java繼承的知識圖譜:showImg(https://segmentfault.com/img/bV...
摘要:大家好,我是樂字節(jié)的小樂,上一次我們說到了核心特性之函數(shù)式接口,接下來我們繼續(xù)了解又一核心特性方法引用。方法引用是一種更簡潔易懂的表達(dá)式。感謝光臨閱讀小樂的,敬請關(guān)注樂字節(jié)后續(xù)將繼續(xù)講述等前沿知識技術(shù)。 大家好,我是樂字節(jié)的小樂,上一次我們說到了Java8核心特性之函數(shù)式接口,接下來我們繼續(xù)了解Java8又一核心特性——方法引用。 showImg(https://segmentfaul...
閱讀 932·2023-04-25 23:40
閱讀 3712·2021-11-22 15:22
閱讀 3552·2021-10-09 09:44
閱讀 3405·2021-09-23 11:52
閱讀 1260·2021-09-22 15:43
閱讀 789·2021-09-10 10:51
閱讀 2210·2021-09-06 15:02
閱讀 3204·2021-09-06 15:02