欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

新手初學(xué)Java面向?qū)ο?/h1>
 更新時(shí)間:2021年07月07日 11:53:30   作者:群臨天下  
這篇文章主要介紹了Java語(yǔ)言面向?qū)ο缶幊趟枷胫?lèi)與對(duì)象實(shí)例詳解,還是十分不錯(cuò)的,這里給大家分享下,需要的朋友可以參考,希望能幫到你

java面向?qū)ο?/h2>
面向?qū)ο蟆綣ava語(yǔ)言的核心機(jī)制,最重要的內(nèi)容,Java語(yǔ)言的特色】
    * 面向過(guò)程和面向?qū)ο蟮膮^(qū)別
        - 面向過(guò)程:主要關(guān)注點(diǎn)是:實(shí)現(xiàn)的具體過(guò)程,因果關(guān)系【集成顯卡的開(kāi)發(fā)思路】
            * 優(yōu)點(diǎn):對(duì)于業(yè)務(wù)邏輯比較簡(jiǎn)單的程序,可以達(dá)到快速開(kāi)發(fā),前期投入成本較低。
            * 缺點(diǎn):采用面向過(guò)程的方式開(kāi)發(fā)很難解決非常復(fù)雜的業(yè)務(wù)邏輯,另外面向過(guò)程的
            方式導(dǎo)致軟件元素之間的“耦合度”非常高,只要其中一環(huán)出問(wèn)題,整個(gè)系統(tǒng)受到影響,
            導(dǎo)致最終的軟件“擴(kuò)展力”差。另外,由于沒(méi)有獨(dú)立體的概念,所以無(wú)法達(dá)到組件復(fù)用。
        - 面向?qū)ο螅褐饕P(guān)注點(diǎn)是:主要關(guān)注對(duì)象【獨(dú)立體】能完成哪些功能?!惊?dú)立顯卡的開(kāi)發(fā)思路】
            * 優(yōu)點(diǎn):耦合度低,擴(kuò)展力強(qiáng)。更容易解決現(xiàn)實(shí)世界當(dāng)中更復(fù)雜的業(yè)務(wù)邏輯。組件復(fù)用性強(qiáng)。
           * 缺點(diǎn):前期投入成本較高,需要進(jìn)行獨(dú)立體的抽取,大量的系統(tǒng)分析與設(shè)計(jì)。
                - C語(yǔ)言是純面向過(guò)程的、C++半面向?qū)ο?、Java純面向?qū)ο?
        - 現(xiàn)在出現(xiàn)的一些新的編程語(yǔ)言多數(shù)都是面向?qū)ο蟮?。人在認(rèn)識(shí)現(xiàn)實(shí)世界的時(shí)候以面向?qū)ο蟮姆绞健?
        - 面向?qū)ο蟾先说乃季S方式。
    * 面向?qū)ο蟮娜筇卣鳌鞠缺硶?huì)】
        - 封裝
        - 繼承
        - 多態(tài)
        所有面向?qū)ο蟮木幊陶Z(yǔ)言都有這三大特征。
           采用面向?qū)ο蟮姆绞介_(kāi)發(fā)一個(gè)軟件,生命周期當(dāng)中:【整個(gè)生命周期中貫穿使用OO面向?qū)ο蠓绞健?
            * 面向?qū)ο蟮姆治觯篛OA
            * 面向?qū)ο蟮脑O(shè)計(jì):OOD
            * 面向?qū)ο蟮木幊蹋篛OP
    * 類(lèi)和對(duì)象的概念
        * 什么是類(lèi)?
            - 類(lèi)在現(xiàn)實(shí)世界當(dāng)中是不存在的,是一個(gè)模板,是一個(gè)概念。是人類(lèi)大腦思考抽象的結(jié)果。
            - 類(lèi)代表了一類(lèi)事物。
            - 在現(xiàn)實(shí)世界當(dāng)中,對(duì)象A與對(duì)象B之間具有共同特征,進(jìn)行抽象總結(jié)出一個(gè)模板,這個(gè)模板被稱(chēng)為類(lèi)。
       * 什么是對(duì)象?
            - 對(duì)象是實(shí)際存在的個(gè)體。現(xiàn)實(shí)世界當(dāng)中實(shí)際存在。
               * 描述一下整個(gè)軟件開(kāi)發(fā)的過(guò)程:
            * 程序員先觀察現(xiàn)實(shí)世界,從現(xiàn)實(shí)世界當(dāng)中尋找對(duì)象
            * 尋找了N多個(gè)對(duì)象之后,發(fā)現(xiàn)所有的對(duì)象都有共同特征
            * 程序員在大腦中形成了一個(gè)模板【類(lèi)】
            * Java程序員可以通過(guò)java代碼來(lái)表述一個(gè)類(lèi)
            * Java程序中有了類(lèi)的定義
            * 然后通過(guò)類(lèi)就可以創(chuàng)建對(duì)象
            * 有了對(duì)象之后,可以讓對(duì)象直接協(xié)作起來(lái)形成一個(gè)系統(tǒng)。
                * 類(lèi)--【實(shí)例化】->對(duì)象
        * 對(duì)象又被稱(chēng)為實(shí)例/instance
        * 對(duì)象--【抽象】-->類(lèi)
        * 重點(diǎn):
            類(lèi)描述的是對(duì)象的共同特征。
            共同特征例如:身高特征
            這個(gè)身高特征在訪問(wèn)的時(shí)候,必須先創(chuàng)建對(duì)象,通過(guò)對(duì)象去訪問(wèn)這個(gè)特征。
            因?yàn)檫@個(gè)特征具體的某個(gè)對(duì)象上之后,值不同。有的對(duì)象身高1.80,有的
            對(duì)象身高2.80。
                * 一個(gè)類(lèi)主要描述什么信息呢?
            一個(gè)類(lèi)主要描述的是 狀態(tài) + 動(dòng)作。
            狀態(tài)信息:名字、身高、性別、年齡
            動(dòng)作信息:吃、唱歌、跳舞、學(xué)習(xí)
            狀態(tài)--> 一個(gè)類(lèi)的屬性
            動(dòng)作--> 一個(gè)類(lèi)的方法
               * 
            類(lèi){
                屬性; //描述對(duì)象的狀態(tài)信息
                方法; //描述對(duì)象的動(dòng)作信息
            }
            注意:
                狀態(tài)和動(dòng)作當(dāng)具體到某個(gè)對(duì)象上之后,發(fā)現(xiàn)最終的結(jié)果可能不一樣。
                對(duì)象和對(duì)象之間有共同特征,但是具體到對(duì)象之后有數(shù)據(jù)的差異。
    * 類(lèi)的定義【從這里開(kāi)始編寫(xiě)代碼】
        語(yǔ)法結(jié)構(gòu):
            [修飾符列表] class 類(lèi)名{
                屬性;
                方法;
            }
                學(xué)生類(lèi),描述所有學(xué)生對(duì)象的共同特征:
            學(xué)生對(duì)象有哪些狀態(tài)信息:
                * 學(xué)號(hào)【int】
                * 名字【String】
                * 性別【boolean】
                * 年齡【int】【年齡是一個(gè)屬性,年齡是一個(gè)數(shù)據(jù),是數(shù)據(jù)就應(yīng)該有數(shù)據(jù)類(lèi)型】
                * 住址【String】
                .....
            學(xué)生對(duì)象有哪些動(dòng)作信息:
                * 吃飯
                * 睡覺(jué)
                * 學(xué)習(xí)
                * 玩
                * 唱歌
                * 跳舞
                ....
                    重點(diǎn):屬性通常是采用一個(gè)變量的形式來(lái)完成定義的。
            int no;
            int age;
            String name;
            String address;
            boolean sex;
       * java語(yǔ)言中包括兩種數(shù)據(jù)類(lèi)型:
        - 基本數(shù)據(jù)類(lèi)型
            byte
            short
            int
            long
            float
            double
            boolean
            char
        - 引用數(shù)據(jù)類(lèi)型
            String.class SUN提供的
            System.class SUN提供的
           Student.class 程序員自定義的
            User.class 程序員自定義的
            Product.class 程序員自定義的
            Customer.class 程序員自定義的
            ......
                - java語(yǔ)言中所有的class都屬于引用數(shù)據(jù)類(lèi)型。
