国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java編程基礎(chǔ)07——面向?qū)ο骭類&private&this

Leck1e / 2734人閱讀

摘要:面向?qū)ο笏枷敫攀隽私饷嫦驅(qū)ο箝_發(fā)就是不斷的創(chuàng)建對象,使用對象,指揮對象做事情。面向?qū)ο笤O(shè)計(jì)其實(shí)就是在管理和維護(hù)對象之間的關(guān)系。建議文件名稱和測試類名稱一致。

1.面向?qū)ο笏枷敫攀?了解)

A:面向?qū)ο箝_發(fā)就是不斷的創(chuàng)建對象,使用對象,指揮對象做事情。

B:面向?qū)ο笤O(shè)計(jì)其實(shí)就是在管理和維護(hù)對象之間的關(guān)系。

C:面向?qū)ο筇卣鞣庋b(encapsulation)、繼承(inheritance)、多態(tài)(polymorphism)

類是對某一類事物共性的抽象概念,而對象描述的是一個(gè)具體的產(chǎn)物。
每一個(gè)屬性的集合就構(gòu)成了一個(gè)對象,但是所有的屬性都應(yīng)該是群體的定義,而群體的定義就形成了一個(gè)類。
類是一個(gè)模板,而對象才是類可以使用的實(shí)例。

在類之中一般會(huì)有兩個(gè)組成:

成員屬性:(Field)有時(shí)候會(huì)簡化成其為屬性比如——年齡,姓名,性別
操作方法:(Method)定義對象具有的處理行為比如——唱歌、跳舞、游泳、運(yùn)動(dòng)

2.類的定義

A:我們學(xué)習(xí)編程是為了什么

為了把我們?nèi)粘I钪袑?shí)物用學(xué)習(xí)語言描述出來

B:我們?nèi)绾蚊枋霈F(xiàn)實(shí)世界事物

屬性 就是該事物的描述信息(事物身上的名詞)

行為 就是該事物能夠做什么(事物身上的動(dòng)詞)

C:Java中最基本的單位是類,Java中用class描述事物也是如此

成員變量 就是事物的屬性

成員方法 就是事物的行為

D:定義類其實(shí)就是定義類的成員(成員變量和成員方法)

a:成員變量 和以前定義變量是一樣的,只不過位置發(fā)生了改變。在類中,方法外。

b:成員方法 和以前定義方法是一樣的,只不過把static去掉,后面在詳細(xì)講解static的作用。

學(xué)生類的使用(掌握)

A:文件名問題

在一個(gè)java文件中寫兩個(gè)類:一個(gè)基本的類,一個(gè)測試類。

建議:文件名稱和測試類名稱一致。

B:如何使用對象?

創(chuàng)建對象并使用

格式:類名 對象名 = new 類名();

對象名,其實(shí)就是合法的標(biāo)識(shí)符:如果是一個(gè)單詞,所有字母小寫;如果多個(gè)單詞,從第二個(gè)單詞開始首字母大寫

C:如何使用成員變量呢?

對象名.變量名

D:如何使用成員方法呢?

對象名.方法名(...)

3.學(xué)生類案例演示
* 屬性:姓名,年齡,性別
* 行為:學(xué)習(xí),睡覺

class JavaObject {
    public static void main(String [] args) {
        //類名 對象名 = new 類名();
        Student s = new Student();
        //調(diào)用屬性并賦值
        s.name = "張三";
        s.age = 23;
        s.gender = "男";
        System.out.println(s.name + "..." + s.age + "..." + s.gender);   //使用變量

        //調(diào)用方法
        s.study();
        s.sleep();
    }
}

class Student {
    String name;        //姓名
    int age;            //年齡屬性
    String gender;        //性別屬性

    public void study() {   //定義學(xué)習(xí)的方法;
        System.out.println("學(xué)生學(xué)習(xí)");
    }
    public void sleep() {
        System.out.println("學(xué)生睡覺");
    }
}

4.一個(gè)對象的內(nèi)存圖
* 車
* 成員變量:顏色,輪胎數(shù)
* 成員方法:跑

    class JavaObject {
        public static void main(String [] args) {
            Car c = new Car();  //創(chuàng)建對象
            c.color = "red";//調(diào)用屬性并賦值
            c.num = 4;
            c.run();//調(diào)用方法

            Car c2 = new Car();
            c2.color = "black";
            c2.num = 3 ;
            c2.run();

            c2 = null;  //當(dāng)引用設(shè)置為null,空指針異常。
            c2.run();

            Car c3 = c2;
            c2.run();
        }
    }
    class Car {
        String color;        //顏色
        int num;            //輪胎數(shù)
        public void run() { 
            System.out.println("color" + num);
        }
    }

