IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育


Java構造器的使用方法

分享到:
           

    在Java程序中,每個類都必須至少有一個構造器(Constructor)。構造器是創建一個類的實例(對象)時需要調用的一個特殊的方法。

    利用構造器可以產生一個類的實例,并且提供了一個地方用來定義創建類的實例時都需要執行的初始化(initialize)代碼。構造器的定義語法如下:

    <modifier> <class_name> ( [<argument_list>] )
    {
        [<statements>]
    }

    從上面的語法中可以看出,它和類中的方法定義很類似:可以有訪問修飾符modifier、有自己的方法名稱、有參數列表、有方法體,因此,可以將構造器當成一個特殊的方法(在許多資料里面,就是將Constructor稱為構造方法),這個方法的作用就是用來產生一個類的實例。但是要認識到構造器與普通方法的區別,主要表現在以下3個方面。

    (1)修飾符:和方法一樣,構造器可以有任何訪問的修飾:public、protected、private或者沒有修飾。不同于方法的是,構造器不能有以下非訪問性質的修飾:abstract、final、native、static或者 synchronized。

    (2)返回值:方法能返回任何類型的值或者無返回值(void),構造器沒有返回值,也不需要void。

    (3)命名:構造器使用和類相同的名字,通常為名詞。而方法則不同,通常為描述一個操作的動詞。按照習慣,方法通常用小寫字母開始,而構造器通常用大寫字母開始。

    下面定義一個用來表示"美食"的類Food。

    源文件:Food.java

    public class Food {
        private String food_name ;
        public Food(String name){
            this.food_name = name;
        }
    }

    在Food類中,定義了一個屬性food_name,還定義了一個構造器,在構造器中傳入一個字符串類型的參數,將參數值賦給屬性food_name。此時,就可以通過這個構造器來實例化這個類,如下所示。

    Food myDinner = new Food("pizza");

    這樣,就得到了一個food_name名為"pizza"的實例,還可以再創建一個food_name名為"cola"的實例來搭配你的晚餐。

    如果在程序中沒有定義任何的構造器,則編譯器將會自動加上一個不帶任何參數的構造器。默認的構造器不帶任何的參數,也沒有"方法體"。

    通過上面的示例,在Food類中定義了一個帶一個參數的構造器。如果上面的Food類沒有定義構造器,則編譯器會自動加上一個構造器:

    public class Food {
        private String food_name ;
        public Food(){
        }
    }

    所以,這時可以用下面的語句來實例化這個類:

    Food myDinner = new Food();

    如果在程序中定義了構造器,則編譯器將不再提供默認的構造器,即使定義的構造器同樣沒有參數。如果再使用默認構造器的話,編譯器會報錯。

    使用Java 構造器中的一些注意事項:

    1.首先要注意的是Java的構造器并不是函數,所以他并不能被繼承,這在我們extends的時候寫子類的構造器時比較的常見,即使子類構造器參數和父類的完全一樣,我們也要寫super就是因為這個原因。

    2.構造器的修飾符比較的有限,僅僅只有public private protected這三個,其他的例如任何修飾符都不能對其使用,也就是說構造器不允許被成名成抽象、同步、靜態等等訪問限制以外的形式。

    3.因為構造器不是函數,所以它是沒有返回值的,也不允許有返回值。但是這里要說明一下,構造器中允許存在return語句,但是return什么都不返回,如果你指定了返回值,雖然編譯器不會報出任何錯誤,但是JVM會認為他是一個與構造器同名的函數罷了,這樣就會出現一些莫名其妙的無法找到構造器的錯誤,這里是要加倍注意的。

    4.構造器中一定不要創建自身的實例,否則會造成調用棧溢出錯誤。這個規則也適用于對象的實例變量,如果對象中有自身的引用,這個引用一定不能在定義中或者構造器中初始化。

    5.如果父類是一個抽象類,那通過調用父類的構造器,也可以將它初始化,并且初始化其中的數據。

    6.如果你要在構造器中調用一個方法時,將該方法聲明為private。

    對于這個規則是需要一些說明的,假使你的父類構造器中要調用一個非靜態方法,而這個方法不是private的又被子類所重載,這樣在實際創建子類的過程中遞歸調用到了父類的構造器時,父類構造器對這個方法的調用就會由于多態而實際上調用了子類的方法,當這個子類方法需要用到子類中實例變量的時候,就會由于變量沒有初始化而出現異常(至于為什么子類中的實例變量沒有初始化可以參考上邊的實例初始化過程),這是Java不想看到的情況。而當父類構造器中調用的方法是一個private方法時,多態就不會出現,也就不會出現父類構造器調用子類方法的情況,這樣可以保證父類始終調用自己的方法,即使這個方法中調用了父類中的實例變量也不會出現變量未初始化的情況(變量初始化總是在當前類構造器主體執行之前進行)

   熱點鏈接:

   1、Java驅動在智能嵌入式設備上更具優勢
   2、如何學習嵌入式?
   3、5種常用Android數據存儲方法
   4、怎么選擇Android培訓機構呢?

更多新聞>> 

主站蜘蛛池模板: 全国重点实验室--人民网| 河北热风机,电热暖风机,燃油暖风机,工业暖风机厂家安装,批发-河北嘉鹏冷暖风机有限公司 | 深圳专卖店设计,餐饮空间设计,酒店空间策划设计【左右高端人文空间设计公司】 | 行李快递安检机-便携式X光安检仪-行李安检机-液体-爆炸物探测仪-安天下安检设备 | 鑫金牛建设工程(苏州)有限公司| 食品油炸机_葱酥油炸机_蒜酥油炸机-山东世联机械厂家 | 永光机械-小型建筑机械领航者,公司专注于小型建筑、工程机械的研发与制造 | 首页 菲律宾海运双清|马尼拉海运双清|广州菲律宾专线|广州通达供应链有限公司 | 金蝶软件_金蝶湖南公司_长沙金蝶软件_精斗云软件_财务软件_进销存软件_云ERP软件_金蝶软件销售电话 | 碳化硅微粉_超细碳化硅微粉-潍坊凯华碳化硅微粉有限公司 | 暖气片,暖气片厂家,散热器,暖气片品牌-青岛瑞雪兆散热器有限公司 | 青岛熔喷过滤芯_青岛过滤器生产厂家_青岛净水滤料厂家_青岛净达过滤技术有限公司 | 中国焊接协会网站—中国焊接信息网;焊接行业最权威访问量最大的专业网站:焊接信息、焊接材料,焊接机器,焊接设备,焊机,焊材,辅助设备,焊机配件,仪器仪表,电动工具,钎焊,送丝机,表面处理,自动化专机,焊锡丝,助焊剂 | 芜湖藦卡机器人科技有限公司| 套丝机_钢管套丝机_螺栓套丝机S8139_螺纹钢套丝机_智能套丝机价格-瑞捷机械设备有限公司 | 无轴螺旋输送机_双无轴螺旋输送机_垃圾,污泥无轴螺旋输送机-新乡市大汉振动机械有限公司 | 新余市国信融资担保有限公司 | 水阻柜-液阻柜-高压开关柜-高压固态软启动柜-磁控软启动柜-电解粉-无功补偿柜-配电柜-襄阳源创电气 | 一氧化碳检测仪_氢气报警器_臭氧分析仪-深圳万安迪 | 苏州空气压缩机-无油涡旋空压机-真空泵价格-变频空压机-苏州赫利亚斯气体技术有限公司 | 水宜生-水宜生水杯价格-水宜生保温杯-【水宜生水杯官网】 | 润滑油展会 沈阳 南京 润滑油 展会 西安 润滑脂 中国国际润滑油 全国润滑油 汽配_中国国际润滑油、脂、养护用品及技术设备展览会 | 泰安兴润建材有限公司,泰安井盖定做,泰安警示桩定做,泰安雨水篦子定做,泰安操场篦子定做,泰安标志牌定做 | 辽宁正业集团云顶钢结构有限公司_葫芦岛云顶钢结构_葫芦岛轻钢彩板_葫芦岛钢结构工程 | 气泡式洗菜机-气泡喷淋清洗机-喷淋清洗风干线-诸城市迪凯工业装备有限公司 | 上海五相仪器仪表有限公司-鼓风干燥箱-拍击式无菌均质器生产厂家 | 山东胜王水处理设备有限公司,反渗透设备,纯净水设备,污水处理设备,SWS系列全自动钠离子交换器,纯净水设备报价,活性碳过滤器,多介质过滤器 | 液压尾管悬挂器,机械式尾管悬挂器价格,石油套管扶正器厂家,连续油管悬挂器,高压双塞水泥头,免钻塞注水泥分级箍,单塞套管水泥头价格,弹性套管扶正器,铸铝钢性扶正器,钢性套管扶正器厂家 | 首页--南京俊全科技有限公司,环保监测无人机,大疆无人机,农用无人机,植保无人机,巡检无人机,无人机环境监测仪,消防,无人机,航拍测绘,固定翼无人机,无人机电力巡检,四旋翼无人机 | 云南万通汽车学校【官方网站】 | 商用厨具|商用厨房设备|商用电磁灶-鲁宝厨业官方网站 | 深圳同步带轮_东莞齿轮加工_东莞同步轮厂家-东莞东城精胜机械配件厂 | 秦皇岛市华谊彩印有限公司 | 牡丹江网络公司,牡丹江网站建设专家|网络推广|网络营销|黑龙江艺通网络技术开发有限公司 | 珠海希玛林顺潮眼科医院| 深圳彩盒印刷-纸盒包装-不干胶标签印刷-深圳印刷厂家-深圳贝的印刷 | 中国国际精细化工展览会—官网| 山东万通液压股份有限公司-自卸车专用油缸,能源采掘设备油缸,机械装备用油缸,油气弹簧,工程机械油缸,液压元件 | 上海离婚律师|婚姻律师离婚纠纷咨询解答-金牌上海离婚律师团队 | 西安防静电地板_防静电地板厂家_防静电地板价格_OA网络地板_写字楼架空地板_机房墙板安装-红梅防静电地板厂家直销 | 真空电镀机_镀膜机厂家_离子镀膜机_磁控溅射镀膜设备_镀钛设备-江苏驰诚科技发展有限公司 |