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

主站蜘蛛池模板: 国产午夜精品鲁丝片| 任我操在线视频| 日韩成人高清无码| 无码国内精品人妻少妇蜜桃视频| 青青草国产精品久久久久| 日本免费a视频| 久久99久久无码毛片一区二区 | 国产又粗又猛又爽视频| 亚洲欧洲日韩综合色天使| 国产精品自在在线午夜| 在线日韩一区二区| 思思热精品在线8| 大陆精大陆国产国语精品1024| 三级视频中文字幕| 国产高清毛片| 国产高清在线观看| 国产精品天干天干在线观看| 中美日韩在线网免费毛片视频| 在线看片中文字幕| 国产对白刺激真实精品91| 国内毛片视频| 国产精品污视频| 污网站在线观看视频| 国产亚洲视频免费播放| 丝袜国产一区| 亚洲性色永久网址| 亚洲精品免费网站| 天堂成人在线视频| 国产日本视频91| 看国产一级毛片| 亚洲AV无码精品无码久久蜜桃| 日韩人妻无码制服丝袜视频| 免费无码AV片在线观看中文| 亚洲Aⅴ无码专区在线观看q| 香蕉eeww99国产在线观看| 丰满人妻中出白浆| 亚洲αv毛片| 精品在线免费播放| 亚洲精品片911| 中文无码精品A∨在线观看不卡| 色亚洲激情综合精品无码视频 | 亚洲AV无码不卡无码| 福利国产在线| 亚洲AV成人一区国产精品| 欧美精品伊人久久| 亚洲国产精品日韩专区AV| 为你提供最新久久精品久久综合| 国产黑丝视频在线观看| 精品国产Ⅴ无码大片在线观看81| 国产精品网拍在线| 国产永久在线观看| 成年女人a毛片免费视频| 内射人妻无码色AV天堂| 香蕉视频在线精品| 亚洲第一视频免费在线| 国产内射一区亚洲| 久久综合激情网| 亚洲国产欧美国产综合久久| 中文字幕精品一区二区三区视频 | 一本色道久久88| 欧美国产在线看| 国产va在线观看免费| 亚洲中文字幕久久无码精品A| 亚洲成人播放| 72种姿势欧美久久久久大黄蕉| 91精品免费久久久| 亚洲欧美自拍中文| 亚洲国产成熟视频在线多多| 国产成人高清精品免费软件 | 亚洲视频无码| 欧美亚洲中文精品三区| 亚洲中文字幕97久久精品少妇| 伊人久久综在合线亚洲2019| 国产午夜人做人免费视频中文| 亚洲三级视频在线观看| 一本色道久久88综合日韩精品| 精品国产免费人成在线观看| 亚洲国产成人精品青青草原| 1024你懂的国产精品| 伊人久久久久久久| 91最新精品视频发布页| 九九视频免费看|