Java方法如何使用谁在其中传递它们

Mik*_*han 1 java methods

如果这个标题没有正确描述问题,我很抱歉,但我不确定如何描述它.

我有一个叫做的方法changeToWhite()可以调用一个例如Piece.changeToWhite()

但是为了能够将这件作品改成白色,我需要访问这件作品,所以我决定将其作为参数传递给我 Piece.changeToWhite(Piece)

作为参数传入似乎是不必要的.

这些toUpperCase()功能以某种方式完成它,例如someString.toUpperCase()

我怎样才能做到这一点?

hvg*_*des 9

如果changeToWhitePiece类上定义,则可以使用实例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)

但第一种方式更可取.