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

java類this

發布時間: 2022-05-18 12:52:39

java中this的用法

java中this有兩種用法:
1、代表當前類
public class Dog{
private String name;
private float age;
public setName(String name){
this.name = name;
}
.......
}
這里的this就代表的當前的這個Dog類。this.name可以理解為dog.name,只是理解,不是等於。
2、在構造函數中的使用
public class Dog{
private String name;
private int age;
//有一個參數的構造函數
public Dog(String name){
this.name = name;
}
public Dog(String name,int age){
this.name = name;
this.age = age;
}
//這個無參構造方法里調用的有兩個參數的構造方法,這個也就是this的第二種用法了!
public Dog(){
this("nihao",20);
}
}

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

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

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

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

    例如:public void show(){

    Synchronized(this){

    ……}

    }

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

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

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


❸ 對於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){

}

}

❺ JAVA中this有什麼作用

我也來說幾句吧,呵呵! 希望用通俗的語言,讓你能明白this的作用!
其實this關鍵字是很容易理解的,下面我舉兩個例子作對比,可能你就看明白了:
沒有使用this的情況:
class A
{
private int aa,bb;//聲明兩個整形變數
public int returnData(int x,int y) //一個返回整形數的方法
{
aa = x;
bb = y;
return aa + bb;
}
}
使用this的情況
class A
{
private int aa,bb;//聲明兩個整形變數
public int returnData(int aa,int bb) //一個返回整形數的方法
{
this.aa = aa;//第一個aa是全局變數的aa,後一個aa是參數aa
this.bb = bb;//第一個bb是全局變數的bb,後一個bb是參數bb
return (this.aa + this.bb);
}
}

結論:
上面的兩個類,本質是相同的,而為什麼在第類中使用this關鍵字呢,注意到第類中的方法returnData(int aa,int bb),形式參數分別為aa和bb,剛好和「private int aa,bb;」這里的變數名是一樣的,現在問題來了:在returnData的方法體中如何區別形式參數aa和全局變數aa,兩 個 bb也是如此?這就是引入this關鍵字的用處所在了!this.aa表示的是全局變數的aa,而沒有加this的aa表示形式參數的aa,bb也是如此!
建議:
在編程中,過多的使用this關鍵字不是好方法。這從上面也看得出來,相同的變數名加上this關鍵字過多時,有時會讓人分不清哪個是對哪個。這時可以使用以下方法修改,避免使用this關鍵字:

class A
{
private int aa,bb;//聲明兩個整形變數
public int returnData(int aa1,int bb1)
{
aa = aa1;//在aa後面加上一數字1加以區分,其他以此類推
bb = bb1;
return aa + bb;
}
}
總結:
可以看出,上面的,,都是一樣的,但既避免了使用this關鍵字,又避免了中x和y 這種參數意思不明確的缺點.所有建議使用一樣的方法!
以上是我的個人心得,原創發貼!希望你能看懂,呵呵!獻丑了!

❻ java中的this問題

我理解的是,this代表這個類本身,對於F.java這個類而言,相當於在說「我」,方法b中調用了this.a(),可以理解為方法b調用了「我的a方法」。
對於這個例子而言,其實加不加this,結果都一樣,但對於這個例子就有用了:
假設有一個類叫G.java,其擁有一個和F.java一模一樣的方法a:
public class G {
public void a(Object args1) {

}
}
並且此時,F繼承自G:
public class F extends G{
public void a(Object args1) {

}
public void b(String args2) {
this.a(args2);
super.a(args2);
}
此時注意我上面寫的b方法,b方法中既要調用F自己的a方法,又要調用父類G中的a方法,為防止出現歧義,我們在調用F的a方法時,就使用this作為修飾;調用G的a方法時,就使用super作為修飾,這樣就一目瞭然不是嗎。
然後如果不加this,比如b方法定義為:
public void b(String args2) {
a(args2);
}
其實默認就是調用了F自身的a方法,可以理解為不加this時,java會默認給它加上this。
另外說一下你的例子如何輸出一個東西,你需要在你的a方法里加上比如:
public void a(Object args1) {
System.out.println(args1.toString());
}
在你的main函數中不要傳入null,否則將引起空指針異常,你可以傳入比如:
public static void mian(String[] args) {
new F().b("哈哈哈");
}
這樣運行時最終會在控制台輸出「哈哈哈」

❼ 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));
}
}

希望對您有所幫助!~

❾ 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的運用

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

java this關鍵字的用法如下:

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

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

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

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

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

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

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

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

熱點內容
幼兒速演算法 發布:2025-05-15 20:15:08 瀏覽:86
best把槍密碼多少 發布:2025-05-15 20:13:42 瀏覽:547
android安裝程序 發布:2025-05-15 20:13:20 瀏覽:558
c語言跳出死循環 發布:2025-05-15 20:06:04 瀏覽:823
a19處理器相當於安卓哪個水平 發布:2025-05-15 20:05:29 瀏覽:638
榮耀9i安卓強行關機按哪個鍵 發布:2025-05-15 20:00:32 瀏覽:750
密碼鎖寫什麼最好 發布:2025-05-15 19:05:31 瀏覽:782
5的源碼是 發布:2025-05-15 19:04:07 瀏覽:719
c語言創建的源文件 發布:2025-05-15 18:54:08 瀏覽:611
3個數字密碼鎖有多少種 發布:2025-05-15 18:49:48 瀏覽:684