// 定義一個(gè)類(lèi),類(lèi)名Student
// Student是一個(gè)類(lèi),代表了所有的學(xué)生對(duì)象,是一個(gè)學(xué)生的模板。
public class Student{    // 定義一個(gè)公開(kāi)的類(lèi),起名Student
    // 屬性【描述的是對(duì)象的狀態(tài)信息】
    // 熟悉通常采用變量的方式來(lái)定義
    // 在類(lèi)體當(dāng)中,方法體之外定義的變量被稱(chēng)為“成員變量”
    // 成員變量沒(méi)有賦值,系統(tǒng)賦默認(rèn)值:一切箱0看齊。
    // 學(xué)號(hào)
    int no;
    // 姓名
    String name;
    // 性別
    boolean sex;
    // 年齡
    int age;
    // 住址
    String address;
    // 方法
    // 方法描述的是對(duì)象的動(dòng)作信息
    // 當(dāng)前例子就只描述屬性了
}
// 學(xué)生類(lèi)
// 學(xué)生類(lèi)是一個(gè)模板
// 描述了所有學(xué)生的共同特征【狀態(tài)+行為】
// 當(dāng)前類(lèi)只描述學(xué)生的狀態(tài)信息【屬性】
// Student是類(lèi),屬于引用數(shù)據(jù)類(lèi)型,這個(gè)類(lèi)型名就是:Student
public class Student{
    // 類(lèi)體-屬性+方法
    // 屬性【存儲(chǔ)數(shù)據(jù)采用變量的形式】
    // 由于變量定義在類(lèi)體當(dāng)中,方法體之外,這種變量稱(chēng)為成員變量
    // 所有學(xué)生都有學(xué)好信息
    // 但是每一個(gè)學(xué)生的學(xué)號(hào)都是不同的
    // 所以要訪問(wèn)這個(gè)學(xué)號(hào)必須先創(chuàng)建對(duì)象,通過(guò)對(duì)象去訪問(wèn)學(xué)號(hào)信息
    // 學(xué)號(hào)信息不能直接通過(guò)“類(lèi)”去訪問(wèn),所以這種成員變量又被叫做:實(shí)例變量
    // 對(duì)象又被稱(chēng)為實(shí)例,實(shí)例變量又成為對(duì)象變量。【對(duì)象級(jí)別的變量】
    // 不創(chuàng)建對(duì)象,這個(gè)no變量的內(nèi)存空間是不存在的,只有創(chuàng)建了對(duì)象,這個(gè)no變量?jī)?nèi)存空間才會(huì)創(chuàng)建
    int no;
    // 姓名
    String name;
    // 年齡
    int age;
    // 性別
    boolean sex;
    // 住址
    String addr;

}
// 成員變量沒(méi)有手動(dòng)賦值的話,系統(tǒng)賦默認(rèn)值
// 默認(rèn)值
/*
    數(shù)據(jù)類(lèi)型                      默認(rèn)值
    ---------------------------------
    byte,short,int,long        0
    float,double                0.0
    boolean                        false
    char                        \u0000
    引用數(shù)據(jù)類(lèi)型                null 空值
*/
// -----------------------------------------------------------------------------------------------------
/*
    對(duì)象的創(chuàng)建和使用
*/
public class OOTest01
{
    public static void main(String[] args){
        // int 是基本數(shù)據(jù)類(lèi)型
        // i 是一個(gè)變量名
        // 10是一個(gè)int類(lèi)型的字面值
        int i = 10;
        // 通過(guò)一個(gè)類(lèi)可以實(shí)例化N個(gè)對(duì)象
        // 實(shí)例化對(duì)象的語(yǔ)法:new 類(lèi)名();
        // new是java語(yǔ)言當(dāng)中的一個(gè)運(yùn)算符
        // new運(yùn)算符的作用是創(chuàng)建對(duì)象,在JVM堆內(nèi)存當(dāng)中開(kāi)辟新的內(nèi)存空間
        // 方法區(qū)內(nèi)存:在類(lèi)加載的時(shí)候,class字節(jié)碼片段被加載到該內(nèi)存空間當(dāng)中
        // 棧內(nèi)存(局部變量):方法代碼片段執(zhí)行的時(shí)候,會(huì)給該方法分配內(nèi)存空間,在棧內(nèi)存中壓棧
        // 堆內(nèi)存:new的對(duì)象在堆內(nèi)存中存儲(chǔ)
        // Student是一個(gè)應(yīng)用數(shù)據(jù)類(lèi)型
        // s 是一個(gè)變量名
        // new Student()是一個(gè)學(xué)生對(duì)象
        // s是一個(gè)局部變量【在棧內(nèi)存中存儲(chǔ)】
        // 什么是對(duì)象?new運(yùn)算符在堆內(nèi)存中開(kāi)辟的內(nèi)存空間稱(chēng)為對(duì)象
        // 什么是引用?引用是一個(gè)變量,只不過(guò)這個(gè)變量保存了另一個(gè)java對(duì)象的內(nèi)存地址
        // java語(yǔ)言當(dāng)中,程序員不能直接操作堆內(nèi)存,java中沒(méi)有指針,不像c語(yǔ)言
        // java語(yǔ)言當(dāng)中,程序員只能通過(guò)“引用”去訪問(wèn)堆內(nèi)存當(dāng)中對(duì)象內(nèi)部的示例變量
        Student s = new Student();
        // 訪問(wèn)實(shí)例變量的語(yǔ)法格式:
        // 讀取數(shù)據(jù):引用.變量名
        // 修改數(shù)據(jù):引用.變量名 = 值
        /*
        int stuNo = s.no;
        String stuName = s.name;
        int stuAge = s.age;
        boolean stuSex = s.sex;
        String stuAddr = s.addr;
        System.out.println("學(xué)號(hào) = " + stuNo);
        System.out.println("姓名 = " + stuName);
        System.out.println("年齡 = " + stuAge);
        System.out.println("性別 = " + stuSex);
        System.out.println("地址 = " + stuAddr);
        */
        s.no = 10;
        s.name = "jack";
        s.age = 20;
        s.sex = true;
        s.addr = "深圳";
        System.out.println("學(xué)號(hào) = " + s.no);    // 10
        System.out.println("姓名 = " + s.name);    // jack
        System.out.println("年齡 = " + s.age);    // 20
        System.out.println("性別 = " + s.sex);    // true
        System.out.println("地址 = " + s.addr);    // 深圳
        // 編譯報(bào)錯(cuò),no這個(gè)實(shí)例變量不能直接采用”類(lèi)名“的方式訪問(wèn)
        // 因?yàn)閚o是實(shí)例變量,對(duì)象級(jí)別的變量,變量存儲(chǔ)在java對(duì)象的內(nèi)部,必須先有對(duì)象
        // 通過(guò)對(duì)象才能訪問(wèn)no這個(gè)實(shí)例變量,不能直接通過(guò)"類(lèi)名"訪問(wèn)
        // System.out.println(Student.no);
        // 在通過(guò)類(lèi)實(shí)例化一個(gè)全新的對(duì)象
        // stu是一個(gè)引用類(lèi)型
        // stu同時(shí)也是一個(gè)局部變量
        // Student是變量的數(shù)據(jù)類(lèi)型
        Student stu = new Student();
        System.out.println("學(xué)號(hào) = " + stu.no);        // 0
        System.out.println("姓名 = " + stu.name);    // null
        System.out.println("年齡 = " + stu.age);    // false
        System.out.println("性別 = " + stu.sex);    // 0
        System.out.println("地址 = " + stu.addr);    // null
    }
}

