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

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:學(xué)習(xí) JAVA篇之類和對象

柚子快報(bào)激活碼778899分享:學(xué)習(xí) JAVA篇之類和對象

http://yzkb.51969.com/

目錄

一. 面向?qū)ο?/p>

1.1 面向?qū)ο蠛兔嫦蜻^程

二. 類的定義和使用

2.1 什么是類

2.2 類的定義格式

?三. 類的實(shí)例化

四. this引用?

4.1 this引用的作用

?五. 構(gòu)造方法

5.1 構(gòu)造方法重載

5.2 通過this調(diào)用其他構(gòu)造方法

?5.3 默認(rèn)初始化

結(jié)語

一. 面向?qū)ο?/p>

Java

是一門面向?qū)ο蟮木幊陶Z言

(Object Oriented Program

,簡稱OOP),面向?qū)ο缶幊痰暮诵乃枷胧菍?shù)據(jù)(屬性)和操作數(shù)據(jù)的方法封裝成一個(gè)整體,即對象。對象之間通過信息傳遞來相互協(xié)作,從而實(shí)現(xiàn)特定的功能。

1.1 面向?qū)ο蠛兔嫦蜻^程

面向過程注重解決問題的步驟和操作,面向?qū)ο笫前褬?gòu)成問題事務(wù)分解成各個(gè)對象,建立對象的目的不是為了完成一個(gè)步驟,而是為了描敘某個(gè)事物在整個(gè)解決問題的步驟中的行為。

舉例說明:將大象裝進(jìn)冰箱

(1) 面向過程

?

第一步:打開冰箱

第二步:將大象塞進(jìn)冰箱

第三步:關(guān)上冰箱

那么以上三個(gè)步驟就是就是把大象塞進(jìn)冰箱的過程,我們注重這一件事的過程,那么這種解決問題的方法我們就叫做面向過程。

(2) 面向?qū)ο?/p>

?

那么此時(shí)只有人、大象、冰箱三個(gè)對象,將大象裝進(jìn)冰箱的整個(gè)過程是:人、大象、冰箱三個(gè)對象之間交互完成的,我們不需要關(guān)心大象是如何被裝進(jìn)冰箱的,那么這種不關(guān)注過程,通過對象之間的交互完成的解決問題的方式我們叫做面向?qū)ο蟆?/p>

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

二. 類的定義和使用

什么是類呢?我們一起來簡單認(rèn)識一下

2.1 什么是類

類就是用來對一個(gè)對象進(jìn)行描述的,主要描述該對象有哪些屬性,哪些功能等

例如:學(xué)生

屬性:年齡、姓名、性別......

行為:上學(xué)、吃飯、考試......

?那么我們知道了類的作用,那么該如何定義類呢?

2.2 類的定義格式

在JAVA中定義類的時(shí)候需要用到class關(guān)鍵字,語法格式如下:

class ClassName {? ? //ClassName表示類的名稱

? ? ? ? field;? ? ? ?//表示成員變量(屬性)

? ? ? ? method;? ? ? //表示行為或者成員方法 }

?那么我們來創(chuàng)建一個(gè)上述提到的學(xué)生類:

public class Student {

public String name;//學(xué)生姓名

public int age ;//學(xué)生年齡

public int score ;//學(xué)生成績

public void eat()

{

System.out.println("正在吃飯......");

}

public void exam()

{

System.out.println("正在考試......");

}

}

那么一個(gè)簡單的學(xué)生類就創(chuàng)建好了,里面描述了學(xué)生的屬性和行為。

定義類的注意事項(xiàng):

1. 類型采用大駝峰定義

2.成員前寫法統(tǒng)一為public ,后面會介紹其他的訪問修飾限定符

?三. 類的實(shí)例化

通過上述描述我們知道 類 只是用來對一個(gè)實(shí)體進(jìn)行描述的,通過實(shí)例化才能夠創(chuàng)造出對象,那么在JAVA中我們該如何實(shí)例化出一個(gè)對象呢?這時(shí)候就要用到new這個(gè)關(guān)鍵字來進(jìn)行實(shí)例化

以上述的學(xué)生類示范:

?

?

public class Student {

public String name;//學(xué)生姓名

public int age ;//學(xué)生年齡

public int score ;//學(xué)生成績

public void eat()

{

System.out.println(name+"正在吃飯......");

}

public void exam()

{

System.out.println(name+"正在考試......");

}

public static void main(String[] args) {

Student student1=new Student();

student1.name="張三";

student1.age=10;

student1.score=99;

student1.eat();

student1.exam();

}

}

?

?

?類實(shí)例化的注意事項(xiàng):

1. new

關(guān)鍵字用于創(chuàng)建一個(gè)對象的實(shí)例

.

2. 使用

.

來訪問對象中的屬性和方法

.

3. 同一個(gè)類可以創(chuàng)建多個(gè)實(shí)例對象

四. this引用?

接下來我們看看這個(gè)日期類的代碼和運(yùn)行結(jié)果,讓我們帶著問題來探索this的用法。

?

?

public class Day {

public int year;

public int month;

public int day;

public void setDay(int year, int month, int day){

year = year;

month = month;

day = day;

}

public void printDay(){

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

}

public static void main(String[] args) {

Day d1 = new Day();

Day d2 = new Day();

Day d3 = new Day();

d1.setDay(2020,9,15);

d2.setDay(2020,9,16);

d3.setDay(2020,9,17);

d1.printDay();

d2.printDay();

d3.printDay();

}

}

?

?

?通過運(yùn)行結(jié)果可以看見,我們明明利用setDay方法d1、d2、d3都進(jìn)行的賦值,那么打印出來的結(jié)果為什么還是0/0/0呢?

第一個(gè)問題:形參名與成員變量名相同時(shí),形參究竟是給成員變量賦值呢還是形參自己對自己賦值呢?

第二個(gè)問題:此時(shí)我們的d1、d2、d3都在調(diào)用printDay方法,該方法是如何知道打印的是哪個(gè)對象的數(shù)據(jù)呢?

那么帶著這兩個(gè)問題,我們一起來探索一下this的用法。

4.1 this引用的作用

this

引用指向當(dāng)前對象

(

成員方法運(yùn)行時(shí)調(diào)用該成員方法的對象),那么我們來看一下this是怎么解決上述問題的:

問題一:

public void setDay(int year, int month, int day){

this.year = year;

this.month = month;

this.day = day;

}

通過運(yùn)行結(jié)果可以看見此時(shí)的結(jié)果是正確的,這是因?yàn)橹暗拇a中沒有加上this引用,那時(shí)的賦值操作是

