日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

java编写教师类输出_Java类和对象的区别和联系,超简单易懂!

發(fā)布時(shí)間:2024/9/19 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java编写教师类输出_Java类和对象的区别和联系,超简单易懂! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在面向?qū)ο蟮木幊陶Z言中,類和對(duì)象必然是最核心的特性之一。本文主要介紹Java中的類和對(duì)象。

示例

以班級(jí)成員為例,班上有小紅、小明、小李,還有王老師、張老師和魏老師,我們認(rèn)為他們都屬于“人類”的范疇。他們都有人類的基本屬性和行為。

細(xì)一步看,小紅小明還有小李,他們都是學(xué)生,因此我們說,他們都屬于學(xué)生,我們可以說這幾位同學(xué)都屬于學(xué)生類,他們都有學(xué)生類的基本屬性和行為。

王老師、張老師和魏老師呢?他們都屬于教師類,都擁有教師類的基本屬性和行為。

而我們通過代號(hào)指定的班級(jí)成員(如小紅或王老師),他們是一個(gè)具體的,而不是抽象的目標(biāo),我們視他們?yōu)橐粋€(gè)個(gè)的對(duì)象。

因此,我們可以得到這樣的一張圖:

看到這里,相信大家已經(jīng)對(duì)類和對(duì)象有了自己初步的概念。我是這樣看待類和對(duì)象的:類是對(duì)象的抽象,對(duì)象是類的示例。

類(Class)

Java中的關(guān)鍵字Class就是我們所稱的類。我認(rèn)為這個(gè)翻譯真的太妙了!我們來看看漢字中“類”字的定義(取自百度漢語):

1.許多相似或相同事物的綜合:種~。分~。同~。

2.用于性質(zhì)或特征相同或相似的事物:分成幾~。兩~性質(zhì)的問題。

3.類似:~人猿。~新星。畫虎不成反~狗。

4.姓。

以學(xué)生類為例,我們將所有學(xué)生都有的屬性和行為(方法)抽象出來,我們假設(shè)所有的學(xué)生都有

三個(gè)屬性:學(xué)號(hào)、姓名、年齡。

三個(gè)行為:唱、跳、Rap (現(xiàn)在的學(xué)生還真是多才多藝啊…)

于是,可以得到一個(gè)學(xué)生類:

public class Student {

/********* 以下為Student的屬性 **********/

int stuId; //學(xué)號(hào)

String name; //姓名

int age; //年齡

/********* 以下為Student的行為 **********/

//唱

public void sing(){

System.out.println(stuId + "號(hào)同學(xué)唱了一首歌!");

}

//跳

public void dance(){

System.out.println(name + "同學(xué)跳了一支舞!");

}

//Rap

public void rap(){

System.out.println("這位同學(xué)秀了一段Rap!");

}

}

至此,我們?cè)O(shè)計(jì)了一個(gè)簡(jiǎn)單的類,很簡(jiǎn)單吧!

Java中,類的設(shè)計(jì)其實(shí)是在給對(duì)象的創(chuàng)建作鋪墊,正如《Java核心技術(shù) 卷Ⅰ 》中定義的:

類是構(gòu)造對(duì)象的模板或藍(lán)圖

對(duì)象(Object)

如果是初次了解可能會(huì)覺得有些困難,加把勁!相信自己!

在示例的學(xué)生類中,就存在著三個(gè)對(duì)象:小紅、小李、小明。他們都擁有學(xué)生類所有的屬性和行為??梢哉f:有類才有對(duì)象,對(duì)象是基于類產(chǎn)生的。

1.對(duì)象創(chuàng)建(實(shí)例化)

在程序設(shè)計(jì)中,如果想要使用對(duì)象,就需要對(duì)它進(jìn)行創(chuàng)建:

new Student();

此處的new操作符,代表創(chuàng)建對(duì)象的任務(wù),那么要?jiǎng)?chuàng)建什么類型的對(duì)象呢?需要在new后邊表示出來,此處選擇我們之前設(shè)計(jì)好的Student類。

