摘要:用構(gòu)造器保證初始化構(gòu)造器采用與類相同的名稱。如果已經(jīng)定義了一個(gè)構(gòu)造器無(wú)論是否有參數(shù),編譯器就不會(huì)幫你自動(dòng)創(chuàng)建默認(rèn)構(gòu)造器關(guān)鍵字關(guān)鍵字只能在方法內(nèi)部使用,表示對(duì)調(diào)用方法的那個(gè)對(duì)象的引用。
5.1 用構(gòu)造器保證初始化
構(gòu)造器采用與類相同的名稱。構(gòu)造器是一種特殊類型的方法,因?yàn)樗鼪](méi)有返回值
當(dāng)創(chuàng)建一個(gè)對(duì)象時(shí),也就是給此對(duì)象分配到的存儲(chǔ)空間起了一個(gè)名字
5.2 方法重載
為了讓方法名相同而形式參數(shù)不同的構(gòu)造器同時(shí)存在,必須使用方法重載。每個(gè)重載的方法都必須有一個(gè)獨(dú)一無(wú)二的參數(shù)類型列表
基本類型能從一個(gè)“較小”的類型自動(dòng)提升至一個(gè)“較大”的類型
根據(jù)方法的返回值來(lái)區(qū)分重載方法是行不通的
5.3 默認(rèn)構(gòu)造器
如果你寫(xiě)的類中沒(méi)有構(gòu)造器,則編譯器會(huì)自動(dòng)幫你創(chuàng)建一個(gè)默認(rèn)的構(gòu)造器。如果已經(jīng)定義了一個(gè)構(gòu)造器(無(wú)論是否有參數(shù)),編譯器就不會(huì)幫你自動(dòng)創(chuàng)建默認(rèn)構(gòu)造器
5.4 this 關(guān)鍵字
this 關(guān)鍵字只能在方法內(nèi)部使用,表示對(duì)“調(diào)用方法的那個(gè)對(duì)象”的引用。只有當(dāng)需要明確指出對(duì)當(dāng)前對(duì)象的引用時(shí),才需要使用 this 關(guān)鍵字
除構(gòu)造器外,編譯器禁止在其他任何方法中調(diào)用構(gòu)造器
static 方法就是沒(méi)有 this 的方法,在 static 方法的內(nèi)部不能調(diào)用非靜態(tài)方法
5.5 清理:終結(jié)處理和垃圾回收
假定你的對(duì)象(并非使用 new)獲得了一塊“特殊”的內(nèi)存區(qū)域,由于垃圾回收器只知道釋放那些經(jīng)由new 分配的內(nèi)存,所以它不知道該如何釋放該對(duì)象的這塊“特殊”內(nèi)存。為了應(yīng)對(duì)這種情況,Java 允許在類中定義一個(gè)名為 finalize()的方法。它的工作原理“假定”是這樣的:一旦垃圾回收器準(zhǔn)備好釋放對(duì)象占用的存儲(chǔ)空間,將首先調(diào)用其 finalize()方法,并且在下一次垃圾回收動(dòng)作發(fā)生時(shí),才會(huì)真正回收對(duì)象占用的內(nèi)存
對(duì)象可能不被垃圾回收;垃圾回收并不等于“析構(gòu)”
垃圾回收只與內(nèi)存有關(guān),使用垃圾回收器的唯一原因是為了回收程序不再使用的內(nèi)存
之所以要有 finalize(),是由于在分配內(nèi)存時(shí)可能使用了類似 C 語(yǔ)言的做法
System.gc()用于強(qiáng)制進(jìn)行終結(jié)動(dòng)作
5.6 成員初始化
Java 盡力保證:所有成員在使用之前都能得到恰當(dāng)?shù)某跏蓟?br>
類的每個(gè)基本數(shù)據(jù)成員保證都會(huì)有一個(gè)初始值
在類里定義一個(gè)對(duì)象引用時(shí),如果不將其初始化,此引用就會(huì)得到一個(gè)特殊值 null
5.7 構(gòu)造器初始化
無(wú)法阻止自動(dòng)初始化的進(jìn)行,它將在構(gòu)造器被調(diào)用之前發(fā)生
變量定義的先后順序決定了初始化的順序
靜態(tài)數(shù)據(jù)的初始化:無(wú)論創(chuàng)建多少個(gè)對(duì)象,靜態(tài)數(shù)據(jù)都只占用一份內(nèi)存區(qū)域。static 關(guān)鍵字不能應(yīng)用于局部變量,因此他只能作用于域。如果一個(gè)域是靜態(tài)的基本類型域,且也沒(méi)有對(duì)它進(jìn)行初始化,那么它就會(huì)獲得基本類型的標(biāo)準(zhǔn)初值;如果它是一個(gè)對(duì)象引用,那么它的默認(rèn)初始化值就是 null
靜態(tài)初始化只有在必要時(shí)才進(jìn)行
初始化的順序是先靜態(tài)對(duì)象(如果它們尚未因前面的對(duì)象創(chuàng)建過(guò)程而被初始化),而后是“非靜態(tài)”對(duì)象
構(gòu)造器可以看成靜態(tài)方法
靜態(tài)初始化動(dòng)作只進(jìn)行一次
5.8 數(shù)組初始化
編譯器不允許指定數(shù)組的大小
在 Java 中可以將一個(gè)數(shù)組賦值給另一個(gè)數(shù)組
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/64281.html
摘要:流程控制概述流程控制語(yǔ)句種類順序選擇循環(huán)選擇結(jié)構(gòu)結(jié)構(gòu)結(jié)構(gòu)多重結(jié)構(gòu)嵌套結(jié)構(gòu)結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)循環(huán)循環(huán)循環(huán)嵌套多重結(jié)構(gòu)與嵌套結(jié)構(gòu)多重結(jié)構(gòu)例子使用多重結(jié)構(gòu)進(jìn)行成績(jī)判斷成績(jī)大于等于分,輸出優(yōu)成績(jī)大于等于分且小于分,輸出良成績(jī)大于等于分且小 Lecture1 流程控制概述 流程控制語(yǔ)句種類:順序、選擇、循環(huán);選擇結(jié)構(gòu)--if結(jié)構(gòu)、if-else結(jié)構(gòu)、多重if結(jié)構(gòu)、嵌套if結(jié)構(gòu)、switch結(jié)構(gòu);循...
摘要:封裝的實(shí)現(xiàn)封裝將類的某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問(wèn),只能通過(guò)該類提供的方法來(lái)實(shí)現(xiàn)對(duì)隱藏信息的操作和訪問(wèn)即隱藏對(duì)象信息的同時(shí)要留出訪問(wèn)的接口封裝的特點(diǎn)只能通過(guò)規(guī)定的方法訪問(wèn)數(shù)據(jù)隱藏類的實(shí)例細(xì)節(jié),方便修改和實(shí)現(xiàn)封裝代碼的實(shí)現(xiàn)修改屬 Lecture1 封裝的實(shí)現(xiàn) 封裝:將類的某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問(wèn),只能通過(guò)該類提供的方法來(lái)實(shí)現(xiàn)對(duì)隱藏信息的操作和訪問(wèn)(即隱...
摘要:初始面向?qū)ο竺嫦驅(qū)ο箨P(guān)注現(xiàn)實(shí)存在的事物的各方面信息,從對(duì)象的角度出發(fā),根據(jù)事物的特征進(jìn)行程序設(shè)計(jì)類類是模子,是一個(gè)抽象的概念,確定對(duì)象將會(huì)擁有的特征屬性和行為方法,是具有相同屬性和方法的一組對(duì)象的集合對(duì)象對(duì)象是類的實(shí)例化表現(xiàn),是一個(gè)用來(lái)描述 Lecture1 初始面向?qū)ο? 面向?qū)ο螅宏P(guān)注現(xiàn)實(shí)存在的事物的各方面信息,從對(duì)象的角度出發(fā),根據(jù)事物的特征進(jìn)行程序設(shè)計(jì) 類:類是模子,是一個(gè)抽象...
摘要:四上的操作看五格式化輸出運(yùn)用和語(yǔ)言很相似和是等價(jià)的喲類格式化說(shuō)明符轉(zhuǎn)換六正則表達(dá)式網(wǎng)上教程學(xué)七掃描輸入新增了類。 一、不可變String String類型的對(duì)象是不可變的,所有的改變實(shí)際上都是創(chuàng)建了一個(gè)新的String對(duì)象,另外當(dāng)String作為傳入?yún)?shù)的時(shí)候,其實(shí)實(shí)際上傳入的是這個(gè)引用的一個(gè)拷貝,這個(gè)方法結(jié)束了之后這個(gè)傳入的引用也就消失了,原來(lái)的那個(gè)String不會(huì)受到方法內(nèi)的影響而...
摘要:迭代器解決了這個(gè)問(wèn)題。刪除后于是我們可以寫(xiě)一個(gè)方法,接受一個(gè)類型,然后讓他調(diào)用方法,這就不需要考慮這個(gè)是個(gè)還是了,也就是說(shuō),可以將遍歷容器的操作與序列底層的結(jié)構(gòu)分離,迭代器統(tǒng)一了對(duì)容器類的訪問(wèn)方式。十二和兩種遍歷的方法,與迭代器方法。 一、泛型和類型安全的容器 package tij.hoding; import java.util.ArrayList; public class ...
閱讀 1668·2021-11-02 14:48
閱讀 3755·2019-08-30 15:56
閱讀 2832·2019-08-30 15:53
閱讀 3266·2019-08-30 14:09
閱讀 3178·2019-08-30 12:59
閱讀 2916·2019-08-29 18:38
閱讀 2757·2019-08-26 11:41
閱讀 2301·2019-08-23 16:45