欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:開發(fā)語言 Java 類和對象

柚子快報邀請碼778899分享:開發(fā)語言 Java 類和對象

http://yzkb.51969.com/

目錄

1、面向?qū)ο蟮某醪秸J知

2、類定義和使用

?2、1 簡單認識類

2、2類的定義

3、類的實例化

3、1什么是實例化

3、2類和對象的說明使用?

?編輯

4、this引用?

4、1什么是this引用

4、2 this引用的特性

5、對象的構(gòu)造及初始化

5、1構(gòu)造方法

?5、2默認初始化

5、3就地初始值

本篇博客學習Java類與對象。會涉及到許多新的概念,小伙伴們認真看完并及時鞏固消化知識點哦

1、面向?qū)ο蟮某醪秸J知

Java是一門純面向?qū)ο蟮恼Z言(Object Oriented Program,簡稱OOP),在面向?qū)ο蟮氖澜缋?,一切皆為對象。面向?qū)ο笫墙鉀Q問題的一種思想,主要依靠對象之間的交互完成一件事情。用面向?qū)ο蟮乃枷雭砩婕俺绦?,更符合人們對事物的認知,對于大型程序的設計、擴展以及維護都非常友好。

面向?qū)ο笈c面向過程的區(qū)別:面向?qū)ο螅鹤⒅氐氖菍ο螅ńY(jié)果)(1.找對象 2.創(chuàng)建對象 3.使用對象),如像洗衣服注重的只有洗衣機,衣服和洗衣粉幾個對象是如何交互完成工作的,而不注意是怎么洗的面向過程:注重的是過程,如洗衣服時洗衣服的過程必須每個環(huán)節(jié)都在,少一個環(huán)節(jié)都不行,按照這種方式寫代碼,將來擴展或維護起來會很麻煩

?以洗衣服為例,感受面向過程與面向?qū)ο缶幊陶Z言的區(qū)別。

面向過程編程語言就像傳統(tǒng)洗衣方式一樣。 ?

傳統(tǒng)的方式:注重的是洗衣服的過程,少了一個環(huán)節(jié)可能都不行。 而且不同衣服洗的方式,時間長度,擰干方式都不同,處理起來就比較麻煩。如果將來要洗鞋子,那就是另一種放方式。按照該種方式來寫代碼,將來擴展或者維護起來會比較麻煩。

而面向過程編程語言就像現(xiàn)代洗衣方式一樣。

注:面向過程和面相對象并不是一門語言,而是解決問題的方法,沒有那個好壞之分,都有其專門的應用場景?。

2、類定義和使用

面相對象程序設計關(guān)注的是對象,而對象是現(xiàn)實生活中的實體,比如:洗衣機。但是洗衣機計算機并不認識,需要開發(fā)人員告訴給計算機什么是洗衣機。

上圖左側(cè)就是對洗衣機簡單的描述,該過程稱為對洗衣機對象(實體)進行抽象(對一個復雜事物的重新認知),但是這些簡化的抽象結(jié)果計算機也不能識別,開發(fā)人員可以采用某種面相對象的編程語言來進行描述,比如:Java語言。?

?2、1 簡單認識類

類是用來對一個實體(對象)來進行描述的,主要描述該實體(對象)具有哪些屬性(外觀尺寸等),哪些功能(用來干啥),描述完成后計算機就可以識別了。 在Java語言中,如何對上述的洗衣機類來進行定義呢?

2、2類的定義

在java中定義類中,class為定義類的關(guān)鍵字。WashMachin為類名(建議采用大駝峰式命名)。{}中為類的主體。類中包含的內(nèi)容稱為類的成員。屬性主要是描述類的,稱之為類的成員屬性或類的成員變量。而方法主要說明類有哪些功能,稱之為類的成員方法。因此,類的主體由成員變量和成員方法構(gòu)成,合稱為類的成員。

? ? //創(chuàng)建洗衣機類