/*
    局部變量在棧內(nèi)存中存儲(chǔ)
    成員變量中的實(shí)例變量在堆內(nèi)存的java對(duì)象內(nèi)存存儲(chǔ)
    實(shí)例變量是一個(gè)對(duì)象一份,100個(gè)對(duì)象有100份。
*/

// 用戶(hù)類(lèi)
public class User{
    // 屬性【以下都是成員變量之實(shí)例變量】
    // 用戶(hù)編號(hào)
    // int 是一種基本數(shù)據(jù)類(lèi)型:整數(shù)型
    // no是一個(gè)實(shí)例變量
    int no;
    // 用戶(hù)名
    // String 是一種引用數(shù)據(jù)類(lèi)型:代表字符串
    // name是一個(gè)實(shí)例變量
    // name是一個(gè)引用
    String name;
    // 家庭住址
    // Adddress是一種引用數(shù)據(jù)類(lèi)型:代表家庭住址
    // addr是一個(gè)實(shí)例變量
    // addr是一個(gè)引用
    Address addr;
}
// ----------------------------------------------------------------------
// 家庭住址類(lèi)
public class Address{
    // 屬性成員變量之實(shí)例變量】
    // 城市
    // String是一種引用數(shù)據(jù)類(lèi)型,city是一個(gè)變量名,屬于實(shí)例變量
    // oity是一個(gè)引用:保存內(nèi)存地址的一個(gè)變量,該變量保存內(nèi)存地址指向了堆內(nèi)存當(dāng)中的對(duì)象
    String city;
    // 街道
    String street;
    // 郵編
    String zipcode;
}
// ----------------------------------------------------------------------
// 測(cè)試類(lèi)
public class OOTest02{
    public static void main(String[] args){
        // 創(chuàng)建User對(duì)象
        // u是局部變量
        // u是一個(gè)應(yīng)用
        // u保存內(nèi)存地址指向堆內(nèi)存的User對(duì)象
        User u = new User();
        // 輸出User對(duì)象內(nèi)部實(shí)例變量的值
        System.out.println(u.no);    // 0
        System.out.println(u.name);    // null
        System.out.println(u.addr);    //  null
        // 修改User對(duì)象內(nèi)部實(shí)例變量的值
        u.no = 110;
        u.name = "jack";    // "jack" 是一個(gè)java對(duì)象,屬于String對(duì)象
        u.addr = new Address();
        // 在main方法當(dāng)中目前只能看到一個(gè)引用“u”
        // 一切都是只能通過(guò)u來(lái)進(jìn)行訪問(wèn)
        System.out.println(u.name + "居住在那個(gè)城市:" + u.addr.oity);
        System.out.println(u.name + "居住在那個(gè)街道:" + u.addr.street);
        System.out.println(u.name + "居住在那個(gè)郵編:" + u.addr.zipcode);
        u.addr.oity = "深圳";
        u.addr.street = "福田";
        u.addr.zipcode = "516600";
        System.out.println(u.name + "居住在那個(gè)城市:" + u.addr.oity);
        System.out.println(u.name + "居住在那個(gè)街道:" + u.addr.street);
        System.out.println(u.name + "居住在那個(gè)郵編:" + u.addr.zipcode);


    }
}

