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

從零開始學(xué)習(xí) Java:簡單易懂的入門指南之類和對象(七)

這篇具有很好參考價值的文章主要介紹了從零開始學(xué)習(xí) Java:簡單易懂的入門指南之類和對象(七)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 類和對象

1.1 類和對象的理解

客觀存在的事物皆為對象 ,所以我們也常常說萬物皆對象。

    • 類的理解
      • 類是對現(xiàn)實生活中一類具有共同屬性和行為的事物的抽象
      • 類是對象的數(shù)據(jù)類型,類是具有相同屬性和行為的一組對象的集合
      • 簡單理解:類就是對現(xiàn)實事物的一種描述
    • 類的組成
      • 屬性:指事物的特征,例如:手機(jī)事物(品牌,價格,尺寸)
      • 行為:指事物能執(zhí)行的操作,例如:手機(jī)事物(打電話,發(fā)短信)
  • 類和對象的關(guān)系
    • 類:類是對現(xiàn)實生活中一類具有共同屬性和行為的事物的抽象
    • 對象:是能夠看得到摸的著的真實存在的實體
    • 簡單理解:類是對事物的一種描述,對象則為具體存在的事物

1.2 類的定義

類的組成是由屬性和行為兩部分組成

  • 屬性:在類中通過成員變量來體現(xiàn)(類中方法外的變量)
  • 行為:在類中通過成員方法來體現(xiàn)(和前面的方法相比去掉static關(guān)鍵字即可)

類的定義步驟:

①定義類

②編寫類的成員變量

③編寫類的成員方法

public class 類名 {
	// 成員變量
	變量1的數(shù)據(jù)類型 變量1;
	變量2的數(shù)據(jù)類型 變量2;// 成員方法
	方法1;
	方法2;	
}

示例代碼:

/*
    手機(jī)類:
        類名:
        手機(jī)(Phone)

        成員變量:
        品牌(brand)
        價格(price)

        成員方法:
        打電話(call)
        發(fā)短信(sendMessage)
 */
public class Phone {
    //成員變量
    String brand;
    int price;

    //成員方法
    public void call() {
        System.out.println("打電話");
    }

    public void sendMessage() {
        System.out.println("發(fā)短信");
    }
}

1.3 對象的使用

  • 創(chuàng)建對象的格式:
    • 類名 對象名 = new 類名();
  • 調(diào)用成員的格式:
    • 對象名.成員變量
    • 對象名.成員方法();
  • 示例代碼
/*
    創(chuàng)建對象
        格式:類名 對象名 = new 類名();
        范例:Phone p = new Phone();

    使用對象
        1:使用成員變量
            格式:對象名.變量名
            范例:p.brand
        2:使用成員方法
            格式:對象名.方法名()
            范例:p.call()
 */
public class PhoneDemo {
    public static void main(String[] args) {
        //創(chuàng)建對象
        Phone p = new Phone();

        //使用成員變量
        System.out.println(p.brand);
        System.out.println(p.price);

        p.brand = "小米";
        p.price = 2999;

        System.out.println(p.brand);
        System.out.println(p.price);

        //使用成員方法
        p.call();
        p.sendMessage();
    }
}

1.4 學(xué)生對象-練習(xí)

  • 需求:首先定義一個學(xué)生類,然后定義一個學(xué)生測試類,在學(xué)生測試類中通過對象完成成員變量和成員方法的使用
  • 分析:
    • 成員變量:姓名,年齡…
    • 成員方法:學(xué)習(xí),做作業(yè)…
  • 示例代碼:
public class Student {
    //成員變量
    String name;
    int age;

    //成員方法
    public void study() {
        System.out.println("好好學(xué)習(xí),天天向上");
    }

    public void doHomework() {
        System.out.println("鍵盤敲爛,月薪過萬");
    }
}
/*
    學(xué)生測試類
 */