?public class WashMachine { ? ? //洗衣機屬性(成員變量) ? ? ? ? public String brand; // 品牌 ? ? ? ? public String type; // 型號 ? ? ? ? public double weight; // 重量 ? ? ? ? public double length; // 長 ? ? ? ? public double width; // 寬 ? ? ? ? public double height; // 高 ? ? ? ? public String color; // 顏色 ? ?//洗衣機的行為(成員方法) ? ? ? ? public void washClothes(){ // 洗衣服 ? ? ? ? ? ? System.out.println("洗衣功能"); ? ? ? ? }

? ? ? ? public void dryClothes(){ // 脫水 ? ? ? ? ? ? System.out.println("脫水功能"); ? ? ? ? }

? ? ? ? public void setTime(){ // 定時 ? ? ? ? ? ? System.out.println("定時功能"); ? ? ? ? } } ?

注意事項: 1. 一般一個文件當中只定義一個類 2. main方法所在的類一般要使用public修飾 3. public修飾的類必須要和文件名相同 4. 不要輕易去修改public修飾的類的名稱。

采用Java語言將洗衣機在計算機中定義完成,經(jīng)過Javac文件之后形成 .class文件。在JVM上=的基礎上計算機就可以識別了。??

3、類的實例化

3、1什么是實例化

定義了一個類,就相當于在計算機中定義了一種新的類型,與int,double類似,只不過int和double是java語言自帶的內(nèi)置類型,而類是用戶自定義了一個新的類型,比如上述的:WashMachine類。是(一種新定義的類型)有了這些自定義的類型之后,就可以使用這些類來定義實例(或者稱為對象)。用類類型創(chuàng)建對象的過程,稱為類的實例化,在java中采用new關(guān)鍵字,配合類名來實例化對象。

//創(chuàng)建狗類

public class PetDog {

//狗的屬性(成員變量)

public String name;

public String color;

//狗的行為(成員方法)

public void bark(){

System.out.println("汪汪汪~~~");

}

public void eat(){

System.out.println("吃狗糧...");

}

}

public class Test {

public static void main(String[] args) {

PetDog dog1 = new PetDog(); //通過new實例化對象

dog1.name = "大黃";//用"對象名."來訪問對象的成員(變量/方法)

dog1.color = "黑黃色";

dog1.bark();

dog1.eat();

}

}

?注意事項:1.new 關(guān)鍵字用于創(chuàng)建一個對象的實例. 2.使用 . 來訪問對象中的屬性和方法. 3.同一個類可以創(chuàng)建對個實例.

3、2類和對象的說明使用?

1. 類只是一個模型一樣的東西,用來對一個實體進行描述,限定了類有哪些成員. 2. 類是一種自定義的類型,可以用來定義變量. 3. 一個類可以實例化出多個對象,實例化出的對象 占用實際的物理空間,存儲類成員變量 4. 做個比方。類實例化出對象就像現(xiàn)實中使用建筑設計圖建造出房子,類就像是設計圖,只設計出需要什么東西,但是并沒有實體的建筑存在,同y樣類也只是一個設計,實例化出的對象才能實際存儲數(shù)據(jù),占用物理空間。

4、this引用?

4、1什么是this引用

this引用指向當前對象(成員方法運行時調(diào)用該成員方法的對象),在成員方法中所有成員變量的操作,都是通過該引用去訪問。 public class PetDog { ? ? public String name; ? ? public int age; ? ? public String color;

? ? public void SetPetDog(String name, int age, String color) { ? ? ? ? this.name = name; ? ? ? ? this.age = age; ? ? ? ? this.color = color; ? ? }

? ? public void say(){ ? ? ? ? System.out.println(this.name+"說我"+this.age+"歲了是"+this.color); ? ? } } public class Test { ? ? ? ? public static void main(String[] args) { ? ? ? ? ? ? PetDog dog1 = new PetDog(); ? ? ? ? ? ? dog1.SetPetDog("大黃",3,"黑黃色"); ? ? ? ? ? ? dog1.say(); ? ? ? ? } }

4、2 this引用的特性

1. this的類型:對應類類型引用,即哪個對象調(diào)用就是哪個對象的引用類型 2. this只能在"成員方法"中使用。不能在靜態(tài)方法中使用。 3. 在"成員方法"中,this只能引用當前對象,不能再引用其他對象

總結(jié)this用法

1、通過this訪問當前對象的成員變量。

2、通過this訪問當前對象的成員方法

3、通過this訪問當前對象的其他構(gòu)造方法(必須放在該方法的第一行!)

5、對象的構(gòu)造及初始化

先看上述this引用來賦值初始化示范代碼

? public void SetPetDog(String name, int age, String color) { ? ? ? ? this.name = name; ? ? ? ? this.age = age; ? ? ? ? this.color = color; ? ? }

需要調(diào)用之前寫的SetPetDog方法才可以將具體的日期設置到對象中。通過上述例子發(fā)現(xiàn)問題并引發(fā)思考: 1. 每次對象創(chuàng)建好后調(diào)用SetDate方法設置具體日期,比較麻煩。

2、局部變量必須要初始化才能使用,那么成員變量聲明后,沒有賦值直接使用會報錯嗎

這就得引出構(gòu)造方法了

5、1構(gòu)造方法

構(gòu)造方法(也稱為構(gòu)造器)是一個特殊的成員方法,名字必須與類名相同,在創(chuàng)建對象時,由編譯器自動調(diào)用,并且 在整個對象的生命周期內(nèi)只調(diào)用一次。注意:構(gòu)造方法的作用就是對對象中的成員進行初始化,并不負責給對象開辟空間。

構(gòu)造方法必須滿足的條件;

1、方法名與類名相同

2、方法名的前面無返回值

3、構(gòu)造方法中不能使用return語句返回一個值,但是可以單獨寫return語句作為方法的結(jié)束。

public class Date {

public int year;

public int month;

public int day;

//構(gòu)造方法

public Date(int year, int month, int day) {

this.year = year;

this.month = month;

this.day = day;

System.out.println("Date(int,int,int)構(gòu)造方法被調(diào)用了");

}

public void printDate() {

System.out.println(year + "-" + month + "-" + day);

}

}

public class Test {

public static void main(String[] args) {

Date date = new Date(2024,6,2);

date.printDate();

}

}

注意:在創(chuàng)建對象時由編譯器自動調(diào)用,并且在對象的生命周期內(nèi)只調(diào)用一次?。

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

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

1、方法名相同

2、參數(shù)不同(個數(shù)不同/依次類型不同)

// 無參構(gòu)造方法

public Date(){

}

// 帶有三個參數(shù)的構(gòu)造方法

public Date(int year, int month, int day) {

this.year = year;

this.month = month;

this.day = day;

}

注意:

如果用戶沒有定義構(gòu)造方法,編譯器會生成一份默認的構(gòu)造方法,生成的默認構(gòu)造方法一定是無參的。

一旦用戶定義構(gòu)造方法,編譯器則不再生成構(gòu)造方法。

可以在無參構(gòu)造方法中通過this調(diào)用帶有三個參數(shù)的構(gòu)造方法但是this(參數(shù));必須是構(gòu)造方法中第一條語句,并且不能形成環(huán)。

?5、2默認初始化

首先,必須對局部變量和全局變量的區(qū)別有清晰認知。

局部變量:定義在方法中的變量。

全局變量:定義在類中方法外的變量,成員變量就是全局變量。

在上文中提出的第二個問題:為什么在使用時局部變量必須要初始化,而成員變量可以不用呢?

Date date = new Date(2024,6,2);

要搞清楚這個過程,就需要知道 new 關(guān)鍵字背后所發(fā)生的一些事情:?

在程序?qū)用嬷皇呛唵蔚囊粭l語句,在JVM層面需要做好多事情,下面簡單介紹下:

1. 檢測對象對應的類是否加載了,如果沒有加載則加載 2. 為對象分配內(nèi)存空間 3. 處理并發(fā)安全問題 比如:多個線程同時申請對象,JVM要保證給對象分配的空間不沖突

4. 初始化所分配的空間?被申請好以后,對象中包含的成員就已經(jīng)設置好了初始值.

5、3就地初始值

在聲明成員變量時,就直接給出初始值。

public class Date {

public int year = 1900;

public int month = 1;

public int day = 1;

public Date() {

}

public Date(int year, int month, int day) {

}

}

?注意:代碼編譯完成后,編譯器會將所有給成員初始化的這些語句添加到各個構(gòu)造函數(shù)中

本篇類和對象就學習到這里啦,是不是收獲滿滿呢,如果覺得文章寫的不錯,留下小紅心再走吧。后面學習面向?qū)ο缶幊陶Z言的三大特征,關(guān)注我,不要錯過哦!~

柚子快報邀請碼778899分享:開發(fā)語言 Java 類和對象

http://yzkb.51969.com/

好文閱讀

評論可見,查看隱藏內(nèi)容
大家都在看:

本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19001165.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