初始化與清理(1)
用構造器確保初始化
- 構造器的名稱必須與類名完全相同。
- 類的構造器相當於一個建立物件時執行的方法,當不寫構造器的時候,會預設為類提供一個無參構造器。
- 當寫了一個有引數的構造器的時候,無參構造器便不會預設提供了,如果有需要的話,還是要再寫。
class Rock {
//無參構造器
Rock(){}
//有引數構造方法
Rock(String str) {
//這相當於呼叫了上面的無引數構造器,構造器之間可以互相呼叫,不過要再構造器方法中的第一行程式碼中呼叫,並且要避免死迴圈。這裡面也涉及到了方法過載,後面再說。
this();
System.out.println(str );
}
}
方法過載
所謂方法過載,也就是有多個方法,但是方法之間的名稱相同,但是引數不一樣,也是為了讓同個方法表示不同的意義。
class Tree {
int height;
public void info() {
System.out.println("this tree's height is"+this.height);
}
public void info(int height) {
System.out.println("this tree's height is"+height);
}
}
區分過載方法
每個過載的方法都必須有一個獨一無二的引數型別列表,要麼是個數不一樣,要麼是同順序的引數的型別不一樣。不能用返回型別區分過載的方法。因為如果引數列表也一樣的話,呼叫方法的時候, 編譯器無法判斷你呼叫的到底你哪個方法。
涉及基本型別的過載
基本型別能從一個較小的型別自動提升至一個較大的型別。
class PrimitiveOverloading {
void f(byte x) {
System.out.println("byte");
}
void f(int x) {
System.out.println("int" );
}
void f(double x) {
System.out.println("double");
}
public void static main(String[] args) {
//結果:int;因為直接整形數預設為int,所以呼叫的是第二個方法,當沒有第二個方法的時候,會向上提升,這時結果就會是double;
f(1);
//結果:byte;
f((byte)1);
}
}
this關鍵字
this的就是這個的意思,指的是當前物件。
public class Apple {
int weight;
public void setWeight(int weight) {
//這裡指的當前物件的weight屬性
this.weight=weight;
}
public void provide() {
//把當前物件的引用作為引數使用
Animal.eat(this);
}
}
static的含義
在static方法的內部不能呼叫非靜態方法,反過來可以。因為static方法很像全域性方法,static方法不算“面向物件”的。
相關推薦
初始化與清理(1)
用構造器確保初始化 構造器的名稱必須與類名完全相同。 類的構造器相當於一個建立物件時執行的方法,當不寫構造器的時候,會預設為類提供一個無參構造器。 當寫了一個有引數的構造器的時候,無參構造器便不會預設提供了,如果有需要的話,還是要再寫。 class Ro
RxEasyHttp網路庫初始化與配置(二)
全域性配置 一般在 Aplication,或者基類中,只需要呼叫一次即可,可以配置除錯開關,全域性的超時時間,公共的請求頭和請求引數等資訊 初始化需要一個Context,最好在Application#onCreate()中初始化,記得在manifes
Java程式設計思想(五)—— 初始化與清理
一、用構造器確保初始化 C++引入了構造器的概念,這是一個在建立物件時被自動呼叫的特殊方法。Java中也採用了構造器,並額外提供了“垃圾回收器”,對於不再使用的記憶體資源,垃圾回收器會自動將其釋放。 &n
JAVA程式設計思想學習筆記(四)初始化與清理
初始化與清理 用構造器確保初始化 JAVA採用和C++相同的方案,即構造器採用與類相同的名稱,在建立物件時,將會為物件分配儲存空間,並呼叫同名的構造器,達到確保初始化的目的。 構造器是一種特殊的方法,它是沒有返回值的,與返回值為空(void)不同。 另外,如果自己沒有實現構造器,就會
初始化與清理之二(清理)
前言 初始化往往是程式設計師呼叫方法前所必須做的事情,但物件用完之後的清理卻常常忽略。對於清理,java中提供了垃圾回收器機制,通常情況下不必由程式設計師關心如何清理的問題;垃圾回收機制在便利的同時也引發兩個問題:一是垃圾回收器只能回收由new分配的記憶體空間
學習筆記(一)初始化與清理
自己整理的,可能有些地方不對,不喜勿噴。 1.靜態方法中不能呼叫非靜態方法和非靜態變數,當類沒有初始化的時候就可以使用靜態方法,而非靜態變數還未產生。呼叫靜態方法時推薦直接呼叫,不需建立物件。 2.如果在方法裡想用this關鍵詞時,必須先在類中定義成員變數,當成員變數和方法
java基礎學習(四)初始化與清理
1、用構造器確保初始化 java中通過提供構造器,可確保每個物件都會得到初始化。建立物件時,如果其類具有構造器,那java會在使用者操作物件之前自動呼叫相應的構造器,從而保證初始化的進行。 構造器的名稱必須與類名完全相同。避免與成員名稱相沖突,
lixuxmint系統定制與配置(1)-系統初始配置
visible 可能 white div 當前 圖片 num lines 引導 小書匠 Linux 經常安裝新的系統,每次安裝完都得去搜索一邊如何將系統部署為之前的環境,不僅耗費時間,還不一定能弄回之前的環境,現在把從裸機->到工作環境的系統定制及配置過程記錄下來
python初始化list列表(1維、2維)
修改 但是 init 二維數組 方法 for range row lis 1.初始化遞增的list: list1 = list(range(10))#print list1#[0,1,2,...,9] 2.初始化每項為0的一維數組: list2 = [0] * 5#prin
2018-1-31第五章初始化與清理
“傷感的一天,有個學妹離開了,雖然不認識,但是同為96年的學生,就。。。要珍惜,要好好學習,要鍛鍊身體。” ===清理: 1.物件可能不被垃圾回收。 2.垃圾回收不等於“析構”。 3.垃圾回收只與記憶體有關
網路權重初始化方法總結(下):Lecun、Xavier與He Kaiming
目錄 權重初始化最佳實踐 期望與方差的相關性質 全連線層方差分析 tanh下的初始化方法 Lecun 1998 Xavier 2010 ReL
Chapter5_初始化與清理_用構造器初始化
需要 構造 相同 log 編譯 創建對象 rgs div 機制 接下來進入第五章,java中初始化和清理的問題,這是兩個涉及安全的重要命題。初始化的功能主要是為庫中的構件(或者說類中的域)初始化一些值,清理的功能主要是清除程序中不再被需要的元素,防止資源過分被垃圾占用的
Chapter5_初始化與清理_this關鍵字
靜態方法 訪問 過程 scu pan 表示 lte span 編譯 this關鍵字是Java中一類很特殊的關鍵字,首先它只能在方法內使用,用來表示調用這個方法的對象,在這一點上this和其他對對象的引用的操作是相同的。我們之所以可以在方法內部訪問到它是因為編譯器在方法調
Chapter5_初始化與清理_數組初始化與可變參數列表
object 包裝 可視化 使用 first ble 對象 log 方式 一、數組初始化 數組是相同類型的,用一個標識符名稱封裝到一起的一個對象序列或基本類型數據序列。編譯器是不允許指定數組的長度的,當使用語句int[] a時,擁有的只是一個符號名,即一個數組的引用,並
初始化與清理
分區 字段名 ava 調用 正常 必須 位置 重載 有時 通過關鍵字new 類名();創建對象存放在堆上,返回一個對象引用 類被實例化是通過 new 類名(); 完成的,對象的創建和初始化被糅合在一起,通過構造器完成這種耦合,因此必須存在構造器,才能保證類的實例化正確執行
《Java編程思想》筆記 第五章 初始化與清理
4.3 AI 創建 ati 清理 共存 als this 方法簽名 1.構造器 因為創建一個類的對象構造器就會自動執行,故初始化某些東西特好 2.方法重載 方法名相同,參數列表不同。 2.1 區分重載方法 方法重載後區別不同方法的就是方法簽名 -->參數類
Chap03知識抽取與挖掘(1)
eva image str spa 實體 方法 深度學習 ron int 大綱 1.知識抽取任務定義和相關比賽 2.面向結構化數據的知識抽取 3.面向半結構化數據的知識抽取 4.實踐展示:基於百科數據的知識抽取 競賽:MUC ACE KBP SemEval
redis叢集與分片(1)-redis伺服器叢集、客戶端分片 redis叢集與分片(1)-redis伺服器叢集、客戶端分片
redis叢集與分片(1)-redis伺服器叢集、客戶端分片 下面是來自知乎大神的一段說明,個人覺得非常清晰,就收藏了。 為什麼叢集? 通常,為了提高網站響應速度,總是把熱點資料儲存在記憶體中而不是直接從後端 資料庫中
redis集群與分片(1)-redis服務器集群、客戶端分片
服務器集群 包含 工作 direct 數據丟失 網站 這一 線性 取模 下面是來自知乎大神的一段說明,個人覺得非常清晰,就收藏了。 為什麽集群? 通常,為了提高網站響應速度,總是把熱點數據保存在內存中而不是直接從後端數據庫中讀取。Redis是一個很好的Cache工具
Linux核心設計與實現(1)--核心開發的特點
1. 核心程式設計時既不能訪問C庫也不能訪問標準的C標頭檔案 其中的原因有很多種。其一,C標準庫的很多函式實現都是基於核心實現的,這核心編譯的時候都還沒有核心,所以就不存在這些函式,這個就是先有雞還是先有蛋這個悖論。其二,其主主要的的