999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Java構造方法解析

2016-03-13 20:39:54黃艷峰
河南科技 2016年3期

黃艷峰 陳 濤

(商丘師范學院 計算機與信息技術學院,河南 商丘 476000)

?

Java構造方法解析

黃艷峰陳濤

(商丘師范學院計算機與信息技術學院,河南商丘476000)

摘要:構造方法是面向對象程序中在創建對象時系統自動調用的一個方法,與其他方法相比,該方法在語法和應用上都具有一些特殊性。基于此,重點介紹Java語言中構造方法的特點、定義及使用方法。

關鍵詞:Java;構造方法;面向對象

1 構造方法的引入

Java是面向對象的語言,類是構成Java程序的基本單元。面對一個特定的問題領域,需要抽象出該問題領域的對象,然后根據問題領域的需要,從這些對象身上抽象出屬性和方法,把它們包裝成類。而類只是對象的一個模板,要想實現其具體的功能,還要創建出該類的對象。創建一個類的對象的語法是:類名對象名=new構造方法([參數1,參數2,…….]);這條語句在執行時包含3個步驟:①在棧中為該對象名即對象的引用分配內存,也就是類名對象名這部分執行的操作;②利用new運算符在堆內存中為Java對象的各個屬性分配內存,并把該內存的首地址賦值給對象名,即=new這部分執行的操作;③調用構造方法完成對象的初始化,給對象的各個屬性賦初值。一個對象可能包含若干個屬性,需要若干條賦值語句,把這若干個賦初值的語句組合成一個方法在創建對象時一次性執行,這個方法就是構造方法[1]。

2 構造方法的使用

2.1構造方法的特點及定義

構造方法是一種比較特殊的方法,其特殊性主要體現在以下幾個方面:①構造方法的方法名與類名相同[2];②構造方法沒有返回值類型,在構造方法的方法體里不能出現return語句;③構造方法的調用通常在創建對象時由系統自動調用;④構造方法通常用來初始化類的非靜態屬性。

一個類中可以定義多個構造方法,既可以不帶參數也可以帶參數,如:

class Student{

String name;

int age;

Student(){

name="張三";

age=21;}}

public class TestConstructor{

public static void main(String[]args){

Student s1=new Student();

Student s2=new Student();}}

假如一個類中只定義一個無參的構造方法,如上例,那么創建出來的所有對象s1、s2的屬性值都一樣,這顯然不符合實際,為了創建出不同屬性值的對象,我們需要添加多個不同參數的構造方法,

class Student{

String name;

int age;

Student(){

name="張三";

age=21;}

Student(String n){

name=n;

age=23;}

Student(String n,int a){

name=n;

age=a;}}

再分別創建對象Student s1=new Student(“張三”,21);Student s2=new Student(“李四”,23);通過傳進不同的參數值,就可以創建出不同屬性值的對象。一個類中可以包含多個不同的構造方法,在一個構造方法里面可以調用同類其他的構造方法,對同類構造方法的調用,不能使用構造方法名,而是使用關鍵字this,如上例可以改成如下形式:

class Student{

String name;

int age;

Student(String n,int a){

name=n;

age=a;}

Student(String n){

this(n,23)}

Student(){

this(“張三”,21);}}

如果在一個類中沒有定義任何一個構造方法,則系統會自動創建一個參數為空,方法體也為空的默認構造方法,以滿足創建對象的需要,但是如果在程序中一旦定義了一個構造方法,系統不會再創建默認的構造方法。

2.2子類對父類構造方法的調用

構造方法不能繼承,但是在初始化子類對象時,為了確保繼承自父類的所有屬性被初始化,則在執行子類構造方法之前,一定要先對父類的構造方法進行調用[3]。子類對父類構造方法的調用分2種情況,一種是默認調用,即程序中不體現出來,這種情況下只能調用父類無參的構造方法,如果父類中沒有定義無參的構造方法(系統也不創建),那么一定要顯式調用。對父類構造方法的調用同樣也不能用方法名,而是用super()形式調用。如:

class Art{

Art(){

System.out.println("Art()constructor");}}

class Drawing extends Art{

Drawing(){

System.out.println("Drawing()constructor");}}c

public class Cartoon extends Drawing{

Cartoon(){

System.out.println("Cartoon()constructor");}

public static void main(String[]args){

Cartoon x=new Cartoon();}}