public class OOTest03{
    public static void main(String[] args){
        // u是引用
        // u是局部變量
        User u = new User();
        // 上一個(gè)版本中編寫(xiě)的
        // u.addr = new Address();
        // a是引用
        // a是局部變量
        Address a = new Address();
        u.addr = a;
        
        System.out.println(u.addr.city); // null
        a.city = "天津";
        System.out.println(u.addr.city);  // 天津
        u.addr.city = "深圳";
        System.out.println(u.addr.city);    // 深圳
    }
}

// 丈夫類(lèi)
public class Husband{
    // 姓名
    String name;
    // 丈夫?qū)ο螽?dāng)中含有妻子引用
    Wife w;
}
// -----------------------------------------------------------------

// 妻子類(lèi)
public class Wife{
    // 姓名
    String name;
    // 妻子對(duì)象當(dāng)中含有丈夫引用
    Husband h;
}
// -------------------------------------------------------------------
public class OOTest04{
    public static void main(String[] args){
        // 創(chuàng)建一個(gè)丈夫?qū)ο?
        Husband huangXiaoMing =  new Husband();
        huangXiaoMing.name = "黃曉明";
        // 創(chuàng)建一個(gè)妻子對(duì)象
        Wife baby = new Wife();
        baby.name = "baby";
        // 結(jié)婚【能通過(guò)丈夫找到妻子,通過(guò)妻子也可以找到丈夫】
        huangXiaoMing.w = baby;
        baby.h = huangXiaoMing;
        // 得到以上“黃曉明”的妻子的名字
        System.out.println(huangXiaoMing.name + "的妻子名字叫:" + baby.name);
        System.out.println(huangXiaoMing.name + "的妻子名字叫:" + huangXiaoMing.w.name);
    }
}