public class StudentDemo {
    public static void main(String[] args) {
        //創(chuàng)建對象
        Student s = new Student();

        //使用對象
        System.out.println(s.name + "," + s.age);

        s.name = "林青霞";
        s.age = 30;

        System.out.println(s.name + "," + s.age);

        s.study();
        s.doHomework();
    }
}

2. 對象內(nèi)存圖

2.1 單個對象內(nèi)存圖

  • 成員變量使用過程

從零開始學(xué)習(xí) Java:簡單易懂的入門指南之類和對象(七),java基礎(chǔ),學(xué)習(xí),java,開發(fā)語言,intellij-idea,spring boot,spring cloud

  • 成員方法調(diào)用過程

從零開始學(xué)習(xí) Java:簡單易懂的入門指南之類和對象(七),java基礎(chǔ),學(xué)習(xí),java,開發(fā)語言,intellij-idea,spring boot,spring cloud

2.2 多個對象內(nèi)存圖

  • 成員變量使用過程

從零開始學(xué)習(xí) Java:簡單易懂的入門指南之類和對象(七),java基礎(chǔ),學(xué)習(xí),java,開發(fā)語言,intellij-idea,spring boot,spring cloud

  • 成員方法調(diào)用過程

從零開始學(xué)習(xí) Java:簡單易懂的入門指南之類和對象(七),java基礎(chǔ),學(xué)習(xí),java,開發(fā)語言,intellij-idea,spring boot,spring cloud

  • 總結(jié):

    多個對象在堆內(nèi)存中,都有不同的內(nèi)存劃分,成員變量存儲在各自的內(nèi)存區(qū)域中,成員方法多個對象共用的一份

3. 成員變量和局部變量

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

  • 類中位置不同:成員變量(類中方法外)局部變量(方法內(nèi)部或方法聲明上)
  • 內(nèi)存中位置不同:成員變量(堆內(nèi)存)局部變量(棧內(nèi)存)
  • 生命周期不同:成員變量(隨著對象的存在而存在,隨著對象的消失而消失)局部變量(隨著方法的調(diào)用而存在,醉著方法的調(diào)用完畢而消失)
  • 初始化值不同:成員變量(有默認(rèn)初始化值)局部變量(沒有默認(rèn)初始化值,必須先定義,賦值才能使用)

4. 封裝

4.1 封裝思想

  1. 封裝概述
    是面向?qū)ο笕筇卣髦唬ǚ庋b,繼承,多態(tài))

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

  2. 封裝代碼實現(xiàn)
    將類的某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問,而是通過該類提供的方法來實現(xiàn)對隱藏信息的操作和訪問
    成員變量private,提供對應(yīng)的getXxx()/setXxx()方法

4.2 private關(guān)鍵字

private是一個修飾符,可以用來修飾成員(成員變量,成員方法)

  • 被private修飾的成員,只能在本類進(jìn)行訪問,針對private修飾的成員變量,如果需要被其他類使用,提供相應(yīng)的操作

    • 提供“get變量名()”方法,用于獲取成員變量的值,方法用public修飾
    • 提供“set變量名(參數(shù))”方法,用于設(shè)置成員變量的值,方法用public修飾
  • 示例代碼:

    /*
        學(xué)生類
     */
    class Student {
        //成員變量
        String name;
        private int age;
    
        //提供get/set方法
        public void setAge(int a) {
            if(a<0 || a>120) {
                System.out.println("你給的年齡有誤");
            } else {
                age = a;
            }
        }
    
        public int getAge() {
            return age;
        }
    
        //成員方法
        public void show() {
            System.out.println(name + "," + age);
        }
    }
    /*
        學(xué)生測試類
     */
    public class StudentDemo {
        public static void main(String[] args) {
            //創(chuàng)建對象
            Student s = new Student();
            //給成員變量賦值
            s.name = "林青霞";
            s.setAge(30);
            //調(diào)用show方法
            s.show();
        }
    }
    

