當前位置:首頁 » 編程語言 » java類方法中this

java類方法中this

發布時間: 2022-09-12 02:38:31

java 中this的用法

用this可以調用本類的屬性,方法,構造方法,
this(x,y,0)是用來調用public
Point3D(int
x,
int
y,
int
z)這個構造方法的,這個時候本類的3個屬性就都有值了:x,y是外來傳入的值,z的值直接就是0了!
為什麼要用this.x=x
,this.y=y
,
this.z=z,是為了區分外來的值名與本類下屬性名的重名,this.x就是調用的屬性!
還可以調用方法,如:this.方法名(),這樣就調用本類下的這個方法!

㈡ java中的this是什麼意思

this代表當前對象的意思。
這個this肯定是用在某個類的方法里吧。呵呵,我們繼續往下說。

舉個例子:
public class persion{

private String name=null;
private int age;

public void setName(String name){
this.name=name;
}
public String getName(){

return name;
}

}

在這個類中setName方法中第一個變數用this是為了和本方法的參數this做區別,表示這個name指的是Person這個類的name屬性,而不是name參數,如果去掉這個this,執行完這個方法後,Person類的name屬性仍然為null
getName方法返回的Person類的name,之所以不用this是因為沒有必要,因為編譯器會知道這個name就指的是Person的name而不是其他的name(因為找個方法沒有name變數和它混淆)。當然,這個方法你也可以顯示的使用return this.name,沒錯。
這些都是最基本的了。開始學只要記住這個就可以了。慢慢的其他的用法也就無師自通了!

㈢ java中this的作用及用法是什麼

使用this調用本類中的屬性

現在觀察以下代碼,看會有那些問題:

public void setName(String name){

name = name ;

}

這裡面的兩個name都是setName方法中的name參數。

此時,特別希望可以通過一個指定的標識明確的表示要把傳入的name參數的值給類中的屬性,所以此時就需要使用this關鍵字,使用this.name就表示類中的屬性。

class Person{

private String name ;

private int age ;

public Person(String name,int age){

this.setName(name) ;

this.setAge(age) ;

}

public void setName(String name){

this.name = name ;

}

public void setAge(int age){

this.age = age ;

}

public String getName(){

return this.name ;

}

public int getAge(){

return this.age ;

}

public void print(){

System.out.println("姓名:"+this.name+",年齡:"+this.age) ;

}

};

public class Demo35{

public static void main(String args[]){

Person p1 = new Person("張三",30) ;

p1.print() ;

}

};

使用this還可以從一個構造方法中調用其他構造方法。

例如:有以下一個要求,一個類中存在了三個構造方法,但是要求,不管怎麼調用,最終都要求可以在對象實例化的時候列印一個「新的對象產生了」的提示。

class Person{

private String name ;

private int age ;

public Person(){

System.out.println("新的對象產生了。。。") ;

}

public Person(String name){

System.out.println("新的對象產生了。。。") ;

this.setName(name) ;

}

public Person(String name,int age){

System.out.println("新的對象產生了。。。") ;

this.setName(name) ;

this.setAge(age) ;

}

public void setName(String name){

this.name = name ;

}

public void setAge(int age){

this.age = age ;

}

public String getName(){

return this.name ;

}

public int getAge(){

return this.age ;

}

public void print(){

System.out.println("姓名:"+this.name+",年齡:"+this.age) ;

}

};

以上代碼雖然可以實現功能,但是同樣的代碼出現了三次,而且後面的兩次出現純屬多餘吧。用this()的形式可以調用類中的無參構造方法。

class Person{

private String name ;

private int age ;

public Person(){

System.out.println("新的對象產生了。。。") ;

}

public Person(String name){

// 最終都是調用無參構造方法

this() ;

this.setName(name) ;

}

public Person(String name,int age){

this(name) ;

this.setAge(age) ;

}

public void setName(String name){

this.name = name ;

}

public void setAge(int age){

this.age = age ;

}

public String getName(){

return this.name ;

}

public int getAge(){

return this.age ;

}

public void print(){

System.out.println("姓名:"+this.name+",年齡:"+this.age) ;

}

};

public class Demo36{

public static void main(String args[]){

Person p1 = new Person("張三",30) ;

p1.print() ;

}

};

注意點1:

如果使用了this調用其他構造方法,則此語句,必須寫在構造方法的首行。

public void fun(){

// 發現在調用fun方法的時候,必須先設置name的值

this("zhangsan") ;

}

public Person(String name,int age){

this.setAge(age) ;

this(name) ; //--> 必須放在首行

}

注意點2:

使用this可以調用本類中的其他構造方法,但是至少留一個構造方法,作為程序的出口。

