国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java基礎(chǔ) --- 面向?qū)ο?/h1>

這篇具有很好參考價(jià)值的文章主要介紹了Java基礎(chǔ) --- 面向?qū)ο?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

面向?qū)ο?/h2>

面向?qū)ο蠼榻B


介紹

  • 面向:拿、找
  • 對象:能干活的東西
  • 面向?qū)ο缶幊蹋耗脰|西過來坐對應(yīng)的事情

設(shè)計(jì)對象并使用


類和對象

  • 類(設(shè)計(jì)圖):是對象共同特征的描述;
  • 對象:是真實(shí)存在的具體東西

在Java中,必須先設(shè)計(jì)類,才能獲得對象。


如何定義類

public class 類名{
    1.成員變量(代表屬性,一般是名詞)
    2.成員方法(代表行為,一般是動詞)
    3.構(gòu)造器(后面學(xué)習(xí))
    4.代碼塊(后面學(xué)習(xí))
    5.內(nèi)部類(后面學(xué)習(xí))
}

public class Phone {
    String brand;
    double print;
    //行為(方法)
    public void call(){
        
    }
    public void playGame(){
        
    }
}

如何得到類的對象

類名 對象名 = new 類名();
Phone p = new Phone();

如何使用對象

  • 訪問屬性:對象名.成員變量
  • 訪問行為:對象名.方法名(...)

范例:

public class Phone {
    //屬性
    String brand;//手機(jī)的品牌
    double price;//手機(jī)的價(jià)格
    //行為
    public void call(){
        System.out.println("手機(jī)在打電話");
    }
    public void playGame(){
        System.out.println("手機(jī)在玩游戲");
    }
}

public class PhoneTest {
    public static void main(String[] args) {
        //創(chuàng)建手機(jī)的對象
        Phone p = new Phone();
        //給手機(jī)賦值
        p.brand = "菠蘿";
        p.price = 1145.14;
        //獲取手機(jī)對象中的值
        System.out.println(p.brand);
        System.out.println(p.price);
        //調(diào)用手機(jī)中的方法
        p.call();
        p.playGame();

        //第二部手機(jī)
        Phone p2 = new Phone();
        p2.brand = "鴨梨";
        p2.price = 1008.6;

        p2.call();
        p2.playGame();
    }
}

總結(jié)

  1. 類和對象是什么?

    • 類:是對象共同特征的描述(設(shè)計(jì)圖);對象:是真實(shí)存在的具體實(shí)例。
  2. 如何得到對象?

    public class 類名{
        1.成員變量(代表屬性,一般是名詞)
        2.成員方法(代表行為,一般是動詞)
    }
    
    類名 對象名 = new 類名();
    
  3. 拿到對象后能做什么?

    • 對象名.成員變量
    • 對象名.方法名(...)

類的幾個補(bǔ)充注意事項(xiàng)


  • 用來描述一類事物的類,專業(yè)叫做: Javabean類。

    在Javabean類中,是不寫main方法的。

  • 在以前,編寫main方法的類,叫做測試類。

    我們可以在測試類中創(chuàng)建javabean類的對象并進(jìn)行賦值調(diào)用。

public class 類名{
    1.成員變量(代表屬性)
    2.成員方法(代表行為)
}
  • 類名首字母建議大寫,需要見名知意,駝峰模式。

  • 一個Java文件中可以定義多個class類,且只能一 個類是public修飾,而且public修飾的類名必須成為代碼文件名。

    實(shí)際開發(fā)中建議還是一個文件定義一個class類。

  • 成員變量的完整定義格式是: 修飾符 數(shù)據(jù)類型 變量名稱 = 初始化值;一般無需指定初始化值,存在默認(rèn)值。

    數(shù)據(jù)類型 明細(xì) 默認(rèn)值
    基本類型 byte、short、int、long 0
    基本類型 float、double 0.0
    基本類型 boolean false
    引用類型 類、接口、數(shù)組、String null

練習(xí)


女朋友類

編寫女朋友類,創(chuàng)建女朋友類的對象

給女朋友的屬性賦值并調(diào)用女朋友類中的方法。

自己思考,女朋友類中有哪些屬性,有哪些行為?