5.成員變量和局部變量的區(qū)別Person(掌握)

A:在類中的位置不同

成員變量:在類中方法外

局部變量:在方法定義中或者方法聲明上

B:在內(nèi)存中的位置不同

成員變量:在堆內(nèi)存(成員變量屬于對象,對象進(jìn)堆內(nèi)存)

局部變量:在棧內(nèi)存(局部變量屬于方法,方法進(jìn)棧內(nèi)存)

C:生命周期不同

成員變量:隨著對象的創(chuàng)建而存在,隨著對象的消失而消失

局部變量:隨著方法的調(diào)用而存在,隨著方法的調(diào)用完畢而消失

D:初始化值不同

成員變量:有默認(rèn)初始化值(null或0)

局部變量:沒有默認(rèn)初始化值;使用前必須定義,賦值,然后才能使用。

注意事項(xiàng):

局部變量名稱可以和成員變量名稱一樣,在方法中使用的時(shí)候,采用的是就近原則(why可以同名?)。

基本數(shù)據(jù)類型變量包括哪些:byte,short,int,long,float,double,boolean,char

引用數(shù)據(jù)類型變量包括哪些:數(shù)組,類,接口,枚舉

class JavaObject {
    public static void main(String [] args) {
        Person p = new Person();
        p.speak();
    }
}
class Person {
    String name;                //成員變量
    int num;
    public void speak() {  //x和num都是局部變量
        int num = 10;
        System.out.println(num);    
        System.out.println(name);  //就近原則
    }
}

6.方法的形式參數(shù)是類名的時(shí)候如何調(diào)用(掌握)

A:方法的參數(shù)是類名public void print(Student s){}//print(new Student());

如果你看到了一個(gè)方法的形式參數(shù)是一個(gè)類(引用數(shù)據(jù)類型),這里其實(shí)需要的是該類的對象(new地址值)。

(~ 記住: 引用數(shù)據(jù)類型當(dāng)做形式參數(shù)的時(shí)候給的是地址值;二基本數(shù)據(jù)類型當(dāng)做形參的時(shí)候給的是值)

class JavaObject {
    public static void main(String [] args) {
        print(10);   //賦值
        Student s = new Student();  //創(chuàng)建對象
        print(s);

    }
    public static void print(int x) {  //形式參數(shù)是基本數(shù)據(jù)類型,傳遞的值
        System.out.println(x);
    }
    //形式參數(shù)是引用數(shù)據(jù)類型,傳遞的地址值
    public static void print(Student stu) {  //Student stu = new Student();
        stu.name = "張三";
        stu.age = 23;
        stu.speak();
    }
}
class Student {
    String name;                //成員變量
    int age;
    public void speak() {  //局部變量
        System.out.println(name + "..." + age);            
    }
}   

7.匿名對象的概述和應(yīng)用Car(掌握)

沒有名字的對象叫做匿名對象;

只適合調(diào)用一次的時(shí)候。優(yōu)點(diǎn)是節(jié)省代碼,調(diào)用完畢就是垃圾,可以被垃圾回收器回收。

a:調(diào)用方法

class JavaObject {
    public static void main(String [] args) {
        //Car c1 = new Car();  //創(chuàng)建有名字的對象
        //c1.run();

        //new Car().run();   //匿名對象調(diào)用完就變成垃圾了
        //new Car().run();   //匿名對象只適合對方法的一次調(diào)用,因?yàn)檎{(diào)用多次就會(huì)產(chǎn)生多個(gè)對象,不如用有名字對象,否則浪費(fèi)內(nèi)存
        //匿名對象可以調(diào)用屬性,但是沒有意義,因?yàn)檎{(diào)用后就變成垃圾,如果需要賦值還是用有名字對象
        new Car().color = "red";
        new Car().num = 23;
        new Car().run();
        }
}
class Car {
    String color;
    int num;
    public void run() {
        System.out.println(color + "..." + num);
    }
}

