1. 程式人生 > >java 必須用this的幾種情況

java 必須用this的幾種情況

摘抄自張孝祥老師的 java就業培訓教程。

this只存在與方法內部,用來代表呼叫改方法的物件。可以理解為每一個方法內部都有一個區域性變數叫this,每當初始化一個物件時,就把該物件的地址傳遞給了該物件每一個方法中的this變數,從而可以在方法內部使用這個的物件。

第一種情況:

建構函式中物件成員變數的初始化時使用,用來區分成員變數跟形式引數

public class StudyThis {
	private String name;
	private int age;
	
	public StudyThis(String name,int age){
		this.name=name;
		this.age=age;
	}
	
	
}

第二種情況:

假設有兩個類,容器類Container和內容類Component,在Container的成員方法中需要呼叫Component類的一個物件。Component的建構函式中需要一個呼叫它的Container類作為引數。

class Container{
	
	Component comp;
	public void addComponent(){
		comp=new Component(this);
	}
	
		
}

	class Component{
		Container myContainer;
		public Component(Container c){
			myContainer=c;
		}
	}
第三中情況

構造方法不能想其他方法一樣被呼叫,只能在系統初始化一個物件時被系統呼叫。雖然構造方法不能被其他函式呼叫,但是可以被該類的其他構造方法呼叫,這時用this即可。

class Person{
	int age;
	String name;
	public Person(){
		
	}
	public Person(int age){
		this.age=age;
	}
	public Person(int age,String name){
		this(age);
		this.name=name;
	}
	
	
}

相關推薦

java 必須this情況

摘抄自張孝祥老師的 java就業培訓教程。 this只存在與方法內部,用來代表呼叫改方法的物件。可以理解為每一個方法內部都有一個區域性變數叫this,每當初始化一個物件時,就把該物件的地址傳遞給了該物件每一個方法中的this變數,從而可以在方法內部使用這個的物件。 第一種情

Java記憶體溢位的情況

正文本文通過幾段程式碼模擬實際的記憶體溢位異常。文中程式碼都是基於Oracle公司的HotSpot虛擬機器執行的。1. Java堆溢位1.1 模擬場景Java堆用於儲存物件,只要不斷的建立物件,並保證GC Roots到物件之間有可達路徑來避免垃圾回收機制清除這些物件,那麼在物

出現java.lang.IllegalStateException的情況

丟擲異常:ERROR [Engine] StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exceptionjava.lang.IllegalStateException: getOutputStream() has alr

JAVA記憶體洩漏的情況

Java記憶體洩漏引起的原因:   記憶體洩漏是指無用物件(不再使用的物件)持續佔有記憶體或無用物件的記憶體得不到及時釋放,從而造成記憶體空間的浪費稱為記憶體洩漏。   長生命週期的物件持有短生命週期物件的引用就很可能發生記憶體洩漏,儘管短生命週期物件已經不再需要,但是因

必須初始化列表的情況

1. 類成員為const型別 2. 類成員為引用型別 #include <iostream> using namespace std; class A { public: A(int &v) : i(v), p(v),

Java程序員必須知道的系列輔助開發工具

java 教程 集成開發環境Eclipse是最有名也最廣泛使用的Java集成開發環境(IDE),允許開發者結合語言支持和其他功能到任何的默認包中,而且Eclipse市場有許多定制和擴展的插件。IntelliJ已經引起了開發者的“追捧”,甚至比Eclipse還受寵,有免費版和專業版。IntelliJ為眾

java.lang.NullPointerException報錯的情況

style == poi 就會 string arr 不存在 判斷 對象 java.lang.NullPointerException報錯的幾種情況: 1.字符串變量未初始化; 2.接口類型的對象沒有用具體的類初始化,比如:   List stuList ;這種情況就會報空

java中出現內存溢出的情況

xss 除了 占用 memory 兩個 存在 text spa 調用 情況一:java.lang.OutOfMemoryError: Java heap space 原因:java堆內存不足,可能是真的不足,也可能是程序中有死循環 方案:1、調整JVM參數-Xms2048m

必須知道的java容器(集合類)

一、基本概念 Java容器類類庫的用途是“持有物件”,並將其劃分為兩個不同的概念: 1)Collection:一個獨立元素的序列,這些元素都服從一條或者多條規則。 List必須按照插入的順序儲存元素,而set不能有重複的元素。Q

關於Java空指標異常的情況的總結

1:NullPointerException由RuntimeException派生出來,是一個執行級別的異常。意思是說可能會在執行的時候才會被丟擲,而且需要看這樣的執行級別異常是否會導致你的業務邏輯中斷。  2:空指標異常發生在物件為空,但是引用這個物件的方法。例如: String s =

Java中super的用法並與this的區別

1. 子類的建構函式如果要引用super的話,必須把super放在函式的首位. class Base { Base() { System.out.println("Base"); } } public class Checket extends Base {

關於Java空指標異常的情況的總結(java.lang.NullPointerException)

在外文網站上看到的: 1. Calling the instance method of a null object.  2. Accessing or modifying the field of 

IDEA遇到Auto build completed with errors以及卡在parsing java...情況的分析

   在使用IDEA的時候,經常從類似git之類的地方將上面的程式碼clone並部署到本地。有時候配置完一些必要的東西之後,maven會根據專案配置好的pom.xml開始自動的下載依賴包,一般情況下會很順利的安裝好相關依賴的jar包然後直接點執行專案就完成部署了,具體步驟隨便

今天來給大家分析js中this的指向情況

        之前在寫程式碼時遇到this時,總是在考慮應不應該用,原因是當時分不清楚,後來把this的所有情況分析了一遍,其實超級簡單,而且他的使用場景很好,下面我來把他的幾種情況分析一下,如果this分佈太清得小夥伴們可以參考哈~希望對你們有幫助!        與其他

JAVA開發Web Service框架介紹

需求 驚人的 總線 cast pri web服務 希望 uil blank 在講Web Service開發服務時,需要介紹一個目前開發Web Service的幾個框架,分別為Axis,axis2,Xfire,CXF以及JWS(也就是前面所述的JAX-WS,這是Java

當表名可控的註入遇到了Describe時的情況

影響 bold 求學 ide 構造 完全 card 別名 pre 轉自:http://www.yulegeyu.com/2017/04/16/%E5%BD%93%E8%A1%A8%E5%90%8D%E5%8F%AF%E6%8E%A7%E7%9A%84%E6%B3%A8%E5

java實現同步的方式(總結)

副本 增刪改 否則 都是 fin ret 語義 value art 為何要使用同步? java允許多線程並發控制,當多個線程同時操作一個可共享的資源變量時(如數據的增刪改查), 將會導致數據不準確,相互之間產生沖突,因此加入同步鎖以避免在該線程沒有完成操

Java開發web的開發模式

調度 開發模式 process 模板 spring 程序 校驗 透明 class Java開發web的幾種開發模式 Java Web開發方案有多種可供選擇,這裏列舉一些經典的開發模式進行橫向比較,為Java Web的開發模式選擇提供參考。除此之外還有好多方案(如Tape

QT下實現對Linux Shell調方法

nes running qprocess -o test main new rest ring 使用QProcess QThread ============================================ #include <QProcess&