public class GirlFriendTest {
    public static void main(String[] args) {
        //創(chuàng)建女朋友的對象
        GirlFriend gf1 = new GirlFriend();
        gf1.name = "柳如煙";
        gf1.age = 18;
        gf1.gender = "女神";

        System.out.println(gf1.name);
        System.out.println(gf1.age);
        System.out.println(gf1.gender);

        gf1.sleep();
        gf1.eat();

        System.out.println("=====================================");

        GirlFriend gf2 = new GirlFriend();
        gf2.name = "蘇沐雪";
        gf2.age = 19;
        gf2.gender = "青梅竹馬";

        System.out.println(gf2.name);
        System.out.println(gf2.age);
        System.out.println(gf2.gender);

        gf2.sleep();
        gf2.eat();
    }
}

總結(jié)

  1. 定義類有哪些建議,有什么需要注意的?

    • 類名首字母建議大寫、英文、有意義,滿足駝峰模式,不能用關(guān)鍵字,滿足標(biāo)志符規(guī)定;

    • 一個代碼文件中可以定義多個類,但是只能一個類是public修飾的,

      public修飾的類名必須是Java代碼的文件名稱。

  2. 成員變量的格式是什么樣的,有什么特點(diǎn)?

    • 成員變量的完整定義格式是:修飾符 數(shù)據(jù)類型 變量名稱 = 初始化值;
    • 一般無需指定初始化值。

封裝


告訴我們,如何正確設(shè)計(jì)對象的屬性和方法

原則:對象代表什么,就得封裝對應(yīng)的數(shù)據(jù),并提供數(shù)據(jù)對應(yīng)的行為


封裝的好處

  • 讓編程變得很簡單,有什么事,找對象,調(diào)方法就行。
  • 降低我們的學(xué)習(xí)成本,可以少學(xué)、少記,或者說壓根不用學(xué),不用記對象有哪些方法,有需要時(shí)去找就行

private關(guān)鍵字

  • 是一個權(quán)限修飾符
  • 可以修飾成員(成員變量和成員方法)
  • private修飾的成員只能在本類中才能訪問
public class GirlFriend {
    private String name;
    private int age;
    private String gender;

    //針對于每個私有化的成員變量,都要提供get和set方法
    //set方法:給成員變量賦值
    //get方法;對外提供成員變量的值

    public void setName(String n){
        name = n;
    }
    public String getName(){
        return name;
    }

    public void setAge(int a){
        if(a >= 0 && a <= 100){
            age = a;
        }else {
            System.out.println("非法參數(shù)");
        }
    }
    public int getAge(){
        return age;
    }

    public void setGender(String g){
        gender = g;
    }
    public String getGender(){
        return gender;
    }

    //行為
    public void sleep(){
        System.out.println("女朋友在睡覺");
    }
    public void eat(){
        System.out.println("女朋友在吃飯");
    }
}

public class GirlFriendTest {
    public static void main(String[] args) {
        GirlFriend gf1 = new GirlFriend();
        gf1.setName("柳如煙");
        gf1.setAge(18);
        gf1.setGender("女");

        System.out.println(gf1.getName());
        System.out.println(gf1.getAge());
        System.out.println(gf1.getGender());

        gf1.sleep();
        gf1.eat();
    }
}

總結(jié)

  1. private關(guān)鍵字是一個權(quán)限修飾符
  2. 可以修飾成員(成員變量和成員方法)
  3. 被private修飾的成員只能在本類中才能訪問
  4. 針對private修飾的成員變量,如果需要被其他類使用,提供相應(yīng)的操作
  5. 提供“setxxx(參數(shù))”方法,用于給成員變量賦值,方法用public修飾
  6. 提供"getxxx()"方法,用于獲取成員變量的值,方法用public修飾

就近原則和this關(guān)鍵字


就近原則

  • 誰離我近我就用誰

成員變量和局部變量

public class GirlFriend{
    private int age;//成員變量
    public void method(){
        int age = 10;//局部變量
        System.out.println(age);//打印局部變量
    }
}

public class GirlFriend{
    private int age;//成員變量
    public void method(){
        int age = 10;//局部變量
        System.out.println(this.age);//打印成員變量
    }
}

范例:

public class GirlFriend {
    private String name;
    private int age;
    private String gender;

    //針對于每個私有化的成員變量,都要提供get和set方法
    //set方法:給成員變量賦值
    //get方法;對外提供成員變量的值

