1. 程式人生 > >初始化與清理(1)

初始化與清理(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、XavierHe 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標準庫的很多函式實現都是基於核心實現的,這核心編譯的時候都還沒有核心,所以就不存在這些函式,這個就是先有雞還是先有蛋這個悖論。其二,其主主要的的