在不使用 static 的情况下从另一个类的对象获取字段



>我在一个类中声明了一个对象,但现在我在另一个类中,我想在不使所有内容都静态的情况下获取对象的字段。在当前类中,我没有存在于其他类中的对象,我真的不知道如何调用它。如果我使用 getter,我想我仍然需要当前类中的对象来调用它,我也不想使字段成为静态的,因为我希望字段对于每个对象都是唯一的。

package main;
import daysOfTheWeek.*;
public class Game {
    private int currentDayOfWeek = 1;
    private int totalDays = 1;
    boolean playerHadEvent = false;
    public void startGame(){
        while(true){
            boolean eventDay = false;
            if(currentDayOfWeek == 5 || currentDayOfWeek == 6){      //check if current day isn't Friday or Saturday
                eventDay = true;
            }
            System.out.println("==DAY " + totalDays + ", " + DaysOfTheWeek.getDay(currentDayOfWeek)+"==");
            if(eventDay){
                String event = Events.getEvent();
                if(event.equals("gaming")){
                    System.out.println("Today there is " + Messages.getGamingEvent());
                    if(){ //get the field from another class's object
                    }
                }
            }

            totalDays++;
            currentDayOfWeek++;
            if(currentDayOfWeek == 8){
                currentDayOfWeek = 1;
                playerHadEvent = false;
            }
        }
    }
}
package main;
import daysOfTheWeek.*;
import dices.*;

public class Demo {
    public static void main(String[] args) {
        Student player = new Student();
        Student computer = new Student();
        player.generatePlayer(player);
        computer.generateComputer(computer);
        Game startingGame = new Game();
        startingGame.startGame();
    }
}

这就是我创建 2 个对象并通过方法设置它们的字段的方式。现在我正在尝试使用这两个对象,但在 3rd 类中

在你的主类中:

public class Main{
    public static void main(String[] args){
        Game game = new Game();
        System.out.println(game.getCurrentDayOfWeek());
    }
}

所以你需要创建方法getCurrentDayOfWeek。

您可以创建单例类型模式。

class Junk{
    int value;
    static Junk instance = new Junk();
    static int getJunkStuff(){
        return instance.value;
    }
    static void setInstance(Junk j){
        instance = j;
    }
}

听起来你应该更好地构建你的代码,所以也许你应该粘贴一个更完整的示例。

第三个类需要对这些对象的引用?然后给它一个参考。

class Third{
    Game game;
    public Third(Game g){
        game = g;
    }
    public Third(){
    }
    public void setGame(Game g){
         this.game = g;
    }
}

所以第三个例子,让第三个通过一个二传手有一个参考。

最新更新