b:匿名對象可以作為實(shí)際參數(shù)傳遞

 class JavaObject {
    public static void main(String [] args) {
        /*Car c1 = new Car();  //創(chuàng)建有名字的對象
        c1.color = "red";
        c1.num = 8;
        c1.run();*/

        //Car c1 = new Car();
        //method(c1);
        //method(new Car());

        //Car c2 = new Car();
        //method(c2);
        //method(new Car());

        for (int i = 0;i < 10 ;i ++ ) {
            method(new Car());
        }
    }
    //抽取方法,提高代碼的復(fù)用性 protected  default
    public static void method(Car cc) { //Car cc = new Car();
        cc.color = "red";
        cc.num = 8;
        cc.run();
    }
}

8.封裝的概述(掌握)

A:封裝概述

是指隱藏對象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對外提供公共訪問方式。

B:封裝好處

隱藏實(shí)現(xiàn)細(xì)節(jié),提供公共的訪問方式

提高了代碼的復(fù)用性

提高安全性。

C:封裝原則

將不需要對外提供的內(nèi)容都隱藏起來。

把屬性隱藏,提供公共方法對其訪問。

9.private關(guān)鍵字的概述和特點(diǎn)(掌握) public protected default

A:人類賦值年齡的問題

B:private關(guān)鍵字特點(diǎn)

a:是一個(gè)權(quán)限修飾符

b:可以修飾成員變量和成員方法

c:被其修飾的成員只能在本類中被訪問

C:案例演示

封裝和private的應(yīng)用:

A:把成員變量用private修飾

B:提供對應(yīng)的getXxx()和setXxx()方法

private僅僅是封裝的一種體現(xiàn)形式,不能說封裝就是私有(講包時(shí)會(huì)有更好的理解)

public class JavaObject {
    public static void main(String [] args) {
        System.out.println("");
            Person p1 = new Person();
            p1.name = "張三";
            //p1.age = 23;
            //p1.speak();
            p1.setAge(-17);
            //int age1 = p1.getAge();
            System.out.println(p1.getAge());
    }
}
class Person {
    String name;
    private int age;         //私有成員變量
    public void setAge(int a) {  //a = 17 //對外提供公共的訪問方法
        if (a > 18 && a<120) {
            age = a;
        } else {
            System.out.println("輸入有誤");
        }
    }
    public int getAge() {  //對外提供公共的訪問方法
        return age;
    }
    public void speak() {
        System.out.println(name + "..." + age);
    }
}   

10.this關(guān)鍵字的概述和應(yīng)用(掌握)

A:this關(guān)鍵字特點(diǎn)

代表當(dāng)前對象的引用 (誰來調(diào)用我,我就代表誰)

B:案例演示

this的應(yīng)用場景

用來區(qū)分成員變量和局部變量重名,調(diào)用成員變量

public class JavaObject {
    public static void main(String [] args) {
        System.out.println("");
            Person p1 = new Person();
            p1.setName("張三");
            p1.setAge(23);
            System.out.println(p1.getName() + "..." + p1.getAge());
            Person p2 = new Person();
            p2.setName("李四");
            p2.setAge(32);
            p2.speak();
    }
}
class Person {
    private String name;
    private int age;
    public void setName(String name) {
        this.name = name;//在這里this代表p1的地址值
    }
    public String getName() {
        return name;
    }
    public void setAge(int age) {  //a = 17
        if (age > 18 && age<120) {
            this.age = age;
        } else {
            System.out.println("輸入有誤");
        }
    }
    public int getAge() {
        return age;
    }

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

11.手機(jī)類代碼及其測試(掌握)

把手機(jī)類寫成一個(gè)標(biāo)準(zhǔn)類,然后創(chuàng)建對象測試功能。

手機(jī)類

屬性:品牌brand,價(jià)格price

行為:打電話call,發(fā)短信sendMessage,玩游戲playGame

成員方法對應(yīng)的getXxx()和setXxx()方法

public class JavaObject {    //創(chuàng)建對象phone  
    public static void main(String [] args) {
        Phone p1 = new Phone();  //01,主方法聲明p1,堆內(nèi)存創(chuàng)建實(shí)體
        p1.setBrand("Apple");    //03進(jìn)棧內(nèi)存 賦值brand
        p1.setPrice(5288);  //05price

        System.out.println(p1.getBrand() + "..." + p1.getPrice());//09
    }
}

class Phone {
    private String brand;     //品牌   02null
    private int price;        //價(jià)格    0



    public void setBrand(String brand) {   //設(shè)置品牌04賦值
        this.brand = brand;
    }
    public String getBrand() {     //獲取品牌07
        return brand;
    }


    public void setPrice(int price) {        //設(shè)置價(jià)格 06
        this.price = price;
    }
    public int getPrice() {            //獲取價(jià)格08
        return price;
    }


    public void call() {
        System.out.println("打電話");
    }
    public void sendMessage() {
    System.out.println("發(fā)信息");
    }
    public void palyGame() {
    System.out.println("打游戲");
    }
}

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

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/76921.html

相關(guān)文章

  • Java編程基礎(chǔ)11——面向對象_包&amp;權(quán)限修飾符&amp;匿名內(nèi)部

    摘要:外部類要訪問內(nèi)部類的成員,必須創(chuàng)建對象。前提存在一個(gè)類或者接口這里的類可以是具體類也可以是抽象類。 1.package關(guān)鍵字的概述及作用(了解) A:為什么要有包 將字節(jié)碼(.class)進(jìn)行分類存放 包其實(shí)就是文件夾 B:包的概述 舉例: 學(xué)生:增加,刪除,修改,查詢 老師:增加,刪除,修改,查詢 ... 方案1:按照功能分 com.heima.add ...

    Bryan 評論0 收藏0
  • Java編程基礎(chǔ)09——面向對象_代碼塊&amp;繼承&amp;方法&amp;final

    摘要:每次調(diào)用構(gòu)造都執(zhí)行,并且在構(gòu)造方法前執(zhí)行靜態(tài)代碼塊在類中方法外出現(xiàn),并加上修飾用于給類進(jìn)行初始化,隨著類加載而加載,一般用來給類進(jìn)行初始化,在加載的時(shí)候就執(zhí)行,并且只執(zhí)行一次。的構(gòu)造方法這是一條隱藏語句,用來訪問父類中的空參構(gòu)造。 1.代碼塊的概述和分類(了解)(實(shí)際不用) A:代碼塊概述 在Java中,使用{}括起來的代碼被稱為代碼塊。 B:代碼塊分類 根據(jù)其位置和聲明的不同...

    LeviDing 評論0 收藏0
  • Java編程基礎(chǔ)10——面向對象_多態(tài)&amp;抽象&amp;接口

    摘要:案例演示抽象類的成員特點(diǎn)抽象類的成員方法特性抽象方法強(qiáng)制要求子類做的事情。抽象類中定義的是該繼承體系的共性功能。 1.多態(tài)的概述及其成員訪問特點(diǎn)代碼體現(xiàn) A:多態(tài)(polymorphic)概述 事物存在的多種形態(tài) B:多態(tài)前提- 1.要有繼承關(guān)系 2.要有方法重寫 3.要有父類引用指向子類對象。 C:多態(tài)中的成員訪問特點(diǎn)之 成員變量:編譯和運(yùn)行都看父類。 成員方法:編...

    dunizb 評論0 收藏0
  • Java編程基礎(chǔ)08——面向對象_構(gòu)造方法&amp;靜態(tài)static

    摘要:如果我們給出了構(gòu)造方法,系統(tǒng)將不再提供默認(rèn)的無參構(gòu)造方法。概念方便在沒有創(chuàng)建對象的情況下來進(jìn)行調(diào)用方法變量。因?yàn)樗某蓡T全部是靜態(tài)的所以私有了構(gòu)造方法獲取隨機(jī)數(shù)的方法返回帶正號的值,該值大于等于 1.構(gòu)造方法Constructor概述和格式(掌握) A:構(gòu)造方法概述和作用 給對象的數(shù)據(jù)(屬性)進(jìn)行初始化 B:構(gòu)造方法格式特點(diǎn) a:方法名與類名相同(大小寫也要與類名一致) b:...

    張巨偉 評論0 收藏0
  • JavaScript進(jìn)階之函數(shù)和對象知識(shí)點(diǎn)詳解

      在過往學(xué)習(xí)的JavaScript都是在基礎(chǔ),現(xiàn)在為大家介紹更為深入的JavaScript知識(shí)。  JavaScript函數(shù)  JavaScript函數(shù)和Java函數(shù)是有一部分相似的,所以學(xué)習(xí)起來也會(huì)相對簡單  基本構(gòu)造  1.直接構(gòu)造  //function代表函數(shù)標(biāo)志,name為函數(shù)名稱,參數(shù)可有可無   functionname(參數(shù)){   //...   return;   }  2....

    3403771864 評論0 收藏0

發(fā)表評論

0條評論

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