知識(shí)點(diǎn)

// 顧客類(lèi)
public class Customer
{
    // id
    int id;
}
// ------------------------------------------------------------------------
// 測(cè)試程序
public class OOTest05
{
    public static void main(String[] args){
        Customer c = new Customer();
        System.out.println(c.id); // 0
        c = null;
        // 以下程序編譯可以通過(guò),因?yàn)榉险Z(yǔ)法
        // 運(yùn)行出現(xiàn)空指針異常
        // 空應(yīng)用訪問(wèn)“實(shí)例”相關(guān)的數(shù)據(jù)一定會(huì)出現(xiàn)空指針異常
        // java.lang.NullPointerException
        System.out.println(c.id);
    }
}

// “實(shí)例”相關(guān)的數(shù)據(jù)表示:這個(gè)數(shù)據(jù)訪問(wèn)的時(shí)候必須有對(duì)象的參與,這種數(shù)據(jù)就是實(shí)例相關(guān)的數(shù)據(jù)

/*
    Java語(yǔ)言是面向?qū)ο?
    要想創(chuàng)建對(duì)象必須先定義類(lèi)
    定義類(lèi)的語(yǔ)法:
        [修飾符列表] class 類(lèi)名{
            屬性:
            方法:
        }
    屬性通常采用變量來(lái)表示,既然是變量那么變量肯定有數(shù)據(jù)類(lèi)型?!緮?shù)據(jù)類(lèi)型包括:基本數(shù)據(jù)類(lèi)型 + 引用數(shù)據(jù)類(lèi)型】
    屬性對(duì)應(yīng)的是狀態(tài)信息。
    觀察現(xiàn)實(shí)世界當(dāng)中超市中的商品,發(fā)現(xiàn)這所有的商品都有一些共同的特征,例如,每一個(gè)商品都有編號(hào),每一個(gè)商品都有單價(jià),所以定義以下的類(lèi),來(lái)代表所有的商品
*/

