java 私有变量访问_Java - 访问私有实例变量

我需要从以下类列表(Species.java)访问私有变量,以便在KlingonOx.java类中使用它们。

KlingonOx.java类的目的是确定大象物种的种群数量将大于克林贡牛种的数量。

这是Species.java类:

import java.util.Scanner;

public class Species

{

private String name;

private int population;

private double growthRate;

public void readInput()

{

Scanner keyboard = new Scanner(System.in);

System.out.println("What is the species' name?");

name = keyboard.nextLine();

System.out.println("What is the population of the species?");

population = keyboard.nextInt();

while(population < 0)

{

System.out.println("Population cannot be negative.");

System.out.println("Reenter population:");

population = keyboard.nextInt();

}

System.out.println("Enter growth rate (% increase per year):");

growthRate = keyboard.nextDouble();

}

public void writeOutput()

{

System.out.println("Name = " + name);

System.out.println("Population = " + population);

System.out.println("Growth rate = " + growthRate + "%");

}

public int predictPopulation(int years)

{

int result = 0;

double populationAmount = population;

int count = years;

while( (count>0) && (populationAmount>0) )

{

populationAmount = (populationAmount + (growthRate/100) * populationAmount);

count --;

}

if (populationAmount > 0)

result = (int)populationAmount;

return result;

}

public Species(String name)

{

name = name;

population = 0;

growthRate = 0.0;

}

public Species(int population)

{

name = "";

if (population > 0)

population = population;

else

{

System.out.println("ERROR: using a negative" + "population.");

System.exit(0);

}

growthRate = 0.0;

}

public Species(double growthRate)

{

name = "";

population = 0;

growthRate = growthRate;

}

public Species(String name, int population, double growthRate)

{

name = name;

if (population > 0)

population = population;

else

{

System.out.println("ERROR: using a negative" + "population.");

System.exit(0);

}

growthRate = growthRate;

}

public Species()

{

name = "";

population = 0;

growthRate = 0;

}

public void setSpecies(String newName, int newPopulation, double newGrowthRate)

{

name = newName;

if (newPopulation >= 0)

population = newPopulation;

else

{

System.out.println("ERROR: using a negative " + "population.");

System.exit(0);

}

growthRate = newGrowthRate;

}

public void setName(String name)

{

name = name;

}

public void setPopulation(int population)

{

if (population > 0)

population = population;

else

{

System.out.println("ERROR: using a negative" + "population.");

System.exit(0);

}

}

public void setGrowthRate(double growthRate)

{

growthRate = growthRate;

}

public String getName()

{

return name;

}

public int getPopulation()

{

return population;

}

public double getGrowthRate()

{

return growthRate;

}

public boolean equals(Species otherObject)

{

return (name.equalsIgnoreCase(otherObject.name)) &&

(population == otherObject.population) &&

(growthRate == otherObject.growthRate);

}

}

这是KlingonOx.java类:

import java.util.Scanner;

public class KlingonOx extends Species

{

public static void main(String[] args)

{

new KlingonOx().run();

}

public void run()

{

Species klingonox = new Species();

Species elephant = new Species();

System.out.println("Please enter data on the species Klingon Ox.");

klingonox.readInput();

klingonox.writeOutput();

klingonox.setPopulation(int population);

population = population;

klingonox.setGrowthRate(double growthRate);

growthRate = growthRate;

System.out.println("Please enter data on the species Elephant.");

elephant.readInput();

elephant.writeOutput();

elephant.setPopulation(population);

population = population;

elephant.setGrowthRate(growthRate);

growthRate = growthRate;

int year = 0;

if(klingonox.population < elephant.population)

{

while(klingonox.population < elephant.population)

{

klingonox.population = (int)(klingonox.population + (klingonox.population * (klingonox.growthRate/100) ) );

elephant.population=(int)(elephant.population + (elephant.population * (elephant.growthRate/100) ) );

year++;

}

System.out.println("KLINGON OX EXCEEDS ELEPHANT IN" + year + "YEARS");

}

else

{

while(klingonox.population > elephant.population)

{

klingonox.population=(int)(klingonox.population+(klingonox.population*(klingonox.growthRate/100)));

elephant.population=(int)(elephant.population+(elephant.population*(elephant.growthRate/100)));

year++;

}

System.out.println("ELEPHANT EXCEEDS KLINGON OX IN" + year + "YEARS");

}

}

}

KlingonOx.java类给出了一个错误,即“population”和“growthRate”是Species中的私有实例变量,因此无法访问。我曾尝试使用getPopulation和getGrowthRate方法调用来检索变量,但我不确定如何正确地执行此操作。

感谢任何反馈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值