java中一个类中的一个方法不能调用另一个类中的方法的问题

java中一个类中的一个方法不能调用另一个类中的方法的问题,java,class,Java,Class,所以基本上我有一个阶级村庄,它创造了一个由阶级组成的人口。如果每个人都有病,我现在想实现一天中发生的事情,比如一个人正在康复或死亡,但是当我使用函数dayPassesAll调用daypass时,我得到一个错误,说我不能以静态方式调用非静态变量 我实现了下面的一些建议,虽然我的代码似乎正在运行,但我现在遇到了一个问题,我的疾病似乎正在蔓延,而不是应该减少到什么程度。如果我运行它,第一个说的是大约300-340行,也就是大约1000人口的32%。但是,当我让一天过去,让每个人先检查他们是否生病,然后

所以基本上我有一个阶级村庄,它创造了一个由阶级组成的人口。如果每个人都有病,我现在想实现一天中发生的事情,比如一个人正在康复或死亡,但是当我使用函数dayPassesAll调用daypass时,我得到一个错误,说我不能以静态方式调用非静态变量

我实现了下面的一些建议,虽然我的代码似乎正在运行,但我现在遇到了一个问题,我的疾病似乎正在蔓延,而不是应该减少到什么程度。如果我运行它,第一个说的是大约300-340行,也就是大约1000人口的32%。但是,当我让一天过去,让每个人先检查他们是否生病,然后掷骰子看他们是否会好起来,我似乎得到了增加而不是减少

 import java.lang.reflect.Array;
import java.util.Random;
public class labb2 {
      public static void main(String[] args){
Village village=new Village();
village.dayPassesAll();

}}

class Village {
final int SIZE=1000;
private Person[] population=new Person[SIZE];
  Village(){
   
   for(int i=0; i<SIZE; i=i+1){
     Person personen = new Person();
     population[i]=personen;
  
}
int countsick=countSick(population);
System.out.println(countsick);

  }

int countSick(Person[] population){
int sjuka=0;
for(Person personen: population){
boolean checker = personen.isSick;
if(checker==true){
sjuka=sjuka+1;}
}
return sjuka;}
public void dayPassesAll(){
    for(Person personen:population){
        personen.dayPasses();
    }
    int countsick=countSick(population);
System.out.println(countsick);
}
}



class Person{
boolean isSick;
final double INIT_SICK_PROB=0.32;
final double GET_WELL_PROB=0.20;
private Random rand = new Random();
Person(){

double checker = this.rand.nextDouble();
if(checker<=INIT_SICK_PROB){
isSick=true;}
else{
isSick=false;}
}
public void dayPasses(){
    
    if(this.isSick=true){
        double checker = this.rand.nextDouble();
        if(checker<=GET_WELL_PROB){
            this.isSick=false;
            
        
    }}
}
}
import java.lang.reflect.Array;
导入java.util.Random;
公共类labb2{
公共静态void main(字符串[]args){
村庄=新村庄();
village.dayPassesAll();
}}
阶级村{
最终整数大小=1000;
私人[]人口=新人[人数];
村庄(){

对于(inti=0;i这个开头怎么样

(我没有带编译器,因此语法正确性可能并不完美):

公共类Labb2{
公共静态void main(字符串[]args){
村庄=新村庄();
village.dayPassesAll();
}
}
阶级村{
最终整数大小=1000;
私人[]人口=新人[人数];
村庄(){

对于(int i=0;i请正确格式化您的代码。现在很难阅读。请使用interfunction,您的问题很难理解。第三,请解释您调用方法时遇到的“问题”。它是否输出了与您预期不同的内容?它是否编译?请阅读“如何创建一个”。然后使用该链接改进您的问题(不要通过评论添加更多信息)。否则我们无法回答您的问题并帮助您。“我有问题”不是正确的问题描述。我认为类
Person
中方法
DayPass()
的第一行是错误的。应该是:
如果(this.isSick==true){
当我运行你在问题中发布的代码时,我得到(例如)318和809,但当我用我认为应该是的东西运行它时,即双等号,我得到(再次是一个示例)312和253。也许你应该学习使用调试器?或一些自动工具来检查代码并报告潜在问题。谢谢!我确实遇到了一些问题,因为我的疾病正在蔓延,而不是消失。我在标题中添加了我的全部代码