this的用法??

請問Java中this.xxxx←這個指令要怎麼使用?

有何功用??

能否舉個例子述說一下呢??

(我剛學Java 很多名詞和概念都不太清楚...)

謝謝~~^M^~~

2 Answers

Rating
  • ?
    Lv 6
    1 decade ago
    Favorite Answer

    考慮下面這個類別:

    Ball.java

    public class Ball { private double radius; private String name; public Ball() { this(0.0, "no name"); } public Ball(double radius, String name) { this.radius = radius; this.name = name; } public double getRadius() { return radius; } public double getVolumn() { return (4 / 3 * Math.PI * radius * radius * radius); } public String getName() { return name; } public void setRadius(double radius) { this.radius = radius; } public void setName(String name) { this.name = name; } }

    當使用這個類別新增兩個物件ball1與ball2時,ball1與ball2會各自擁有自己的radius與name資料成員,然而方法成員在記憶

    體中卻只有一份。

    當使用ball1.getName()與b2.getName()方法取回name的名稱時,即然類別的方法成員只有一份,getName()如何知

    道它傳回的name是ball1物件的,還是ball2物件的呢?

    其實您使用物件名稱來呼叫方法成員時,程式會將物件的參考告知方法成員,而在方法中,一個類別資料成員其實會隱含一個this參考,這個this參

    考會儲存傳遞進來的物件參考,當您呼叫getRadius()函式時,其實相當於執行:

    public double getRadius() {

        return this.radius;

    }

    當ball1呼叫getRadius()方法時,this所參考的就是ball1所參考的物件,而使用ball2呼叫

    getRadius()方法時,this所參考的就是ball2所參考的物件,所以getRadius()可以正確的得知該傳回哪一個物件的radius

    資料。

    每一個類別的方法成員都會隱含一個this參考,用來指向呼叫它的物件,當您在方法中使用資料成員時,都會隱含的使用this指標。更多內容可以參考:關於 this

  • Anonymous
    1 decade ago

    你的排版好漂亮喔@@

Still have questions? Get your answers by asking now.