至此,程序創(chuàng)建了一個(gè)Student類的對(duì)象。其中,Student()是一個(gè)構(gòu)造方法(將在下文介紹,此處僅了解)

2.聲明變量

下一步,為了更好的區(qū)分創(chuàng)建的對(duì)象,我們會(huì)給對(duì)象取一個(gè)名字。在Java中,使用變量來給對(duì)象命名,同時(shí)需要告訴編譯器這個(gè)對(duì)象的類型(如同int a一般)

Student stu1;

至此,程序聲明了一個(gè)Student類型的變量stu1。這個(gè)變量有時(shí)也被稱為對(duì)象變量。

有關(guān)對(duì)象和對(duì)象變量的相關(guān)知識(shí),本文不詳細(xì)講述,有興趣的可以看下我的文章:對(duì)象和對(duì)象變量

3.變量賦值

再用我們創(chuàng)建好的對(duì)象,給相應(yīng)變量賦值

Student stu1 = new Student();

之后,對(duì)變量stu1進(jìn)行操作的操作,即是對(duì)該對(duì)象進(jìn)行的操作。這個(gè)變量stu1即成為了這個(gè)對(duì)象的引用變量,stu1可以視為對(duì)象的名稱。

至此,我們完成了對(duì)象創(chuàng)建的工作(有的地方也稱為對(duì)象的實(shí)例化或?qū)嵗瘜?duì)象),接下來開始嘗試進(jìn)行對(duì)象的相關(guān)使用操作。

4.對(duì)象操作

在Java中,我們使用“[ 對(duì)象名 ] + [ . ] + [ 屬性名 ]” 或 “[ 對(duì)象名 ] + [ . ] + [ 方法名 ]” 的方式來操作。

我們已經(jīng)知道,我們?cè)O(shè)計(jì)出的學(xué)生類都會(huì)一手Rap的絕活,現(xiàn)在我們想讓stu1來一段精彩Rap秀,于是可以這樣做

stu1.Rap();//輸出結(jié)果:這位同學(xué)秀了一段Rap!

那么,如果我們想看一下這個(gè)stu1的年齡呢,很自然的,我們會(huì)想要這樣做:

System.out.println(stu1.age);

會(huì)得到什么結(jié)果呢?

0

0?這顯然是不正確的,回響一下,我們?cè)趧?chuàng)建對(duì)象的時(shí)候,并沒有說明這個(gè)對(duì)象的屬性(學(xué)號(hào)、姓名、年齡)。所以程序并不知道這個(gè)對(duì)象的屬性值,它們都會(huì)被設(shè)置為默認(rèn)的初始值。Java中提供了創(chuàng)建對(duì)象并給對(duì)象賦值的特殊方法:構(gòu)造方法(也稱為構(gòu)造器)

構(gòu)造方法

Java類中存在這樣的方法,它的名字與類名相同,在創(chuàng)建對(duì)象時(shí)使用。它可在創(chuàng)建對(duì)象時(shí)定義對(duì)象的初始狀態(tài),用于構(gòu)造一個(gè)對(duì)象。它被稱為構(gòu)造方法(或構(gòu)造器)。同時(shí)可分為無參構(gòu)造器(如:Student())和有參構(gòu)造器(如:Student(String a,int b))。

在上文中,我們使用了 “new Student()” 這樣的操作,new代表創(chuàng)建對(duì)象的任務(wù),而由誰去執(zhí)行呢?由后邊的構(gòu)造器執(zhí)行,也就是說:創(chuàng)建對(duì)象的其實(shí)是由構(gòu)造器來構(gòu)造對(duì)象。

1.無參構(gòu)造器:不包含參數(shù)的構(gòu)造器

在Student類中,我們并沒有書寫出一個(gè)Student()構(gòu)造器,但依舊可以使用這個(gè)構(gòu)造器,這是因?yàn)?#xff1a;

在編寫一個(gè)類時(shí)未編寫構(gòu)造器時(shí),系統(tǒng)將會(huì)提供一個(gè)默認(rèn)的無參構(gòu)造器

在默認(rèn)的無參構(gòu)造器中,系統(tǒng)將會(huì)給對(duì)象的屬性設(shè)置默認(rèn)的初始值,此處int stuId = 0; String name = null; int age = 0;

