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

主站蜘蛛池模板: 欧美综合激情| 欧美日韩精品一区二区视频| 欧美日韩在线亚洲国产人| 日本一区二区三区精品国产| 亚洲欧美日韩另类| 久久亚洲综合伊人| 亚洲aaa视频| 欧美精品亚洲精品日韩专| 欧美另类视频一区二区三区| 狠狠做深爱婷婷综合一区| 午夜精品区| 欧美激情第一区| 免费国产一级 片内射老| 97免费在线观看视频| 午夜日b视频| 狠狠色噜噜狠狠狠狠奇米777| 丁香五月激情图片| 精品国产91爱| 操美女免费网站| 992tv国产人成在线观看| 国产精品夜夜嗨视频免费视频| 精品伊人久久大香线蕉网站| 免费一级毛片| 玖玖免费视频在线观看| 69av在线| 青青久视频| www.99精品视频在线播放| 99ri精品视频在线观看播放| 国产一区在线视频观看| 91在线播放免费不卡无毒| 亚洲欧洲天堂色AV| 午夜性爽视频男人的天堂| 999精品色在线观看| 国产剧情一区二区| 色婷婷久久| 99精品高清在线播放| 麻豆精品久久久久久久99蜜桃| 色综合色国产热无码一| 国内精品久久久久鸭| www亚洲精品| 欧美一区精品| 在线观看国产精品第一区免费| 国产精品成| 欧美中文字幕在线播放| 日韩国产精品无码一区二区三区| 国产精品丝袜在线| 在线观看亚洲人成网站| 五月婷婷综合在线视频| 日韩在线成年视频人网站观看| 99九九成人免费视频精品| 99久久国产自偷自偷免费一区| 亚洲成人免费在线| 免费无码AV片在线观看中文| 丝袜无码一区二区三区| 91午夜福利在线观看精品| 亚洲一区二区约美女探花| 极品性荡少妇一区二区色欲| 国产无码高清视频不卡| 欧美在线网| 91毛片网| 色135综合网| 欧美日韩国产综合视频在线观看| 免费又黄又爽又猛大片午夜| 精品午夜国产福利观看| 久久这里只有精品66| 欧美中文字幕一区| 日韩欧美国产精品| 欧美日在线观看| 重口调教一区二区视频| 国产亚洲高清在线精品99| 国产乱子伦精品视频| 国内精品自在自线视频香蕉| 国产精品欧美在线观看| 中文字幕在线不卡视频| 色妺妺在线视频喷水| 91po国产在线精品免费观看| 美女无遮挡免费网站| 久久精品娱乐亚洲领先| 日本午夜在线视频| 在线播放91| 一级毛片高清| 任我操在线视频|