    //作用:給成員變量name進(jìn)行賦值的·
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }
    public void setAge(int age){
        if(age >= 0 && age <= 100){
            this.age = age;
        }else {
            System.out.println("非法參數(shù)");
        }
    }
    public int getAge(){
        return age;
    }

    public void setGender(String gender){
        this.gender = gender;
    }
    public String getGender(){
        return gender;
    }

    //行為
    public void sleep(){
        System.out.println("女朋友在睡覺");
    }
    public void eat(){
        System.out.println("女朋友在吃飯");
    }
}

public class GirlFriendTest {
    public static void main(String[] args) {
        GirlFriend gf1 = new GirlFriend();
        gf1.setName("柳如煙");
        gf1.setAge(18);
        gf1.setGender("女");

        System.out.println(gf1.getName());
        System.out.println(gf1.getAge());
        System.out.println(gf1.getGender());

        gf1.sleep();
        gf1.eat();
    }
}

總結(jié)

  1. 就近原則
  2. this作用:區(qū)別成員變量和局部變量
  3. this的本質(zhì)和內(nèi)存圖

構(gòu)造方法


概述:

  • 構(gòu)造方法也叫做構(gòu)造器、構(gòu)造函數(shù)。
  • 作用:在創(chuàng)建對象的時(shí)候給成員變量進(jìn)行賦值的。

格式:

public class Student{
    修飾符 類名(參數(shù)){
        方法體;
    }
}

特點(diǎn):

  1. 方法名和類名相同,大小寫也要一致
  2. 沒有返回值類型,練void都沒有
  3. 沒有具體的返回值(不能有return帶回結(jié)果數(shù)據(jù))

執(zhí)行時(shí)機(jī):

  1. 創(chuàng)建對象的時(shí)候有虛擬機(jī)調(diào)用,不能手動調(diào)用構(gòu)造方法
  2. 每創(chuàng)建一次對象,就會調(diào)用一次構(gòu)造方法

public class Student {
    private String name;
    private int age;

    //如果我們自己沒有寫任何的構(gòu)造方法
    //那么虛擬機(jī)就會給我們加一個空參構(gòu)造方法
    public Student (){
        System.out.println("故鄉(xiāng)的櫻花開了");
    }

    public Student(String name,int age){
        this.name = name;
        this.age = age;
    }

    public String getName(){
        return name;
    }

    public void setName(String name){
        this.name = name;
    }

    public int getAge(){
        return age;
    }

    public void set(int age){
        this.age = age;
    }
}

public class StudentTest {
    public static void main(String[] args) {
        //創(chuàng)建對象
        //調(diào)用的空參構(gòu)造
        //Student s = new Student();

        Student s = new Student("柳如煙",18);

        System.out.println(s.getName());
        System.out.println(s.getAge());
    }
}

構(gòu)造方法注意事項(xiàng)

  1. 構(gòu)造方法的定義
    • 如果沒有定義構(gòu)造方法,系統(tǒng)將給出一個默認(rèn)無參數(shù)構(gòu)造方法
    • 如果定義了構(gòu)造方法,系統(tǒng)將不再提供默認(rèn)的構(gòu)造方法
  2. 構(gòu)造方法的重載
    • 帶參構(gòu)造方法,和無參構(gòu)造方法,兩者方法名相同,但是參數(shù)不同,這叫做構(gòu)造方法的重載
  3. 推薦的使用方法
    • 無論是否使用,都手動書寫無參構(gòu)造方法,和帶全部參數(shù)的構(gòu)造方法

總結(jié)

  1. 構(gòu)造方法的作用?
    • 創(chuàng)造對象的時(shí)候,有虛擬機(jī)自動調(diào)用,給成員變量進(jìn)行初始化的。
  2. 構(gòu)造方法有幾種,各自的作用是什么?
    • 無參數(shù)構(gòu)造方法:初始化的對象時(shí),成員變量的數(shù)據(jù)均采用默認(rèn)值。
    • 有參數(shù)構(gòu)造方法:在初始化對象的時(shí)候,同時(shí)可以為對象進(jìn)行賦值。
  3. 構(gòu)造方法有哪些注意事項(xiàng)?
    • 任何類定義出來,默認(rèn)就自帶了無參數(shù)構(gòu)造器,寫不寫都有。
    • 一旦定義有參數(shù)構(gòu)造器,無參數(shù)構(gòu)造器就沒有了,此時(shí)就需要自己寫有參數(shù)構(gòu)造器了。
    • 建議在任何時(shí)候都手動寫上空參和帶全部參數(shù)的構(gòu)造方法。

  • 創(chuàng)造對象的時(shí)候,虛擬機(jī)會自動調(diào)用構(gòu)造方法,作用是給成員變量進(jìn)行初始化的。

