導航:首頁 > 編程語言 > javathis代表什麼

javathis代表什麼

發布時間:2023-09-06 05:29:49

A. 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));
}
}

希望對您有所幫助!~

B. java里this是什麼意思

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

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

C. 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;
}
}

其中我們開發中最常用到的地方是第二點,消除歧義。

比方說有類
public class A
裡面有幾個變數
private String aa,
private String bb;

this 在這里就代表A ,其實它是對對象A的引用。
我們在用到aa或者bb的時候,this.aa 和 直接用aa 是沒有區別的。
但是假如你在某個方法里也有個變數aa,比如:
public void dosomething(String aa){
this.aa = aa;
//這個時候就this.aa 代表對象A中的變數,而不加this的話,代表方法中的變數。
}

D. 請問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的構造函數。

3. 注意匿名類和內部類中的中的this。
有時候,我們會用到一些內部類和匿名類,如事件處理。當在匿�嘀杏胻his時,這個this則指的是匿名類或內部類本身。這時如果我們要使用外部類的方法和變數的話,則應該加上外部類的類名。如下面這個例子:

public class A {
int i = 1;

public A() {
Thread thread = new Thread() {
public void run() {
for(;;) {
A.this.run();
try {
sleep(1000);
} catch(InterruptedException ie) { }

}
}
}; //注意這里有;
thread.start();
}

public void run() {
System.out.println("i = " + i);
i++;
}

public static void main(String[] args) throws Exception {
new A();
}

}

在上面這個例子中, thread 是一個匿名類對象,在它的定義中,它的 run 函數里用到了外部類的 run 函數。這時由於函數同名,直接調用就不行了。這時有兩種辦法,一種就是把外部的 run 函數換一個名字,但這種辦法對於一個開發到中途的應用來說是不可取的。那麼就可以用這個例子中的辦法用外部類的類名加上 this 引用來說明要調用的是外部類的方法 run。

4。在構造函數中,通過this可以調用同一class中別的構造函數,如
public class Flower{
Flower (int petals){}
Flower(String ss){}
Flower(int petals, Sting ss){
//petals++;調用另一個構造函數的語句必須在最起始的位置
this(petals);
//this(ss);會產生錯誤,因為在一個構造函數中只能調用一個構造函數
}
}

值得注意的是:
1:在構造調用另一個構造函數,調用動作必須置於最起始的位置。
2:不能在構造函數以外的任何函數內調用構造函數。
3:在一個構造函數內只能調用一個構造函數。

E. 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類。這里為了需要所以這樣寫

F. 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){

}

}

閱讀全文

與javathis代表什麼相關的資料

熱點內容
怎麼樣分解壓縮包圖標 瀏覽:617
php兩年工作經驗簡歷 瀏覽:763
怎麼提前解壓房貸 瀏覽:698
反詐宣傳app哪裡可以拿到用戶資料 瀏覽:855
華為交換機命令配置 瀏覽:11
電機pid演算法實例c語言 瀏覽:972
安裝ue5未找到金屬編譯器 瀏覽:963
l1壓縮性骨折微創手術 瀏覽:615
看電腦配置命令 瀏覽:108
單片機調用db數值偏移量 瀏覽:446
賓士smart車型壓縮機功率 瀏覽:527
伺服器預留地址獲取 瀏覽:1004
雲庫文件夾怎麼設置 瀏覽:295
文件夾目錄製作自動跳轉 瀏覽:454
在哪個音樂app能聽exo的歌 瀏覽:849
pdf超級加密 瀏覽:49
蘋果手機app安裝包怎麼解壓並安裝 瀏覽:907
中原30系統源碼 瀏覽:187
程序員如何遵紀守法 瀏覽:501
java的webxml配置 瀏覽:963