簡體   English   中英

如何將一種方法與另一種方法組合使用

[英]How do I use a method compositionally with another method

老實說,我不知道如何解決這個問題,這意味着當用戶在 class Player 的移動方法中輸入距離時,玩家 position 會相應移動。 我還希望 Jar 的 position 根據玩家移動的距離移動相同的量。


public class Player
{
    // instance variables - replace the example below with your own
    private String name;
    private int position;
    private Jar jar;

    public Player()
    {
        position = 0;
        jar = new Jar();

        System.out.print("Enter player's name: ");
        this.name = Global.keyboard.nextLine();

    }

    public int move(int distance)
    {
        position = position + distance;
    }
}


public class Jar
{
    private int position;
    private Stone stone;


    public Jar()
    {
        position = 0;
        stone = null;
    }

    public Jar(int initPos, Stone stone)
    {
        position = initPos;
        this.stone = stone;
    }

     public void move()
    {
        Player move = new Player();
    }
}

您可以在Player中修改Jar position 。 此外,您可能不想每次更改 position 時都創建新Player

public class Player {

    ...

    public int move(int distance) {
        position = position + distance;
        jar.move(distance);
    }
}


public class Jar {
    private int position;
    private Stone stone;

    public Jar() {
        position = 0;
        stone = null;
    }

    public Jar(int initPos, Stone stone) {
        position = initPos;
        this.stone = stone;
    }

     public void move(int distance) {
        position += distance;
    }
}

我已將方法更改為 void,因為當 move 方法獲取距離值時,沒有理由返回值。 它還將更改 Player class 實例的 position 實例它將調用 Jar 實例移動方法。 When Jar Class Instance move method is called then jar position also be changed Look at the Jar Move method

public class Player
{
    // instance variables - replace the example below with your own
    private String name;
    private int position;
    private Jar jar;

    public Player()
    {
        position = 0;
        jar = new Jar();

        System.out.print("Enter player's name: ");
        this.name = Global.keyboard.nextLine();

    }

    public void move(int distance)
    {
        position = position + distance;
        jar.move(distance); 
    }
}


public class Jar
{
    private int position;
    private Stone stone;


    public Jar()
    {
        position = 0;
        stone = null;
    }

    public Jar(int initPos, Stone stone)
    {
        position = initPos;
        this.stone = stone;
    }

     public void move( int distance)
    {
       position = position+distance;
    }
}
```

暫無
暫無

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

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