[英]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();
}
}
這樣做在兩種主要情況下是有意義的:
this
與傳入的參數進行比較。其中一個示例是Comparable<T>
接口,您有一個方法public int CompareTo(T other)
在其中添加比較兩個對象並返回一個 int 的代碼代表他們的排名。 ... 或者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.