當前位置:首頁 » 編程語言 » javathis

javathis

發布時間: 2022-02-08 12:01:13

java中的this是什麼意思

java裡面this是指本身的意思,比如說在一個類裡面this就代表自己本身這個類

㈡ 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用法)

Java關鍵字this只能用於方法方法體內。當一個對象創建後,Java虛擬機(JVM)就會給這個對象分配一個引用自身的指針,這個指針的名字就是 this。因此,this只能在類中的非靜態方法中使用,靜態方法和靜態的代碼塊中絕對不能出現this,這在「Java關鍵字static、final 使用總結」一文中給出了明確解釋。並且this只和特定的對象關聯,而不和類關聯,同一個類的不同對象有不同的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對象!
}
}
/*
細節問題注釋已經寫的比較清楚了,這里不在贅述,只是總結一下,其實this主要要三種用法:
1、表示對當前對象的引用!
2、表示用類的成員變數,而非函數參數,注意在函數參數和成員變數同名是進行區分!其實這是第一種用法的特例,比較常用,所以那出來強調一下。
3、用於在構造方法中引用滿足指定參數類型的構造器(其實也就是構造方法)。但是這里必須非常注意:只能引用一個構造方法且必須位於開始!
還有就是注意:this不能用在static方法中!所以甚至有人給static方法的定義就是:沒有this的方法!雖然誇張,但是卻充分說明this不能在static方法中使用!
說明在什麼情況下需要用到this:
第一、通過this調用另一個構造方法,用發是this(參數列表),這個僅僅在類的構造方法中,別的地方不能這么用。
第二、函數參數或者函數中的局部變數和成員變數同名的情況下,成員變數被屏蔽,此時要訪問成員變數則需要用「this.成員變數名」的方式來引用成員變數。當然,在沒有同名的情況下,可以直接用成員變數的名字,而不用this,用了也不為錯,呵呵。
第三、在函數中,需要引用該函所屬類的當前對象時候,直接用this。
其實這些用法總結都是從對「this是指向對象本身的一個指針」這句話的更深入的理解而來的,死記不然容易忘記而且容易搞錯,要理解!
*/

㈤ java this 的用法

this關鍵字用來指代當前對象。
你說的這個問題我也曾考慮過,但是最終還是要用一樣的變數名,其原因是:

你的方法是用來給其他程序在其他位置調用的。如果你在這里設置了不同的變數名,那其他地方在調用的時候也會看到你的另外一個參數名,因為名字不一樣,就不能一下知道你的參數到底是需要什麼東西,對於除開你自己外的所有開發人員都不具有可讀性。而且對後期的維護會造成很大的麻煩,為了避免這些麻煩,這里都是要用相同的變數名的,只需要加一個this關鍵字就可以。相對來說是很方便的。

㈥ java this什麼意思

java中的this隨處可見,用法也多,現在整理有幾點:

1. this是指當前對象自己。
當在一個類中要明確指出使用對象自己的的變數或函數時就應該加上this引用。如下面這個例子中:
public class Hello {
String s = "Hello";

public Hello(String s) {
System.out.println("s = " + s);
System.out.println("1 -> this.s = " + this.s);
this.s = s;
System.out.println("2 -> this.s = " + this.s);
}

public static void main(String[] args) {
Hello x = new Hello("HelloWorld!");
}
}
運行結果:
s = HelloWorld!
1 -> this.s = Hello
2 -> this.s = HelloWorld!
在這個例子中,構造函數Hello中,參數s與類Hello的變數s同名,這時如果直接對s進行操作則是對參數s進行操作。若要對類Hello的成員變數s進行操作就應該用this進行引用。運行結果的第一行就是直接對構造函數中傳遞過來的參數s進行列印結果; 第二行是對成員變數s的列印;第三行是先對成員變數s賦傳過來的參數s值後再列印,所以結果是HelloWorld!

2. 把this作為參數傳遞
當你要把自己作為參數傳遞給別的對象時,也可以用this。如:
public class A {
public A() {
new B(this).print();
}

public void print() {
System.out.println("Hello from A!");
}
}
public class B {
A a;

public B(A a) {
this.a = a;
}

public void print() {
a.print();
System.out.println("Hello from B!");
}
}
運行結果:
Hello from A!
Hello from B!
在這個例子中,對象A的構造函數中,用new B(this)把對象A自己作為參數傳遞給了對象B的構造函數。

㈦ 在java中類名.this得到的是什麼

你這個問題應該是問在3g平台下面把,那麼得到的是上下文對象-context。在j2se得到是當前類的一個對象

㈧ java中this的用法