4.3 private的使用

  • 需求:定義標(biāo)準(zhǔn)的學(xué)生類,要求name和age使用private修飾,并提供set和get方法以及便于顯示數(shù)據(jù)的show方法,測試類中創(chuàng)建對象并使用,最終控制臺輸出 林青霞,30

  • 示例代碼:

    /*
        學(xué)生類
     */
    class Student {
        //成員變量
        private String name;
        private int age;
    
        //get/set方法
        public void setName(String n) {
            name = n;
        }
    
        public String getName() {
            return name;
        }
    
        public void setAge(int a) {
            age = a;
        }
    
        public int getAge() {
            return age;
        }
    
        public void show() {
            System.out.println(name + "," + age);
        }
    }
    /*
        學(xué)生測試類
     */
    public class StudentDemo {
        public static void main(String[] args) {
            //創(chuàng)建對象
            Student s = new Student();
    
            //使用set方法給成員變量賦值
            s.setName("林青霞");
            s.setAge(30);
    
            s.show();
    
            //使用get方法獲取成員變量的值
            System.out.println(s.getName() + "---" + s.getAge());
            System.out.println(s.getName() + "," + s.getAge());
    
        }
    }
    

4.4 this關(guān)鍵字

  • this修飾的變量用于指代成員變量,其主要作用是(區(qū)分局部變量和成員變量的重名問題)
    • 方法的形參如果與成員變量同名,不帶this修飾的變量指的是形參,而不是成員變量
    • 方法的形參沒有與成員變量同名,不帶this修飾的變量指的是成員變量
public class Student {
    private String name;
    private int age;

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

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void show() {
        System.out.println(name + "," + age);
    }
}

5. 構(gòu)造方法

5.1 構(gòu)造方法概述

構(gòu)造方法是一種特殊的方法

  • 作用:創(chuàng)建對象 Student stu = new Student();

  • 格式:

    public class 類名{

    ? 修飾符 類名( 參數(shù) ) {

    ? }

    }

  • 功能:主要是完成對象數(shù)據(jù)的初始化

  • 示例代碼:

class Student {
    private String name;
    private int age;

    //構(gòu)造方法
    public Student() {
        System.out.println("無參構(gòu)造方法");
    }

    public void show() {
        System.out.println(name + "," + age);
    }
}
/*
    測試類
 */
public class StudentDemo {
    public static void main(String[] args) {
        //創(chuàng)建對象
        Student s = new Student();
        s.show();
    }
}

5.2 構(gòu)造方法的注意事項

  • 構(gòu)造方法的創(chuàng)建

如果沒有定義構(gòu)造方法,系統(tǒng)將給出一個默認(rèn)的無參數(shù)構(gòu)造方法
如果定義了構(gòu)造方法,系統(tǒng)將不再提供默認(rèn)的構(gòu)造方法

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

如果自定義了帶參構(gòu)造方法,還要使用無參數(shù)構(gòu)造方法,就必須再寫一個無參數(shù)構(gòu)造方法

  • 推薦的使用方式

無論是否使用,都手工書寫無參數(shù)構(gòu)造方法

  • 重要功能!

可以使用帶參構(gòu)造,為成員變量進(jìn)行初始化

  • 示例代碼
/*
    學(xué)生類
 */
class Student {
    private String name;
    private int age;

    public Student() {}

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

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

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

    public void show() {
        System.out.println(name + "," + age);
    }
}
/*
    測試類
 */
public class StudentDemo {
    public static void main(String[] args) {
        //創(chuàng)建對象
        Student s1 = new Student();
        s1.show();

        //public Student(String name)
        Student s2 = new Student("林青霞");
        s2.show();

        //public Student(int age)
        Student s3 = new Student(30);
        s3.show();

        //public Student(String name,int age)
        Student s4 = new Student("林青霞",30);
        s4.show();
    }
}

5.3 標(biāo)準(zhǔn)類制作

① 類名需要見名知意

② 成員變量使用private修飾

③ 提供至少兩個構(gòu)造方法

  • 無參構(gòu)造方法
  • 帶全部參數(shù)的構(gòu)造方法

④ get和set方法

? 提供每一個成員變量對應(yīng)的setXxx()/getXxx()