因此,當(dāng)我們打印stu1.age的時(shí)候,輸出結(jié)果為0。

2.有參構(gòu)造器:有參數(shù)的構(gòu)造器

在無參構(gòu)造器中,并不能夠在創(chuàng)建對(duì)象時(shí)實(shí)現(xiàn)對(duì)其賦值。實(shí)際上,我們通常都會(huì)在設(shè)計(jì)類時(shí),書寫一個(gè)有參構(gòu)造器。如在Student類中,就可以包含這段代碼:

public Student(int a, String b, int c) {

stuId = a;

name = b;

age = c;

}

現(xiàn)在,假設(shè)要?jiǎng)?chuàng)建一個(gè):學(xué)號(hào)為101,姓名為小李,年齡為13的對(duì)象,可以采取這樣的方式:

Student stu1 = new Student(101, "小李", 13);

此時(shí),構(gòu)造器在創(chuàng)建對(duì)象時(shí),將按照我們輸入的數(shù)據(jù),自動(dòng)進(jìn)行對(duì)象的初始化賦值操作:

stuId = 001;

name = "小李";

age = 13;

至此,一個(gè)學(xué)號(hào)為101,姓名為小李,年齡為13的同學(xué)便創(chuàng)建好了。我們輸出測(cè)試一下:

System.out.println("我們創(chuàng)建了一個(gè):" + stu1.age + "歲的" + stu1.name + "同學(xué),他的學(xué)號(hào)為:" + stu1.stuId + "。");

輸出結(jié)果為:

我們創(chuàng)建了一個(gè):13歲的小李同學(xué),他的學(xué)號(hào)為:101。

實(shí)際上,當(dāng)我們書寫構(gòu)造器時(shí),系統(tǒng)將會(huì)自動(dòng)在構(gòu)造器的第一行填上 super(); 語句,代表調(diào)用父類的默認(rèn)無參構(gòu)造器。這里先只做了解,相關(guān)細(xì)節(jié)我會(huì)在后文中介紹。

總結(jié)一下:

1.構(gòu)造器與類同名

2.構(gòu)造器在new創(chuàng)建對(duì)象時(shí)使用

3.構(gòu)造器沒有返回值

4.構(gòu)造器可以有0個(gè)或多個(gè)參數(shù)

5.每個(gè)類可以有一個(gè)或多個(gè)構(gòu)造器

6.當(dāng)未指名構(gòu)造器時(shí),系統(tǒng)將自動(dòng)提供一個(gè)無參構(gòu)造器

至此,我們已經(jīng)完成了簡(jiǎn)單的類的設(shè)計(jì)和對(duì)象的創(chuàng)建,同時(shí)還嘗試了對(duì)象方法的使用。

下面貼出相關(guān)代碼:

Student.java

public class Student {

/********* 以下為Student的屬性 **********/

int stuId; //學(xué)號(hào)

String name; //姓名

int age; //年齡

public Student(){

}

public Student(int a, String b, int c) {

stuId = a;

name = b;

age = c;

}

/********* 以下為Student的行為 **********/

//唱

public void sing(){

System.out.println(stuId + "號(hào)同學(xué)唱了一首歌!");

}

//跳

public void dance(){

System.out.println(name + "同學(xué)跳了一支舞!");

}

//Rap

public void rap(){

System.out.println("這位同學(xué)秀了一段Rap!");

}

}

Test.java

public class Test {

public static void main(String[] args) {

//創(chuàng)建對(duì)象

Student stu1 = new Student(101, "小李", 13);

Student stu2 = new Student(102, "小紅", 12);

Student stu3 = new Student();

//對(duì)象引用

System.out.println("我們創(chuàng)建了一個(gè):" + stu1.age + "歲的" + stu1.name + "同學(xué)。他的學(xué)號(hào)為:" + stu1.stuId + "。");

stu2.dance();

stu3.rap();

}

}

總結(jié)

以上是生活随笔為你收集整理的java编写教师类输出_Java类和对象的区别和联系,超简单易懂!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。