1. 程式人生 > >Java this關鍵字(呼叫屬性,呼叫方法,呼叫當前物件)

Java this關鍵字(呼叫屬性,呼叫方法,呼叫當前物件)

·呼叫屬性(程式碼示例):

public class thisDemo01 {
	public static void main(String[] args) throws Exception {
		BlueMoon bm=new BlueMoon("渣渣輝", 100);
		System.out.println(bm.getInfo());
	}
}

class BlueMoon {
	private String name;
	private int level;

	public BlueMoon(String name, int level) {
		this.name = name;
		this.level = level;
	}

	public String getInfo() {
		return "大家好!我是" + this.name + ",我是貪玩藍月的戰士,等級:" + this.level;
	}
}

·呼叫方法(普通方法與構造方法)

 |—呼叫普通方法:

public class thisDemo01 {
	public static void main(String[] args) throws Exception {
		BlueMoon bm = new BlueMoon("渣渣輝", 100);
		System.out.println(bm.getInfo());
	}
}

class BlueMoon {
	private String name;
	private int level;

	public BlueMoon(String name, int level) {
		this.name = name;
		this.level = level;
	}

	public void print() {
		System.out.println("************************");
	}

	public String getInfo() {
		this.print();//呼叫普通方法
		return "大家好!我是" + this.name + ",我是貪玩藍月的戰士,等級:" + this.level;
	}
}
 |—呼叫構造方法:
public class thisDemo01 {
	public static void main(String[] args) throws Exception {
		BlueMoon bm1 = new BlueMoon();
		BlueMoon bm2 = new BlueMoon("古天樂");
		BlueMoon bm3 = new BlueMoon("小志傳奇", "陳赫", "法師");

		System.out.println(bm1.getInfo());
		System.out.println(bm2.getInfo());
		System.out.println(bm3.getInfo());
	}
}

class BlueMoon {
	private String game;
	private String name;
	private String title;
	private int level;

	public BlueMoon() {
		this("貪玩藍月", "無名氏", "未定", 0);
	}

	public BlueMoon(String name) {
		this("貪玩藍月", name, "劍士", 90);
	}

	public BlueMoon(String game, String name) {
		this(game, name, "戰士", 100);
	}

	public BlueMoon(String game, String name, String title) {
		this();
		this.game = game;
		this.name = name;
		this.title = title;
	}

	public BlueMoon(String game, String name, String title, int level) {
		this.game = game;
		this.name = name;
		this.title = title;
		this.level = level;
	}

	public String getInfo() {
		return "歡迎來到" + this.game + "!我是" + this.name + ",職業:" + this.title + ",等級:" + this.level + "級";
	}
}

·當前物件呼叫:

class BlueMoon {
	public void print() {
		//哪個物件呼叫了print()方法,this就自動與此物件指向同一塊記憶體地址
		System.out.println("this=" + this);//this 就是當前呼叫物件
	}
}

public class thisDemo02 {
	public static void main(String[] args) throws Exception {
		BlueMoon bm = new BlueMoon();
		BlueMoon bm2 = new BlueMoon();
		System.out.println("bm=" + bm);
		bm.print();
		System.out.println("---------------------");
		System.out.println("bm2=" + bm2);
		bm.print();

	}
}


相關推薦

Java this關鍵字(呼叫屬性呼叫方法呼叫當前物件)