public Person(){

this("a",10) ;

System.out.println("新的對象產生了。。。") ;

}

public Person(String name){

// 最終都是調用無參構造方法

this() ;

this.setName(name) ;

}

public Person(String name,int age){

this(name) ; //--> 必須放在首行

this.setAge(age) ;

}

this最重要的特性 —— 表示當前對象

當前對象在程序中用以下形式體現:

· 當前操作此方法的對象,就稱為當前對象。

class Demo{

public void print(){

System.out.println(this) ;

}

};

public class Demo38{

public static void main(String args[]){

Demo d1 = new Demo() ;

System.out.println(d1) ;

d1.print() ;

System.out.println("---------------------") ;

Demo d2 = new Demo() ;

System.out.println(d2) ;

d2.print() ;

}

};

回顧:

之前講解的兩個對象比較的程序。

// 在類的內部增加一個比較的方法

public boolean compare(Person p){

Person p1 = this ;

Person p2 = p ;

if(p1.name.equals(p2.name)&&p1.age==p2.age){

return true ;

}else{

return false ;

}

}

分析程序的運行過程:

class A{

private B b = null ;

public A(){

this.b = new B(this) ;

this.b.fun() ;

}

public void hello(){

System.out.println("Hello World!!!") ;

}

};

class B{

private A a = null ;

public B(A a){

this.a = a ;

}

public void fun(){

this.a.hello() ;

}

};

public class OODemo40{

public static void main(String args[]){

A aa = new A() ;

}

};

㈣ java里this是什麼意思

Java關鍵字this只能用於方法方法體內。

個對象創建後,Java虛擬機(JVM)就會給這 個對象分配一個引用自身的指針,這個指針的 名字就是 this。因此,this只能在類中的非靜 態方法中使用,靜態方法和靜態的代碼塊中絕 對不能出現this,這在「Java關鍵字static、fina l 使用總結」一文中給出了明確解釋。並且this只 和特定的對象關聯,而不和類關聯,同一個類 的不同對象有不同的this。

㈤ Java類中this();作用是什麼,只在構造方法中出現嗎

java中this關鍵字有三個作用:

  1. 區別全局變數和局部變數

  2. 在方法中this表示誰調用該方法 this就代表誰

    例如:public void show(){

    Synchronized(this){

    ……}

    }

    同步代碼塊表示 哪個對象調用該方法 就得到哪個對象的對象鎖

  3. 構造器中this()表示調用形式參數相同的同一個類中的另一個構造器,這樣就可以代碼復用

    就拿你那段代碼來說 this()就表示調用該類中 名稱是Note 形參是空的構造器 讓裡面的代碼在這個有參的構造器中再跑一遍


㈥ java 的this的運用

在java中,this關鍵字有很多種用法。 在java中,這是一個引用當前對象的引用變數。

java this關鍵字的用法如下:

  • this關鍵字可用來引用當前類的實例變數。

  • this關鍵字可用於調用當前類方法(隱式)。

  • this()可以用來調用當前類的構造函數。

  • this關鍵字可作為調用方法中的參數傳遞。

  • this關鍵字可作為參數在構造函數調用中傳遞。

  • this關鍵字可用於從方法返回當前類的實例。

  • 建議:如果你是java初學者,只學習 this 關鍵字的前三個用法就可以了。

    更詳細可以查詢一些教程,例如:https://www.yii.com/java/this-keyword.html

㈦ Java中this能出現在類方法中嗎

不可以,類方法(靜態方法)是屬於類級別的,為所有對象共有的,在類載入進內存的時候就存在了,此時還沒有對象,this就無法指向任何對象,所以是不可以的。

㈧ java中「this」的用法是什麼

一、指自己所在的對象。
比如在一個方法中,調用其他對象的變數或方法時,可以使用那個對象的對象名,比如aa.abc();
而調用自己所在對象的方法或變數時,不知道別人給起了什麼名,所以直接用this.abc()就可以了。
二、看一個小例子中「this」的用法!

/**

* @author feng-neusoft

*

* 本示例為了說明this的三種用法!

*/

package test;

public class ThisTest {

private int i=0;

//第一個構造器:有一個int型形參

ThisTest(int i){

this.i=i+1;//此時this表示引用成員變數i,而非函數參數i

System.out.println("Int constructor i——this.i: "+i+"——"+this.i);

System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1));

//從兩個輸出結果充分證明了i和this.i是不一樣的!

}

// 第二個構造器:有一個String型形參

ThisTest(String s){

System.out.println("String constructor: "+s);

}

// 第三個構造器:有一個int型形參和一個String型形參

