如果这个标题没有正确描述问题,我很抱歉,但我不确定如何描述它.
我有一个叫做的方法changeToWhite()可以调用一个例如Piece.changeToWhite()
但是为了能够将这件作品改成白色,我需要访问这件作品,所以我决定将其作为参数传递给我 Piece.changeToWhite(Piece)
作为参数传入似乎是不必要的.
这些toUpperCase()功能以某种方式完成它,例如someString.toUpperCase()
我怎样才能做到这一点?
如果changeToWhite在Piece类上定义,则可以使用实例this来获取对当前对象的引用.就像是:
class Piece {
private String color;
...
public void changeToWhite() {
this.color = 'white';
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,在类上定义方法时,需要有一个实例来调用方法.
所以
Piece piece1 = new Piece();
piece1.changeToWhite();
Run Code Online (Sandbox Code Playgroud)
注意,Java标准是使用大写来定义类(例如Piece),并使用camel case(例如changeToWhite)方法和字段.
其他方法是使用静态方法.在这种情况下,该方法属于该类,它没有this像实例方法那样的上下文
class Piece {
private String color; // instance field
/**
Takes a piece instance as an argument, and operates on that.
*/
private static void changeToWhite(Piece piece) {
piece.setColor('white'); // assume setColor exists
}
}
Run Code Online (Sandbox Code Playgroud)
但第一种方式更可取.