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

javathis用法

發布時間: 2022-12-12 04:11:41

『壹』 java中的那個關鍵字this是怎麼用的啊謝謝!

其實要理解this的意思,可以把this跟super聯系起來,這樣比較好理解清楚:
this就是在類里調用自己的成員變數或成員方法,比如:
public class Test
{
int a = 0;
int b = 0;
public void method(int a )
{
this.a = a;
}
}
在這一個例子中,this的用處就是為了區別,因為這個類有一個成員變數a,這個類有一個方法,這個方法里有一個局部變數a,為了區別這兩個變數a,所以就是this關鍵字,變數名前面加了this關鍵字的變數就表示這個類的成員變數,而不是這個方法里的局部變數a。
理解到這了就可以更深一步的理解了:
this關鍵字就是再這個類的自身里用到,表示這個類本身,super就是在子類里用來表示其父類自身。

『貳』 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的用法

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的構造函數。

『肆』 Java中this的作用和用法以及含義!

this指直譯是「這個」,在java中指「當前的」。不管在哪裡,只要用到this,指的一定就是當前的這個對象。最常見的用法是在寫java bean中。比如下面的代碼

publicclassStudent{
privateStringname;
privateintage;
publicStudent(){}
publicStudent(Stringname,intage){
this();
this.setName(name);
this.age=age;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetAge(){
returnthis.age;
}
}

上面的代碼是一個java bean。所謂的java bean就是一個類,這個類有一些屬性,方法只有這些屬性的Getter 或者Setter (從Object類繼承的方法不算在此列)。

這個bean有兩個屬性,在構造器中為屬性賦值的時候寫的this.setName(name).意思是調用當前你創建的這個對象的Setter給這個對象的屬性賦值。而setName裡面的this.name = name;這一句,等號之前的this.name表示當前對象的name,也就是在類裡面定義的private String name這個變數,而等號之後的name表示從外界調用這個方法時候傳進來的參數。所以這句話的意思就是將外界傳來的字元串變數的值賦給當前對象的name屬性。

那麼構造器第一行的this()是做什麼的呢?這句話是調用當前這個對象的無參構造,就是調用上面的public Student(){}這個構造器。在這段代碼里this()體現不出來什麼作用。但是我們知道構造器的作用是在構造對象的時候給屬性賦值的。如果上面個無參構造裡面寫一些賦值語句的話那麼這里就可以避免代碼的重復了。但是請注意,調用this()的時候一定要寫在該方法的第一行,否則會報錯。

另外,this關鍵字不能使用在有static關鍵字修飾的方法和代碼塊裡面。因為static是這個類的所有對象共用的,而this指的只是當前這個對象的「私人」的一些東西,在屬性上面就沖突了。


說到this就得順帶提一下super關鍵字了。super關鍵字的用法同this差不多,同樣不能與static一起使用。同樣有super()的寫法,且需要寫在方法第一行。但是super所指示的東西可不一樣,一般指的是當前這個類的直接父類。如果在子類中需要使用父類的構造器或者屬性的時候可以使用super關鍵字。比如下面的代碼:

{
publicStudent(){
super();
}
@Override
publicbooleanequals(Objectobj){
returnsuper.equals(obj);
}
}

上面這段代碼就是在實現equals方法的時候調用其直接父類的Object類的equals方法。而在構造這個類的對象的時候也調用了其父類的構造方法。

註:上面代碼中的extends Object其實完全不必寫,因為所有的類都直接或者間接是Object類的子類(除了Object類本身)。如果不寫extends的話默認繼承Object類。這里為了需要所以這樣寫

『伍』 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(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」的三種用法

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

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

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

『捌』 java中this的用法

給你說一下this的用法吧。
Java關鍵字this只能用於方法方法體內。當一個對象創建後,Java虛擬機(JVM)就會給這個對象分配一個引用自身的指針,這個指針的名字就是 this。因此,this只能在類中的非靜態方法中使用,靜態方法和靜態的代碼塊中絕對不能出現this,這在「Java關鍵字static、final 使用總結」一文中給出了明確解釋。並且this只和特定的對象關聯,而不和類關聯,同一個類的不同對象有不同的this。
說明在什麼情況下需要用到this:
第一、通過this調用另一個構造方法,用發是this(參數列表),這個僅僅在類的構造方法中,別的地方不能這么用。
第二、函數參數或者函數中的局部變數和成員變數同名的情況下,成員變數被屏蔽,此時要訪問成員變數則需要用「this.成員變數名」的方式來引用成員變數。當然,在沒有同名的情況下,可以直接用成員變數的名字,而不用this,用了也不為錯,呵呵。
第三、在函數中,需要引用該函所屬類的當前對象時候,直接用this。
其實這些用法總結都是從對「this是指向對象本身的一個指針」這句話的更深入的理解而來的,死記不然容易忘記而且容易搞錯,要理解!

『玖』 java 中this的使用方法怎麼用盡可能詳細! 謝謝!

this代表本類,比如你寫了一個類Dog,在本類中this就代表Dog。this在某些情況下可以讓變數變得明顯,當外來變數和本類變數名稱相同時,我們要利用this來區分。
public class Dog{
public String name;
public Dog(String name){
this.name = name;
}
}
很多人寫程序的時候在類中定義了全局變數,然後用到的地方就加this.這樣很清晰。
當然,如果本類中調用其他類的方法,該方法可以把這個類傳過去,比如:
Man man = new Man();
man.parseDog(this);
只要本類有得方法和屬性,我們就可以this.一般情況下我們都省略,默認是本類的。

『拾』 求:JAVA中this的三種用法的詳解!!!謝謝 !

這個詳解,我找資料給你吧

8.8.1 this關鍵字
this關鍵字代表自身,在程序中主要的使用用途有以下幾個方面:
 使用this關鍵字引用成員變數
 使用this關鍵字在自身構造方法內部引用其它構造方法
 使用this關鍵字代表自身類的對象
 使用this關鍵字引用成員方法
8.8.1.1 引用成員變數
在一個類的方法或構造方法內部,可以使用「this.成員變數名」這樣的格式來引用成員變數名,有些時候可以省略,有些時候不能省略。首先看一下下面的代碼:
/**
* 使用this引用成員變數
*/
public class ReferenceVariable {
private int a;

public ReferenceVariable(int a){
this.a = a;
}

public int getA(){
return a;
}

public void setA(int a){
this.a = a;
}
}
在該代碼的構造方法和setA方法內部,都是用this.a引用類的成員變數。因為無論在構造方法還是setA方法內部,都包含2個變數名為a的變數,一個是參數a,另外一個是成員變數a。按照Java語言的變數作用范圍規定,參數a的作用范圍為構造方法或方法內部,成員變數a的作用范圍是類的內部,這樣在構造方法和setA方法內部就存在了變數a的沖突,Java語言規定當變數作用范圍重疊時,作用域小的變數覆蓋作用域大的變數。所以在構造方法和setA方法內部,參數a起作用。
這樣需要訪問成員變數a則必須使用this進行引用。當然,如果變數名不發生重疊,則this可以省略。
但是為了增強代碼的可讀性,一般將參數的名稱和成員變數的名稱保持一致,所以this的使用頻率在規范的代碼內部應該很多。
8.8.1.2 引用構造方法
在一個類的構造方法內部,也可以使用this關鍵字引用其它的構造方法,這樣可以降低代碼的重復,也可以使所有的構造方法保持統一,這樣方便以後的代碼修改和維護,也方便代碼的閱讀。
下面是一個簡單的示例:
/**
* 使用this關鍵字引用構造方法
*/
public class ReferenceConstructor {
int a;

public ReferenceConstructor(){
this(0);
}

public ReferenceConstructor(int a){
this.a = a;
}
}
這里在不帶參數的構造方法內部,使用this調用了另外一個構造方法,其中0是根據需要傳遞的參數的值,當一個類內部的構造方法比較多時,可以只書寫一個構造方法的內部功能代碼,然後其它的構造方法都通過調用該構造方法實現,這樣既保證了所有的構造是統一的,也降低了代碼的重復。
在實際使用時,需要注意的是,在構造方法內部使用this關鍵字調用其它的構造方法時,調用的代碼只能出現在構造方法內部的第一行可執行代碼。這樣,在構造方法內部使用this關鍵字調用構造方法最多會出現一次。
8.8.1.3 代表自身對象
在一個類的內部,也可以使用this代表自身類的對象,或者換句話說,每個類內部都有一個隱含的成員變數,該成員變數的類型是該類的類型,該成員變數的名稱是this,實際使用this代表自身類的對象的示例代碼如下:
/**
* 使用this代表自身類的對象
*/
public class ReferenceObject {
ReferenceObject instance;

public ReferenceObject(){
instance = this;
}

public void test(){
System.out.println(this);
}
}
在構造方法內部,將對象this的值賦值給instance,在test方法內部,輸出對象this的內容,這里的this都代表自身類型的對象。
8.8.1.4 引用成員方法
在一個類的內部,成員方法之間的互相調用時也可以使用「this.方法名(參數)」來進行引用,只是所有這樣的引用中this都可以省略,所以這里就不詳細介紹了。

熱點內容
android文件夾重命名 發布:2025-05-15 01:13:50 瀏覽:481
cns腳本 發布:2025-05-15 01:13:38 瀏覽:722
數據結構與演算法筆試題 發布:2025-05-15 01:04:20 瀏覽:417
搜狗輸入法如何直接編輯配置文件 發布:2025-05-15 00:51:47 瀏覽:668
電箱都有哪些配置 發布:2025-05-15 00:30:21 瀏覽:74
安卓qq邀請碼在哪裡尋找 發布:2025-05-15 00:02:04 瀏覽:35
三菱fx編程口 發布:2025-05-15 00:01:23 瀏覽:810
醫院招商引資宣傳片腳本 發布:2025-05-15 00:01:21 瀏覽:368
linuxcftp伺服器 發布:2025-05-14 23:58:18 瀏覽:718
探岳什麼配置才有駕駛模式選擇 發布:2025-05-14 23:53:17 瀏覽:146