形參自己對自己進(jìn)行賦值,成員變量的值還是默認(rèn)值。而此時(shí)我們加上了this引用,那么此時(shí)帶this引用的year、month、day就是當(dāng)前類的成員變量,

此時(shí)的賦值操作就是形參對成員變量進(jìn)行賦值。

問題二:

public void printDay(){

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

}

?printDay方法通過this引用就能夠知道打印的是當(dāng)前對象的數(shù)據(jù)。

?總結(jié): ? ? ? ? 1. 當(dāng)形參名和成員變量名字相同時(shí),通過this引用表示該變量是當(dāng)前類的成員變量

? ? ? ? 2.?this是“成員方法”第一個(gè)隱藏的參數(shù),編譯器會自動傳遞,在成員方法執(zhí)行時(shí),編譯器會負(fù)責(zé)將調(diào)用成員方法對象的引用傳遞給該成員方法,this負(fù)責(zé)來接收。

?五. 構(gòu)造方法

構(gòu)造方法是一個(gè)特殊的成員方法,方法名必須與類名相同,構(gòu)造方法可以直接給成員變量進(jìn)行初始化

public class Day {

public int year;

public int month;

public int day;

public Day(int year,int month,int day)

{

this.year=year;

this.month=month;

this.day=day;

}

public void printDay(){

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

}

public static void main(String[] args) {

Day d1=new Day(2024,10,10);

d1.printDay();

}

}

?注意事項(xiàng):

1.

名字必須與類名相同

2.

沒有返回值類型,設(shè)置為

void

也不行

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

4. 如果不寫構(gòu)造方法,編譯器會主動添加一個(gè)不帶參數(shù)的構(gòu)造方法

public class Day {

public int year;

public int month;

public int day;

public Day()

{

......

}

public void printDay(){

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

}

}

?那么如果我們自己寫了一個(gè)構(gòu)造方法,那么編譯器就不會自動生成構(gòu)造方法,正所謂救急不救窮。

5.1 構(gòu)造方法重載

我們可以定義多個(gè)不同參數(shù)的構(gòu)造方法,這樣就實(shí)現(xiàn)了構(gòu)造方法的重載,方便用于多種情況

public class Day {

public int year;

public int month;

public int day;

public Day()

{

}

public Day(int year,int month,int day)

{

this.year=year;

this.month=month;

this.day=day;

}

public void printDay(){

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

}

}

5.2 通過this調(diào)用其他構(gòu)造方法

.

構(gòu)造方法中,可以通過

this

調(diào)用其他構(gòu)造方法來簡化代碼

public class Day {

public int year;

public int month;

public int day;

public Day()

{

this(2020,10,31);

}

public Day(int year,int month,int day)

{

this.year=year;

this.month=month;

this.day=day;

}

public void printDay(){

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

}

public static void main(String[] args) {

Day d1=new Day();

d1.printDay();

}

}

注意事項(xiàng):

1.?this(...)必須是構(gòu)造方法中第一條語句

2. 構(gòu)造方法之間不能互相調(diào)用形成環(huán)

?5.3 默認(rèn)初始化

在使用局部變量之前是必須進(jìn)行初始化的,否則會進(jìn)行報(bào)錯(cuò)。但是使用成員變量時(shí),可以不進(jìn)行初始化,當(dāng)我們實(shí)例化一個(gè)對象后,對象空間被申請好之后,對象中包含的成員其實(shí)已經(jīng)設(shè)置好了初始值。

結(jié)語

以上就是部分類和對象的內(nèi)容,希望大家看完本篇后能夠理解類和對象的概念,在此小新感謝大家的觀看?。?!

?

柚子快報(bào)激活碼778899分享:學(xué)習(xí) JAVA篇之類和對象

http://yzkb.51969.com/

好文推薦

評論可見,查看隱藏內(nèi)容

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

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

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

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