成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

樂(lè)字節(jié)Java構(gòu)造器(構(gòu)造方法|構(gòu)造函數(shù))、方法與內(nèi)存分析

wangshijun / 1848人閱讀

摘要:一構(gòu)造器構(gòu)造方法構(gòu)造函數(shù)在創(chuàng)建對(duì)象時(shí)必會(huì)調(diào)用一個(gè)特殊的方法,這個(gè)方法是初始化對(duì)象信息的為服務(wù)的。構(gòu)造函數(shù)與類(lèi)同名且沒(méi)有返回值。

一、 構(gòu)造器(構(gòu)造方法|構(gòu)造函數(shù))

在創(chuàng)建對(duì)象時(shí)(new),必會(huì)調(diào)用一個(gè)特殊的方法,這個(gè)方法是初始化對(duì)象信息的為new服務(wù)的。這個(gè)方法稱(chēng)為“構(gòu)造器”

使用 new + 構(gòu)造方法創(chuàng)建一個(gè)新的對(duì)象。

構(gòu)造函數(shù)是定義在 Java類(lèi)中的一個(gè)用來(lái)初始化對(duì)象的函數(shù)。

構(gòu)造函數(shù)與類(lèi)同名且沒(méi)有返回值。

例如: Person類(lèi)的構(gòu)造函數(shù):

public class Person {
    int id;
    int age;
    Person(int n, int i){
        id = n;
        age = i;
    }
}

創(chuàng)建對(duì)象時(shí),使用構(gòu)造函數(shù)初始化對(duì)象的成員變量

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) 名稱(chēng)必須和類(lèi)名一致,與類(lèi)名相同

2) 沒(méi)有返回類(lèi)型|void

3) 構(gòu)造器可以存在return,return有選擇的跳出構(gòu)造器

4) 不能隨便調(diào)用,和new在一起使用,其他時(shí)候不能調(diào)用

5) 修飾符不能為 final abstract static

作用:

初始化對(duì)象信息,不是用于創(chuàng)建對(duì)象的

空構(gòu)造:

沒(méi)有參數(shù)的構(gòu)造器、無(wú)參構(gòu)造

1) 一個(gè)類(lèi)中,如果沒(méi)有顯示|手動(dòng) 加入 任意構(gòu)造器 javac編譯后 自動(dòng)加入空構(gòu)造

2) 一旦加入構(gòu)造器, javac 不會(huì)加入空構(gòu)造器

三、方法的重載

方法的重載是指一個(gè)類(lèi)中可以定義有相同的方法名,但參數(shù)不同的多個(gè)方法。調(diào)用時(shí),會(huì)根據(jù)不同的參數(shù)列表選擇對(duì)應(yīng)的方法。

四、構(gòu)造方法的重載

與普通方法一樣,構(gòu)造方法也可以重載

例子如下:

五、 引用與內(nèi)存分析

A:一個(gè)對(duì)象的內(nèi)存圖

B:二個(gè)對(duì)象的內(nèi)存圖

C:三個(gè)對(duì)象的內(nèi)存圖

內(nèi)存分析

劃分

引用的特點(diǎn):

1) 同一時(shí)刻一個(gè)一引用只能指向一個(gè)對(duì)象

2) 一個(gè)對(duì)象可以被多個(gè)引用所指向,其中一個(gè)對(duì)其進(jìn)行更改,該對(duì)象的其他引用也可見(jiàn)該變化

3) Java一切為值傳遞,引用拷貝地址

約定俗成的命名規(guī)則

類(lèi)名的首字母大寫(xiě)

變量名和方法名的首字母小寫(xiě)

運(yùn)用駝峰標(biāo)識(shí)

例子:

public class Cat {
    String color; // 毛的顏色
    String name; // 名稱(chēng)
    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è)對(duì)象
        cat.color = "黑色";
        cat.name = "tom";
        Mice mice = new Mice();
        mice.type = "米奇";
        // 將二者聯(lián)系起來(lái)  --》 依賴(lài)
        cat.chase(mice);    
// 傳遞時(shí),值拷貝,拷貝地址,拷貝完成后   一個(gè)對(duì)象被多個(gè)引用所指向
        System.out.println(mice.type);  
// jerry 其中一個(gè)對(duì)其發(fā)生變化,該對(duì)象的其他引用也可減該變化
    }
}
class Mice{
    String type;
}

定義如下類(lèi)

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);
    }
}

測(cè)試類(lèi):

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

對(duì)象的創(chuàng)建和使用,必須使用new 關(guān)鍵字創(chuàng)建對(duì)象,使用對(duì)象引用.成員變量來(lái)引用對(duì)象的成員變量,使用對(duì)象引用.方法(參數(shù)列表)來(lái)調(diào)用對(duì)象的方法。

同一類(lèi)的每個(gè)對(duì)象有不同的成員變量存儲(chǔ)空間,同一類(lèi)的每個(gè)對(duì)象共享該類(lèi)的方法,

非靜態(tài)方法是針對(duì)每個(gè)對(duì)象進(jìn)行調(diào)用 。