public class Product{
    // 編號(hào) 【通常是一個(gè)數(shù)字,而且該數(shù)字通常是整數(shù)型的】
    // productNo 是基本數(shù)據(jù)類(lèi)型
    // 實(shí)例變量
    int productNo;
    // 單價(jià) 【通常是一個(gè)數(shù)字,但是數(shù)字可能帶有小數(shù),所以采用浮點(diǎn)型數(shù)據(jù)double表示】
    // price 是基本數(shù)據(jù)類(lèi)型
    // 實(shí)例變量
    double price;
// ----------------------------------------------------------------------
/*
    每一個(gè)類(lèi)中都可以編寫(xiě)主方法,但是一般情況下
    一個(gè)系統(tǒng)只有一個(gè)入口,所以主方法一般寫(xiě)一個(gè)
*/
public class ProductTest{    // 商品測(cè)試類(lèi)
    // 程序入口
    public static void main(String[] args){
        // 創(chuàng)建對(duì)象,商品對(duì)象
        // iphone7 局部變量
        // iphone7 應(yīng)用
        // iphone7 變量中保存內(nèi)存地址的指向堆內(nèi)存當(dāng)中的商品對(duì)象
        Product    iphone7 = new Product();
        // 訪問(wèn)實(shí)例變量的語(yǔ)法:引用.變量
        // 讀?。阂?變量名
        System.out.println("商品的編號(hào):" + iphone7.productNo);
        System.out.println("商品的單價(jià):" + iphone7.price);
        // 修改:引用.變量名 = 值;
        iphone7.productNo = 111;
        iphone7.price = 68000;
        System.out.println("商品的編號(hào):" + iphone7.productNo);
        System.out.println("商品的單價(jià):" + iphone7.price);

    }
}
// 人類(lèi)
public class Ren{
    // 身份證號(hào)
    String id;
    // 名字
    String name;
    // 性別
    boolean sex;
    // 年齡
    int age;
}
// -------------------------------------------------------------------------
/*
    別墅類(lèi)
        * 面積
        * 主人
*/
public class BieShu{
    // 面積
    double mianJi;
    // 主人【人類(lèi)】
    // 變量/應(yīng)引用
    // 變量怎么聲明:數(shù)據(jù)類(lèi)型 變量名;
    // 關(guān)聯(lián)關(guān)系: A has a B 關(guān)系【A對(duì)象中含有B對(duì)象的引用】
    // BieShu對(duì)象含有Ren對(duì)象的引用
    Ren zhuRen;
}

// ----------------------------------------------------------------------
public class Test{
    public static void main(String[] args){
        // 思路:先創(chuàng)造人物對(duì)象,再創(chuàng)造別墅對(duì)象,讓別墅有主人
        Ren zhangsan = new Ren();    // 初始化
        // 不采用系統(tǒng)默認(rèn)值
        // 手動(dòng)賦值
        zhangsan.id = "45682110";
        zhangsan.name = "張三";
        zhangsan.sex = true;
        zhangsan.age = 100;
        // 創(chuàng)建別墅對(duì)象
        BieShu fangzi = new BieShu();
        fangzi.mianJi = 150.0;
        fangzi.zhuRen = zhangsan;
        // 想知道房子主人的名字是什么?
        System.out.println(fangzi.zhuRen.name);
        // 房子換主人
        // 創(chuàng)建一個(gè)新的主人對(duì)象
        Ren lisi = new Ren();
        lisi.name = "李四";
        // 換主人
        fangzi.zhuRen = lisi;
        System.out.println(fangzi.zhuRen.name);
    }
}
// 學(xué)生類(lèi)
class Student{
    String name;
    int no;
    // 筆記本
    Notebook book;
}

// ----------------------------------------------------------------------

// 筆記本類(lèi)
class Notebook{
    // 品牌
    String brand;
    // 型號(hào)
    String model;
    // 顏色
    String color;
}

// ----------------------------------------------------------------------
/*
    需求:
        定義一個(gè)計(jì)算機(jī)類(lèi)【電腦/筆記本】,計(jì)算機(jī)類(lèi)有那些屬性
            * 品牌  * 型號(hào)  * 顏色
        定義一個(gè)學(xué)生類(lèi),學(xué)生類(lèi)有那些屬性:
            * 姓名  * 學(xué)號(hào)  * 學(xué)生有一臺(tái)筆記本電腦
        請(qǐng)編寫(xiě)程序來(lái)表示以上的類(lèi),然后分別將類(lèi)創(chuàng)建為對(duì)象,對(duì)象數(shù)量不限,然后讓其中的一個(gè)學(xué)生去使用其中的一臺(tái)筆記本電腦
        然后編譯并運(yùn)行,并且將整個(gè)執(zhí)行過(guò)程采用圖形的方式描述出來(lái)。
*/

// 測(cè)試類(lèi)
public class OOTest06{
    public static void main(String[] args){
        // 創(chuàng)建筆記本對(duì)象
        Notebook BiJiBen = new Notebook();
        // 手動(dòng)賦值
        BiJiBen.brand = "華為";
        BiJiBen.model = "KX100";
        BiJiBen.color = "黑色";

        // 創(chuàng)建學(xué)生對(duì)象
        Student s = new Student();
        // 手動(dòng)賦值
        s.no = 111;
        s.name = "jack";
        s.book = BiJiBen;
        System.out.println(s.name);
        System.out.println(s.no);
        System.out.println(s.book.brand);
        
        // 讓這個(gè)學(xué)生和筆記本對(duì)象產(chǎn)生關(guān)系【通過(guò)學(xué)生能找到他的筆記本】
        System.out.println("學(xué)號(hào):" + s.no + " 名字叫 " + s.name + " 的電腦品牌是:" + s.book.brand);
        System.out.println("學(xué)號(hào):" + s.no + " 名字叫 " + s.name + " 的電腦品牌是:" + s.book.model);
        System.out.println("學(xué)號(hào):" + s.no + " 名字叫 " + s.name + " 的電腦品牌是:" + s.book.color);

        // 修改品牌
        s.book.brand = "蘋(píng)果";
        System.out.println("學(xué)號(hào):" + s.no + " 名字叫 " + s.name + " 的電腦品牌是:" + s.book.brand);
    }
}

總結(jié)

本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Druid連接池的自定義過(guò)濾功能實(shí)現(xiàn)方法