標(biāo)準(zhǔn)JavaBean


標(biāo)準(zhǔn)JavaBean類

  1. 類名需要見名知意
  2. 成員變量使用private修飾
  3. 提供至少兩個構(gòu)造方法
    • 無參構(gòu)造方法
    • 帶全部參數(shù)的構(gòu)造方法
  4. 成員方法
    • 提供每一個成員變量對應(yīng)的setXxx()/getXxx()
    • 如果還有其他行為,也要寫上

范例:

public class User {
    //屬性
    private String username;
    private String password;
    private String email;
    private String gender;
    private int age;
    
    //快捷鍵:
    //alt + insert
    //alt + Fn + insert
    //插件PTG 1秒生成標(biāo)準(zhǔn)JavaBean(右鍵空白處,點(diǎn)擊倒數(shù)第三個)
    
    //空參
    public User(){}
    //帶全部參數(shù)的構(gòu)造
    public User(String username,String password,String email,String gender,int age){
        this.username = username;
        this.password = password;
        this.email = email;
        this.gender = gender;
        this.age = age;
    }
    //get和set方法
    public String getUsername(){
        return username;
    }
    
    public void setUsername(String username){
        this.username = username;
    }
    
    public String getPassword(){
        return password;
    }
    
    public void setPassword(String password){
        this.password = password;
    }
    
    public String getEmail(){
        return email;
    }
    
    public void setEmail(String email){
        this.email = email;
    }
    
    public String getGender(){
        return gender;
    }
    
    public void setGender(String gender){
        this.gender = gender;
    }
    
    public int getAge(){
        return age;
    }
    
    public void setAge(int age){
        this.age = age;
    }
}

對象內(nèi)存圖


一個對象的內(nèi)存圖

Student s = new Student();
  1. 加載class文件
  2. 申明局部變量
  3. 在堆內(nèi)存中開辟一個空間
  4. 默認(rèn)初始化
  5. 顯示初始化
  6. 構(gòu)造方法初始化
  7. 將堆內(nèi)存中的地址值賦值給左邊的變量

兩個對象的內(nèi)存圖


兩個引用指向同意一個對象


基本數(shù)據(jù)類型和引用數(shù)據(jù)類型

基本數(shù)據(jù)類型

  • 在變量當(dāng)中存儲的是真實(shí)的數(shù)據(jù)值

引用數(shù)據(jù)類型

  • 使用其他空間的數(shù)據(jù)

從內(nèi)存的角度去解釋:

  • 基本數(shù)據(jù)類型:數(shù)據(jù)值是存儲在自己的空間中
  • 特點(diǎn):復(fù)制給其他變量,也是賦的真實(shí)的值。
  • 引用數(shù)據(jù)類型:數(shù)據(jù)值是存儲在其他空間中,自己空間中存儲的是地址值。
  • 特點(diǎn):賦值給其他變量,賦的是地址值。

this的內(nèi)存原理


  • this的作用:區(qū)分局部變量和成員變量
  • this的本質(zhì):所在方法調(diào)用者的地址值

成員變量和局部變量的區(qū)別


成員變量:類中方法外的變量

局部變量:方法中的變量文章來源地址http://www.zghlxwxcb.cn/news/detail-840776.html

區(qū)別 成員變量 局部變量
類中位置不同 類中,方法外 方法內(nèi)、方法申明上
初始化值不同 有默認(rèn)初始化值 沒有, 使用之前需要完成賦值
內(nèi)存位置不同 堆內(nèi)存 棧內(nèi)存
生命周期不同 隨著對象的創(chuàng)建而存在,隨著對象的消失而消失 隨著方法的調(diào)用而存在, 隨著方法的運(yùn)行結(jié)束而消失
作用域 整個類中有效 當(dāng)前方法中有效

到了這里,關(guān)于Java基礎(chǔ) --- 面向?qū)ο蟮奈恼戮徒榻B完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包