Java 从另一个类获取字段';不使用静态
我在一个类中声明了一个对象,但现在我在另一个类中,我希望在不使所有内容都静态的情况下获取对象的字段。在当前类中,我没有存在于另一个类中的对象,并且我不知道如何调用它。如果我使用getter,我想我仍然需要当前类中的对象来调用它,而且我不想让字段成为静态的,因为我希望每个对象的字段都是唯一的Java 从另一个类获取字段';不使用静态,java,Java,我在一个类中声明了一个对象,但现在我在另一个类中,我希望在不使所有内容都静态的情况下获取对象的字段。在当前类中,我没有存在于另一个类中的对象,并且我不知道如何调用它。如果我使用getter,我想我仍然需要当前类中的对象来调用它,而且我不想让字段成为静态的,因为我希望每个对象的字段都是唯一的 package main; import daysOfTheWeek.*; public class Game { private int currentDayOfWeek = 1; pr
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();
}
}
我就是这样创建了这两个对象,并通过一种方法设置了它们的字段。现在我尝试使用这两个对象,但在第三类中,在您的主类中:
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;
}
}
第三个例子,让第三个通过setter引用。对不起,我完全不理解你的问题。代码与问题的关系如何?你能在问题的文本中引用你代码的特定部分吗?还有,你所说的“我没有存在于另一个类中的对象,我真的不知道如何调用它”是什么意思?你不能调用一个对象;你只能调用方法。我在其他类中声明了一个对象,但我不能在这个类中使用它,也许我应该尝试通过方法调用它,这样我就可以使用这个类中的对象字段了?真的很抱歉,但这是我的第一个面向对象程序,我有困难的时候。它甚至更复杂,因为我在一个类中声明了它,并通过他原来的类中的方法设置了它的字段,现在我想在第三个类中使用这个对象。你需要一个对象的实例。你实际上还没有展示你的问题。一、两、三节课其实没关系。您有一个类A的实例,它需要对类B的实例的引用。您可以显式地将对类A实例的引用传递给类B的实例(即通过setter或构造函数),也可以将对类B的引用创建为静态成员(这不是一个好的做法,除非有原因)不抱歉,也许我的问题不够清楚。这很好用。我有一个静态方法,我通过类名来调用它。我只需要引用一个我在其他类中已经有过的对象,但我不知道如何使它发生。你的问题一点也不清楚。你的问题与你的代码有什么关系?@GeorgiMichev我更新了答案,加入了另一个例子。也许这更符合你的想法。@GeorgiMichev把它放在你的问题中,格式化,而不是评论。是的,我还在这里添加了另一个类。现在我只需要在我的第三个类中引用这两个对象,这样我就可以访问它们的字段了