    Druid連接池的自定義過(guò)濾功能實(shí)現(xiàn)方法

    在數(shù)據(jù)密集型應(yīng)用中,監(jiān)控和分析數(shù)據(jù)庫(kù)操作對(duì)于確保性能和穩(wěn)定性至關(guān)重要,本文將探討如何實(shí)現(xiàn)一個(gè)自定義的Druid過(guò)濾器來(lái)捕獲數(shù)據(jù)庫(kù)請(qǐng)求并進(jìn)行日志記錄,以輔助開(kāi)發(fā)和維護(hù)工作,需要的朋友可以參考下
    2023-11-11
  • Java編程使用UDP建立群聊系統(tǒng)代碼實(shí)例

    Java編程使用UDP建立群聊系統(tǒng)代碼實(shí)例

    這篇文章主要介紹了Java編程使用UDP建立群聊系統(tǒng)代碼實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2018-01-01
  • SpringBoot圖文并茂講解依賴(lài)管理的特性

    SpringBoot圖文并茂講解依賴(lài)管理的特性

    一般來(lái)講SpringBoot項(xiàng)目是不需要指定版本,而SSM項(xiàng)目是需要指定版本,SpringBoot的核心依賴(lài)就是spring-boot-starter-parent和spring-boot-starter-web兩個(gè)依賴(lài),關(guān)于這兩個(gè)依賴(lài)的相關(guān)介紹具體今天小編給大家介紹下
    2022-06-06
  • Java Code Cache滿(mǎn)導(dǎo)致應(yīng)用性能降低問(wèn)題解決