樂(lè)字節(jié)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處。請(qǐng)繼續(xù)關(guān)注樂(lè)字節(jié)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75495.html

相關(guān)文章

  • 樂(lè)字節(jié)Java編程語(yǔ)言發(fā)展、面向?qū)ο蠛皖?lèi)

    摘要:二面向?qū)ο蟾攀雒嫦蜻^(guò)程的設(shè)計(jì)思想和面向?qū)ο蟮脑O(shè)計(jì)思想我要吃魚(yú)香肉絲蓋飯面向過(guò)程我買(mǎi)菜我洗菜我切菜我放水我點(diǎn)火我做飯我炒菜。。。。 大家好,上次我們講過(guò)了樂(lè)字節(jié)Java編程之方法、調(diào)用、重載、遞歸,接下來(lái)我們將會(huì)進(jìn)入到Java封裝的內(nèi)容。Java編程語(yǔ)言發(fā)展,面向?qū)ο蠛皖?lèi)。 一、編程語(yǔ)言的發(fā)展 機(jī)器語(yǔ)言——直接由計(jì)算機(jī)的指令組成,指令、數(shù)據(jù)、地址都以0和1組成:可以被計(jì)算機(jī)直接識(shí)別并執(zhí)行...

    lufficc 評(píng)論0 收藏0
  • 樂(lè)字節(jié)Java繼承-方法重寫(xiě)、super和final關(guān)鍵字

    摘要:大家好,樂(lè)字節(jié)的小樂(lè)又來(lái)了,上一篇是樂(lè)字節(jié)繼承與權(quán)限修飾,也是屬于繼承的,今天繼續(xù)繼承方法重寫(xiě)和關(guān)鍵字。三關(guān)鍵字表示最終的。修飾類(lèi),表示該類(lèi)不能被繼承修飾方法,表示該方法不能被重寫(xiě)修飾屬性,表示常量,值一旦確定不可改變。 大家好,樂(lè)字節(jié)的小樂(lè)又來(lái)了,上一篇是:樂(lè)字節(jié)Java|JavaBean、繼承與權(quán)限修飾,也是屬于Java繼承的,今天繼續(xù)Java繼承-方法重寫(xiě)、super和final...

    trigkit4 評(píng)論0 收藏0
  • 樂(lè)字節(jié)-Java8新特性之方法引用

    摘要:上一篇小樂(lè)介紹了新特性函數(shù)式接口,大家可以點(diǎn)擊回顧。中引入方法引用新特性用于簡(jiǎn)化應(yīng)用對(duì)象方法的調(diào)用,方法引用是用來(lái)直接訪(fǎng)問(wèn)類(lèi)或者實(shí)例的已經(jīng)存在的方法或者構(gòu)造方法。方法引用是一種更簡(jiǎn)潔易懂的表達(dá)式。 上一篇小樂(lè)介紹了《Java8新特性-函數(shù)式接口》,大家可以點(diǎn)擊回顧。這篇文章將接著介紹Java8新特性之方法引用。 Java8 中引入方法引用新特性,用于簡(jiǎn)化應(yīng)用對(duì)象方法的調(diào)用,?方法引用是...

    Codeing_ls 評(píng)論0 收藏0
  • 樂(lè)字節(jié)Java|this關(guān)鍵字、static關(guān)鍵字、block塊

    摘要:在成員方法中或構(gòu)造器中隱式的傳遞。作用如下在構(gòu)造器中只能放在第一行屬性避免屬性和形參局部變量同名,發(fā)生就近原則實(shí)參列表構(gòu)造器的首行調(diào)用其他構(gòu)造器。關(guān)鍵字靜態(tài)的公共的。構(gòu)造塊,先于構(gòu)造器執(zhí)行,每創(chuàng)建一個(gè)對(duì)象執(zhí)行一次。 大家好,我是樂(lè)字節(jié)的小樂(lè),從本文開(kāi)始將會(huì)給大家講述Java繼承,一下是Java繼承的知識(shí)圖譜:showImg(https://segmentfault.com/img/bV...

    _DangJin 評(píng)論0 收藏0
  • 樂(lè)字節(jié)Java8核心特性實(shí)戰(zhàn)之方法引用

    摘要:大家好,我是樂(lè)字節(jié)的小樂(lè),上一次我們說(shuō)到了核心特性之函數(shù)式接口,接下來(lái)我們繼續(xù)了解又一核心特性方法引用。方法引用是一種更簡(jiǎn)潔易懂的表達(dá)式。感謝光臨閱讀小樂(lè)的,敬請(qǐng)關(guān)注樂(lè)字節(jié)后續(xù)將繼續(xù)講述等前沿知識(shí)技術(shù)。 大家好,我是樂(lè)字節(jié)的小樂(lè),上一次我們說(shuō)到了Java8核心特性之函數(shù)式接口,接下來(lái)我們繼續(xù)了解Java8又一核心特性——方法引用。 showImg(https://segmentfaul...

    lakeside 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<