本例的輸出結果是Art()constructor,Drawing()con?structor,Cartoon()constructor,很顯然,在Cartoon類的構造方法中并沒有調用父類Drawing的構造方法,同樣在Drawing的構造方法中也沒有調用其父類Art的構造方法,這里對父類構造方法的調用是隱含的,是系統自動調用的。而如果把Drawing類的構造方法修改成Drawing (int i){System.out.println("Drawing()constructor");,則在Cartoon的構造方法中會提示找不到符號Drawing()的錯誤。顯然,這里系統調用的是Drawing(),即父類無參的構造方法。而此時Drawing中的帶參數的構造方法需要在Cartoon類中用super(6)(帶一個任意整數的參數,如1,2,3,…….)來顯式調用。

3 結語

構造方法是一種特殊的方法,主要完成對象初始化的工作,為了滿足創建對象時的不同需求,在同一個類中可以定義多個不同參數的構造方法,即對構造方法進行重載,為了在子類中完成繼承自父類的屬性的初始化,在創建子類對象時需要首先調用父類的構造方法。

參考文獻:

[1]印旻.Java語言與面向對象程序設計(第2版)[M].北京:清華大學出版社,2013.

[2]潘浩.Java程序設計教程[M].北京:北京郵電大學大學出版社,2008.

[3]Y.Daniel Liang.Java語言與面向對象程序設計基礎篇[M].李娜譯.北京:機械工業出版社,2012.

中圖分類號:TP312

文獻標識碼:A

文章編號:1003-5168(2016)02-0037-02

收稿日期:2016-01-27

作者簡介:黃艷峰(1977-),女,副教授,研究方向:計算機應用。

Analysis of Java Constructor

Huang YanfengChen Tao
(College of Computer and Information Technology,Shanqiu Normal University,Shangqiu Henan 476000)

Abstract:Construcor is a method that is automatically called when the object is created in the object orient?ed program,and the method has some special characteristics in grammar and application compared with oth?er methods.Based on this,this paper mainly introduced the characteristics,definition and using method in Java language.

Keywords:Java;constructor;object-oriented

主站蜘蛛池模板: 91福利国产成人精品导航| 亚洲人成影院在线观看| AV网站中文| 国产微拍一区二区三区四区| 欧美成人一级| 成人免费网站久久久| 在线播放91| 久久久久青草大香线综合精品| 在线观看欧美精品二区| 天天做天天爱天天爽综合区| 国产欧美日韩91| 色老头综合网| 国产精品成人一区二区| 欧美成人精品在线| 五月天在线网站| 在线日韩日本国产亚洲| 91精品国产自产在线观看| 香蕉综合在线视频91| 欧美成人影院亚洲综合图| 欧美日本在线观看| 精品1区2区3区| 亚洲人成色在线观看| 美女无遮挡免费网站| 无码中文字幕加勒比高清| 日韩精品无码不卡无码| 欧美成人A视频| 国产女人爽到高潮的免费视频 | 欧洲精品视频在线观看| 久久精品国产免费观看频道| 五月婷婷激情四射| 亚洲成人一区二区三区| 日本福利视频网站| 国产迷奸在线看| 欧美视频在线播放观看免费福利资源| 一本一本大道香蕉久在线播放| 凹凸精品免费精品视频| 国产黄色爱视频| 欧美综合在线观看| 久久一本日韩精品中文字幕屁孩| 久久人妻系列无码一区| 亚洲日本精品一区二区| 91成人在线观看| 国产免费精彩视频| 日韩精品无码一级毛片免费| 毛片久久久| 亚洲综合在线网| 91亚洲影院| 亚洲国产日韩在线观看| 精品伊人久久久香线蕉| 狠狠久久综合伊人不卡| 自拍偷拍欧美| 国产不卡国语在线| 91在线国内在线播放老师 | 日韩国产黄色网站| 极品尤物av美乳在线观看| 韩国福利一区| 亚洲小视频网站| 欧美日韩激情在线| 啪啪免费视频一区二区| 真人高潮娇喘嗯啊在线观看| 日本久久网站| 国产国产人成免费视频77777 | 欧美国产菊爆免费观看 | 国产91高跟丝袜| 亚洲妓女综合网995久久| 国产在线精品99一区不卡| 亚洲第一成年免费网站| 国产激情无码一区二区免费| 天天操天天噜| 国产99在线观看| 国产白丝av| 直接黄91麻豆网站| 中文字幕在线日韩91| 精品国产aⅴ一区二区三区| 中国一级毛片免费观看| 国产特级毛片aaaaaa| 久久久黄色片| 77777亚洲午夜久久多人| 真实国产乱子伦高清| 免费高清毛片| 亚洲第一视频网站| 亚洲一区毛片|