⑤ 如果還有其他行為,也需要寫上

5.4 練習(xí)1

需求:

? 定義標(biāo)準(zhǔn)學(xué)生類,要求分別使用空參和有參構(gòu)造方法創(chuàng)建對象,空參創(chuàng)建的對象通過setXxx賦值,有參創(chuàng)建的對象直接賦值,并通過show方法展示數(shù)據(jù)。

  • 示例代碼:
class Student {
    //成員變量
    private String name;
    private int age;

    //構(gòu)造方法
    public Student() {
    }

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

    //成員方法
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void show() {
        System.out.println(name + "," + age);
    }
}
/*
    創(chuàng)建對象并為其成員變量賦值的兩種方式
        1:無參構(gòu)造方法創(chuàng)建對象后使用setXxx()賦值
        2:使用帶參構(gòu)造方法直接創(chuàng)建帶有屬性值的對象
*/
public class StudentDemo {
    public static void main(String[] args) {
        //無參構(gòu)造方法創(chuàng)建對象后使用setXxx()賦值
        Student s1 = new Student();
        s1.setName("林青霞");
        s1.setAge(30);
        s1.show();

        //使用帶參構(gòu)造方法直接創(chuàng)建帶有屬性值的對象
        Student s2 = new Student("林青霞",30);
        s2.show();
    }
}

5.4 練習(xí)2

從零開始學(xué)習(xí) Java:簡單易懂的入門指南之類和對象(七),java基礎(chǔ),學(xué)習(xí),java,開發(fā)語言,intellij-idea,spring boot,spring cloud

public class User {
    //1.私有化全部的成員變量
    //2.空參構(gòu)造
    //3.帶全部參數(shù)的構(gòu)造
    //4.針對于每一個私有化的成員變量都要提供其對應(yīng)的get和set方法
    //5.如果當(dāng)前事物還有其他行為,那么也要寫出來,比如學(xué)生的吃飯,睡覺等行為

    private String username;//用戶名
    private String password;//密碼
    private String email;//郵箱
    private char gender;//性別
    private int age;//年齡

    //空參構(gòu)造方法
    public User() {
    }

    //帶全部參數(shù)的構(gòu)造
    public User(String username, String password, String email, char 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 char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

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

    public void eat(){
        System.out.println(username + "在吃飯");
    }
}

public class Test {
    public static void main(String[] args) {
        //寫一個標(biāo)準(zhǔn)的javabean類
        //咱們在課后只要能把這個標(biāo)準(zhǔn)的javabean能自己寫出來,那么就表示今天的知識點就ok了


        //利用空參構(gòu)造創(chuàng)建對象
        User u1 = new User();
        //如果利用空參創(chuàng)建對象,還想賦值只能用set方法賦值
        u1.setUsername("zhangsan");
        u1.setPassword("1234qwer");
        u1.setEmail("itheima@itcast.cn");
        u1.setGender('男');
        u1.setAge(23);
        //獲取屬性的值并打印
        System.out.println(u1.getUsername() + ", " + u1.getPassword()
                + ", " + u1.getEmail() + ", " + u1.getGender() + ", " + u1.getAge());
        u1.eat();

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

        //簡單的辦法
        //利用帶全部參數(shù)的構(gòu)造來創(chuàng)建對象
        //快捷鍵:ctrl + p
        User u2 = new User("lisi","12345678","lisi@itcast.cn",'女',24);
        System.out.println(u2.getUsername() + ", " + u2.getPassword()
                + ", " + u2.getEmail() + ", " + u2.getGender() + ", " + u2.getAge());
        u2.eat();
    }
}

后記
????????美好的一天,到此結(jié)束,下次繼續(xù)努力!欲知后續(xù),請看下回分解,寫作不易,感謝大家的支持!! ??????
文章來源地址http://www.zghlxwxcb.cn/news/detail-626037.html

到了這里,關(guān)于從零開始學(xué)習(xí) Java:簡單易懂的入門指南之類和對象(七)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包