ThisTest(int i,String s){

this(s);//this調用第二個構造器

//this(i);

/*此處不能用,因為其他任何方法都不能調用構造器,只有構造方法能調用他。

但是必須注意:就算是構造方法調用構造器,也必須為於其第一行,構造方法也只能調

用一個且僅一次構造器!*/

this.i=i++;//this以引用該類的成員變數

System.out.println("Int constructor: "+i+"/n"+"String constructor: "+s);

}

public ThisTest increment(){

this.i++;

return this;//返回的是當前的對象,該對象屬於(ThisTest)

}

public static void main(String[] args){

ThisTest tt0=new ThisTest(10);

ThisTest tt1=new ThisTest("ok");

ThisTest tt2=new ThisTest(20,"ok again!");

System.out.println(tt0.increment().increment().increment().i);

//tt0.increment()返回一個在tt0基礎上i++的ThisTest對象,

//接著又返回在上面返回的對象基礎上i++的ThisTest對象!

}

}

運行結果:

Int constructor i——this.i: 10——11

String constructor: ok

String constructor: ok again!

Int constructor: 21

String constructor: ok again!

14

細節問題注釋已經寫的比較清楚了,總結一下,其實this主要要三種用法:

1、表示對當前對象的引用!

2、表示用類的成員變數,而非函數參數,注意在函數參數和成員變數同名是進行區分!其實這是第一種用法的特例,比較常用,所以那出來強調一下。

3、用於在構造方法中引用滿足指定參數類型的構造器(其實也就是構造方法)。但是這里必須非常注意:只能引用一個構造方法且必須位於開始!

還有就是注意:this不能用在static方法中!所以甚至有人給static方法的定義就是:沒有this的方法!雖然誇張,但是卻充分說明this不能在static方法中使用!

㈨ 對於java中this關鍵字的理解

this關鍵字可以簡單的理解為,誰調用this所在的方法,this就是誰。
類的構造函數與getter、setter方法常用到this關鍵字(JavaBean)

JavaBean是一種可重用的Java組件,它可以被Applet、Servlet、SP等Java應用程序調用.也可以可視化地被Java開發工具使用。它包含屬性(Properties)、方法(Methods)、事件(Events)等特性。
public class Person {
//==========靜態屬性===========
//--想學編程的可以來我這看看----
private String name; //姓名
private int age; //年齡
private String gender; //性別

//==========動態行為===========
public void readBook(String book) {
System.out.println("reading " + book);
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;//this.name就是上面的private String name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getGender() {
return gender;
}

public void setGender(String gender) {
this.gender = gender;
}
}
官方定義
this 是自身的一個對象,代表對象本身,可以理解為:指向對象本身的一個指針。
this 的用法在 Java 中大體可以分為3種:
1.普通的直接引用
這種就不用講了,this 相當於是指向當前對象本身。
2.形參與成員名字重名,用 this 來區分:
class Person {
private int age = 10;
public Person(){
System.out.println("初始化年齡:"+age);}
public int GetAge(int age){
this.age = age;
return this.age;
}
}
public class test1 {
public static void main(String[] args) {
Person Harry = new Person();
System.out.println("Harry's age is "+Harry.GetAge(12));
}
}

希望對您有所幫助!~

㈩ this()在java中什麼意思

this表示類實例本身。

this的用法:

1、表示對當前對象的引用!

publicclassA{

publicAgetA(){

returnthis;//表示獲取當前實例本身

}

}

2、表示類的成員變數,而非函數參數,注意在函數參數和成員變數同名是進行區分!

publicclassA{

privateinta=0;//位置1

publicAgetA(inta){

this.a=a;//前面this.a表示位置1的a,賦值=號右側的表示參數a

}

}

3、用於在構造方法中引用滿足指定參數類型的構造器。

publicclassA{

publicA(inta){

}

publicA(){

this(1);//這里調用自身的構造函數publicA(inta){

}

}

熱點內容
hill密碼的加密 發布:2025-01-12 09:56:33 瀏覽:613
組卷源碼 發布:2025-01-12 09:51:12 瀏覽:995
java文件夾改名 發布:2025-01-12 09:49:01 瀏覽:115
腳本函數未定義 發布:2025-01-12 09:39:44 瀏覽:635
頁面PHP 發布:2025-01-12 09:38:07 瀏覽:200
郵政銀行打電話登錄密碼是什麼 發布:2025-01-12 09:37:27 瀏覽:563
linuxroot遠程登錄 發布:2025-01-12 09:37:26 瀏覽:302
怎麼算伺服器ip 發布:2025-01-12 08:59:19 瀏覽:854
安卓與ios哪個適合做主力機 發布:2025-01-12 08:54:11 瀏覽:341
微軟怎麼關閉配置更新 發布:2025-01-12 08:34:23 瀏覽:316