·呼叫屬性(程式碼示例): public class thisDemo01 { public static void main(String[] args) throws Exception {

通過反射建立私有化類的物件呼叫類的私有方法改變私有屬性

首先建立一個類 public class ReflectDemo { private int m=0; //私有屬性 private ReflectDemo(){ //私有無參建構函式 } public ReflectDemo(int aa

Java呼叫https介面get方法無證書

1.工具類 package springmvc.wx.controller.train; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException;

Java陣列構造方法this關鍵字例題全解--經典問題

1.int[][]  arr = {{5, 7, 9},{12, 14, 16, 18},{23, 25, 36, 47},{22, 54, 65, 15},{22, 34}}; 求該陣列元素之和 class Demo6{    public static void main(String[] args){

Android中Java呼叫c++裡面的方法如何檢視錯誤

向我們如果在Java中呼叫C++裡面的方法,有的時候發現並不執行,也不知道問題卡住哪裡,這個時候在Androidstudio下面會有這樣的一片紅:   ,這個時候就可以通過doc命令列檢視在C++哪一行報錯,: 前面的exe是自己本地NDK目錄下的路徑, -C

Java中可以直接呼叫類中靜態方法不用例項化

轉載自   http://stevengw.blog.163.com/blog/static/583447512012319112140126/ 先通俗的分析下,我們把類看作是一個房子。房子裡面有傢俱,桌椅板凳之類的,房子裡面還有人。 房子裡面所有的人都應該是共有一套傢俱

Java中多執行緒啟動為什麼呼叫的是start方法而不是run方法

### 前言 大年初二,大家新年快樂,我又開始碼字了。寫這篇文章,源於在家和基友交流的時候,基友問到了,我猛然發現還真是這麼回事,多執行緒啟動呼叫的都是start,那麼為什麼沒人掉用run呢?於是開啟我的idea,翻一波程式碼,帶大家一探究竟。 ### 繼承thread類實現多執行緒 我們知道java有三種方

java面向對象finalsuper 抽象類重寫代碼塊staticthis構造方法堆棧

細節 null 建議 error 數列 tor 需求 splay etag 在jvm內存中主要分布有以下三個區域:     棧:存放基礎數據和自定義對象的引用     堆:主要存儲創建的對象,即new出來的對象     方法區:加載存放class文件(字節碼文件) 什麽

iOS下呼叫元素的focus方法input元素不聚焦鍵盤不彈起的問題

  ##頁面元素 ``` <input type="text" ref="elInput"/>   <div style="margin-top:20px;" @click="confession()"

vue 父元件呼叫子元件的方法子元件呼叫父元件方法

首先看程式碼: 1、父元件: <template> <div> <div v-if="!userShow"> 父元件內容區 <el-button @click="lookUserInfo(scope.row)">&nb

Fragment呼叫Activity中的方法很簡單 Fragment呼叫Activity中的方法很簡單

Fragment呼叫Activity中的方法,很簡單 2016年02月25日 10:12:10 閱讀數:1497 假如 父Activity的類名叫 ParentActivity,有一個test()方法 在Fragm

在b頁面呼叫a頁面的方法為a頁面傳參實現a頁面不重新整理點贊數根據b頁面改變

a頁面 通過topicid屬性值獲取元素,為該元素下的接收點贊值得子元素賦值 書寫如下方法: function dianzanz(topici,dznum) { $(".swiper-slide.article[topicid="+topici+"]").find(".t

抽象類呼叫自己的抽象方法實現來自實現類(很常用)

直接上程式碼 public abstract class Parent { public abstract void dosomething(); public void say(){ dosomething(); Sys

Android 仿微信popuwindow彈窗呼叫只需要一個方法以及4.4系統popuwindow外部不響應解決辦法

對於popuwindow大家都熟悉,他給Dialog的區別就是外部可以點選消失,一些使用者提示、使用者指引基本上用的都是這個控制元件,我用這個控制元件實現了微信分享的下部彈窗,效果挺好,使用起來也比較流暢,佈局樣式,都可以根據自己的需求進行更改,很不錯的一個方法,希望能幫到大

weex開發 - 方法的對映在weex呼叫fetch方法實際呼叫同名的原生方法在回撥中把資料傳遞迴js

方法的對映通過標題的解釋也可以很明顯的看出來,是通過在js上呼叫和原生同名的方法,在原生返回資料中把這些資料回傳給JS的一種方法,這麼做的原因是weex中的網路請求不能滿足我們客戶端網路安全和各種配置的需求。 具體的做法,首先在weex中,我們寫一個名為fetch.js的網路請求檔案,

C#反射動態呼叫dll中的方法並返回結果

最近在看工廠開發模式,發現用到了反射,之前只聽說過也沒怎麼用過;所以花了點時間重新溫習了一遍; 反射的作用是動態的載入某個dll(程式集),並執行該程式集中的某個方法,並返回結果;當然也可以給該方法傳遞引數 namespace assembly_name { public class

JS呼叫Android裡面的方法Android呼叫JS裡面的方法

      Android WebView     在公司Android的開發過程中遇到一個新的問題,那就是讓android程式碼和Javascript程式碼進行互動,然後在網上找到了關於webView的資料,之前並沒有深入去了解WebView,一直以為Android 的

登入頁面在輸入了正確的使用者名稱和密碼後仍跳轉到登入頁面而不是期望的系統首頁面debug的時候發現登入頁面呼叫的action類方法呼叫了兩次後臺無法獲取前臺頁面傳過來的引數。

問題描述: 專案首頁面進不去,debug的時候發現,index頁面呼叫的action類方法被呼叫了兩次,後臺無法獲取前臺頁面傳過來的引數,導致登入頁面在輸入了正確的使用者名稱和密碼後仍跳轉到登入頁面而不是期望的系統首頁面。 可能原因: 在Eclipse中的專案名與專案配置檔

夯實Java基礎系列4:一文了解final關鍵字的特性、使用方法以及實現原理

目錄 final使用 final變數 final修飾基本資料型別變數和引用 final類 final關鍵字的知識點 final關鍵字的最佳實踐 final的用法 關於空白final final記憶體分配 使用final修飾方法會提高速度和效率嗎 使用final修飾變數會讓變數的值不能被改變嗎; 如何保

java-mybaits-00203-DAO-mapper代理開發方法多參數【推薦】

tca alt 三種 ram 程序員 spl cep () void 程序員只需要mapper接口(相當 於dao接口) 不需要寫具體實現類,mapper已經代理完成,mybatis才有的 一、mapper代理開發方法(建議使用) 程序員在編寫map