1、this指向當前類的對象,也就是TwoListen類的對象。由於MouseMotionListener,MouseListener 都是介面,因此
f.addMouseMotionListener(this);//(************************)
f.addMouseListener(this); //(************************)
中分別需要一個實現了MouseMotionListener和MouseListener介面的類的實例。

在本例子中 TwoListen類都實現了這兩個介面,因此可以用本類的實例來做參數。或者新建一個實現了這兩個介面的類,再用這個類的實例做參數。

2、在該例子中,this指向生成的two對象。為什麼用two替換後就不能運行了呢?
因為two是在main方法中定義的,是局部變數;而在go方法中並不能訪問其他方法中定義的局部變數。
如果把two定義為全局變數,如:
static TwoListen two;
再在main方法中定義:
two=new TwoListen();

這時就可以用two代替this了

㈨ java裡面this指的是什麼

this為一系統資源,只允許用戶讀而不允許寫,它存放當前對象的地址(引用)。

this變數有以下作用:

1. 構造方法重用:

public class Rectangle{
public Rectangle(Location at, Shape size) {…}
public Rectangle(Shape size,Location at){
this(at, size); }
public Rectangle(Location at) {
this(at, new Shape(100,100));
}
public Rectangle(Shape size) {
this(size, new Location(1,1));
}
public Rectangle() {
this(new Location(1,1), new Shape(100,100));
}
}

2、消除歧義:

Location{
private int x;
private int y;
public Location(int x,int y) {
this.x=x;
this.y=y;
}
……
}

3、返回對象-鏈式方法調用:

public class Count {
private int i = 0;
Count increment() {
i++;
return this; //返回對象的地址,所以我們可以鏈式訪問它
}
void print() {
System.out.println("i = " + i);
}
}
public class CountTest{
public static void main(String[] args) {
Count x = new Count();
x.increment().increment().print();
}
}

4、作為參數傳遞"this」變數-進行回調:

假設有一個容器類和一個部件類,在容器類的某個方法中要創建部件類的實例對象,而部件類的構造方法要接受一個代表其所在容器的參數。例如:
class Container
{
Component comp;
public void addComponent()
{
comp = new Component(this); //代表你所創建的對象,因為它要用到.
}
}
class Component
{
Container myContainer;
public Component(Container c)
{
myContainer = c;
}
}

㈩ java中this的用法

1. this指當前對象。
當在一個類中要明確指出使用對象變數或函數時加上this引用。如下面例子中:

public class Hello {

String s = "Hello";

public Hello(String s){
System.out.println("s = " + s);
System.out.println("1 -> this.s = " + this.s);
this.s = s;
System.out.println("2 -> this.s = " + this.s);
}

public static void main(String[] args) {
Hello x=new Hello("HelloWorld!");
}
}

運行結果:

s = HelloWorld!
1 -> this.s = Hello
2 -> this.s = HelloWorld!

在這個例子中,構造函數Hello中,參數s與類Hello的變數s同名,這時直接對s進行操作則是對參數s進行操作。對類Hello的成員變數s進行操作就應該用this進行引用。運行結果的第一行就是直接對構造函數中傳遞過來的參數s進行列印結果;
第二行是對成員變數s的列印;第三行是先對成員變數s賦傳過來的參數s值後再列印,所以結果是HelloWorld!

2. this作為參數傳遞
當你要把自己作為參數傳遞給別的對象時如:

public class A {
public A() {
new B(this).print();
}

public void print() {
System.out.println("Hello from A!");
}
}

public class B {
A a;
public B(A a) {
this.a = a;
}

public void print() {
a.print();
System.out.println("Hello from B!");
}
}

運行結果:
Hello from A!
Hello from B!

在這個例子中,對象A的構造函數中,new
B(this)把對象A作為參數傳遞給了對象B的構造函數。

熱點內容
萬能鑰匙wifi破解不了密碼怎麼辦 發布:2024-12-28 18:03:41 瀏覽:162
上傳義烏購 發布:2024-12-28 17:57:59 瀏覽:280
python網路開發 發布:2024-12-28 17:56:36 瀏覽:511
androidisvisible 發布:2024-12-28 17:51:43 瀏覽:513
安卓系統如何卡游戲首充優惠 發布:2024-12-28 17:30:51 瀏覽:478
收銀機密碼忘了怎麼辦 發布:2024-12-28 17:24:57 瀏覽:653
開源伺服器怎麼登陸 發布:2024-12-28 17:22:47 瀏覽:268
微信無法清理緩存 發布:2024-12-28 17:19:34 瀏覽:19
哪個安卓相機和蘋果差不多 發布:2024-12-28 16:52:34 瀏覽:187
eclipse不編譯jsp 發布:2024-12-28 16:43:40 瀏覽:229