Javascript 如何修复不可访问的方法
当我创建类Javascript 如何修复不可访问的方法,javascript,java,methods,bluej,Javascript,Java,Methods,Bluej,当我创建类champosion的对象时,它显示没有可访问的方法 public class Championship { private ListOfDrivers driversList; private ListOfVenues venuesList; private RNG rand; public static void main(St
champosion
的对象时,它显示没有可访问的方法
public class Championship
{
private ListOfDrivers driversList;
private ListOfVenues venuesList;
private RNG rand;
public static void main(String[] args) {
Championship sim = new Championship();
sim.startgame();
}
private void startgame()
{
this.driversList = new ListOfDrivers();
this.venuesList = new ListOfVenues();
this.rand = new RNG();
System.out.println("List of venues:");
venuesList.printVenues();
System.out.println("And starts....");
for(Venue venue : venuesList.getVenues()) {
System.out.println("------------------------------------------------------------");
System.out.println("Welcome one and all to " + venue.getVenueName() + "!");
// Give race penalties at the start of the race
for(Driver driver: driversList.getDrivers()) {
switch(driver.getRanking()) {
case 1: driver.setTime(0); break;
case 2: driver.setTime(3); break;
case 3: driver.setTime(5); break;
case 4: driver.setTime(7); break;
default: driver.setTime(10);
}
}
System.out.println("Drivers list!");
driversList.printDrivers();
System.out.println("Race starts!!");
for(int lap = 1; lap<=venue.getNoOfLaps(); lap++) {
System.out.println("In Lap " + lap + " now..");
for(Driver driver: driversList.getDrivers()) {
if(driver.getEligibleToRace())
{
int faultRand = rand.faultRNG();
if(faultRand == 1)
{
System.out.println(driver.getName() + " just had an unrecoverable mechanical fault!!");
System.out.println(driver.getName() + " is out of the race..");
driver.setEligibleToRace(false);
driver.setTime(99999);
continue;
}
else if(faultRand <=3)
{
System.out.println(driver.getName() + " just had a major mechanical fault!!");
driver.increaseTime(120);
}
else if(faultRand <=5)
{
System.out.println(driver.getName() + " just had a minor mechanical fault!!");
driver.increaseTime(20);
}
driver.increaseTime(venue.getAverageLapTime());
if(driver.getSkill().equals("Overtaking"))
{
if(lap%3 == 1) {
int reduc = rand.timeReductionRNG(10, 20);
driver.decreaseTime(reduc);
System.out.println(driver.getName() + " reduced time of " + reduc + " seconds");
}
} else
{
int reduc = rand.timeReductionRNG(1, 8);
driver.decreaseTime(reduc);
System.out.println(driver.getName() + " reduced time of " + reduc + " seconds");
}
}
}
Driver currentRaceLeader = driversList.lowestTime();
System.out.println("Lap " + lap + " statistics:");
System.out.println("Leader: " + currentRaceLeader.getName() + "\tTotal Time: " +
currentRaceLeader.getTime() + " seconds");
}
System.out.println("The championship race at " + venue.getVenueName() + " has concluded!");
driversList.allocateScores();
System.out.println("Results are: ");
String format = "%20s | %8s | %10s | %8s ";
System.out.println(String.format(format, "Name", "Ranking", "Race Time", "Score"));
for(Driver driver : driversList.getDrivers()) {
if(driversList.getDrivers().get(4) == driver)
break;
System.out.println(String.format(format, driver.getName(), driver.getRanking(),
driver.getTime(), driver.getScore()));
}
}
System.out.println("------------------------------");
System.out.println("Championship has concluded and the champion is:");
Driver winner = driversList.highestScore();
System.out.println(winner.getName() + " with a total of " + winner.getScore() + " points!!");
System.out.println("------------------------------");
}
}
公开课冠军赛
{
私人司机名单;
私人场所名录;
私人RNG兰特;
公共静态void main(字符串[]args){
锦标赛sim=新锦标赛();
sim.startgame();
}
私有void startgame()
{
this.driversList=新的ListOfDrivers();
this.venuesList=新的ListofVinces();
this.rand=new RNG();
System.out.println(“场馆列表”);
venuesList.printVinces();
System.out.println(“并开始…”);
对于(地点:venuesList.getVinces()){
System.out.println(“-------------------------------------------------------------------------------------”);
System.out.println(“欢迎所有人加入”+venue.getVenuName()+“!”;
//在比赛开始时给予比赛处罚
对于(驱动程序:driversList.getDrivers()){
开关(driver.getRanking()){
案例1:驱动程序设置时间(0);中断;
案例2:驱动程序设置时间(3);中断;
案例3:驱动程序设置时间(5);中断;
案例4:驱动程序设置时间(7);中断;
默认值:driver.setTime(10);
}
}
System.out.println(“驱动程序列表”);
printDrivers();
System.out.println(“比赛开始!!”;
对于(int lap=1;lapYes),除了champion
对象的默认构造函数之外,所有方法都标记为私有,因此只能在类实现本身内部访问
只要实例化champosion
对象的实例,就会自动调用startgame()
方法
public static void main(String[] args) {
Championship sim = new Championship();
sim.startgame();
}
如果您希望能够在不立即调用startgame()
方法的情况下创建champion
实例,或在实例化外部调用startgame()
方法,请标记startgame()
public
和/或从构造函数中删除sim.startgame()
方法原型应该匹配
public void startgame() {
...
}
“没有可访问的方法”是什么意思?你在构造函数中调用sim.startgame()
,你说它编译得很好。我也很困惑,这个错误消息出现在哪里,它到底是什么?“javascript”??这不是javascript,而是java。我的意思是,当我创建一个类冠军的对象,然后右键单击该对象尝试访问任何方法时,它表明没有可访问的方法。