    Java Code Cache滿(mǎn)導(dǎo)致應(yīng)用性能降低問(wèn)題解決

    這篇文章主要介紹了Java Code Cache滿(mǎn)導(dǎo)致應(yīng)用性能降低問(wèn)題解決,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 詳解SpringBoot?JPA常用注解的使用方法

    詳解SpringBoot?JPA常用注解的使用方法

    這篇文章主要介紹了SpringBoot?JPA常用注解的使用方法,spring?boot作為當(dāng)前主流的技術(shù),來(lái)看看常用的注解怎么用,如果有錯(cuò)誤的地方還請(qǐng)指正,需要的朋友可以參考下
    2023-03-03
  • java?freemarker實(shí)現(xiàn)動(dòng)態(tài)生成excel文件

    java?freemarker實(shí)現(xiàn)動(dòng)態(tài)生成excel文件

    這篇文章主要為大家詳細(xì)介紹了java如何通過(guò)freemarker實(shí)現(xiàn)動(dòng)態(tài)生成excel文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • 在spring?boot3中使用native?image的最新方法

    在spring?boot3中使用native?image的最新方法

    這篇文章主要介紹了在spring?boot3中使用native?image?,今天我們用具體的例子來(lái)給大家演示一下如何正確的將spring boot3的應(yīng)用編譯成為native image,需要的朋友可以參考下
    2023-01-01
  • 詳解Java之冒泡排序與選擇排序

    詳解Java之冒泡排序與選擇排序

    這篇文章主要為大家介紹了Java之冒泡排序與選擇排序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • maven搭建java ee項(xiàng)目圖文教程

    maven搭建java ee項(xiàng)目圖文教程

    這篇文章主要為大家詳細(xì)介紹了maven搭建java ee項(xiàng)目圖文教程,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Java異常處理方法匯總

    Java異常處理方法匯總

    這篇文章主要介紹了Java異常處理方法匯總,我們?cè)谲浖_(kāi)發(fā)的過(guò)程中,任何語(yǔ)言的開(kāi)發(fā)過(guò)程中都離不開(kāi)異常處理。下面下小編加來(lái)給大家分享各種異常處理,希望對(duì)大家有所幫助,需要的朋友可以參考一下
    2021-12-12

最新評(píng)論