簡體   English   中英

您是否應該使用 object 作為該對象 class 中的方法的方法參數?

[英]Should you use an object as a method parameter for a method within that objects class?

我對 Java 編程和 StackOverflow 都是新手,如果這聽起來微不足道,我深表歉意。

我在 class 中編寫了一個方法,該方法在邏輯中有時會從同一個 class 訪問 object 的字段值。

從約定的角度來看,將 object 作為方法的參數包含在內會更好嗎? 還是直接在方法中使用字段名稱並使用點符號指向 main 方法中的 object?

示例 1:

public class A
{
    private String name;


    public void method(A objectOne)
    {
        System.out.println(objectOne.name);
    }

}

示例 2:

public class A
{
    private String name;
    
    public void method()
    {
        System.out.println(name);
    }


    public static void main(String[] args)
    {
        A test = new A();
        test.method();
    }
}

這樣做在兩種主要情況下是有意義的:

  1. 您將當前 object, this與傳入的參數進行比較。其中一個示例是Comparable<T>接口,您有一個方法public int CompareTo(T other)在其中添加比較兩個對象並返回一個 int 的代碼代表他們的排名。 ... 或者
  2. 方法是static 在您的示例中,這將是 static 工作良好的完美示例。

例如:

public class A implements Comparable<A> {
    private String name;

    public int compareTo(A other) {
            // uses String#compareTo method
            return this.name.compareTo(other.name);
    }
    
    public static void display(A other) {
        System.out.println(other.name);
    }

}

除非您以某種方式需要訪問該類型的兩個實例,否則沒有任何理由讓 class 的非靜態方法將該 class 的實例作為參數。 使用this顯然是這里的首選方式。

在方法中需要兩個實例(特別是比較它們)的示例是equals()compareTo()方法:它們特別比較兩個對象(分別用於相等或順序)。 在那里將第二個作為顯式參數傳遞是有意義的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM