2016-04-20 73 views
-2

我需要一点帮助理解构造函数。它不是完整的代码,我只需要帮助理解一个部分。我的代码如下:Java构造函数语法问题

School.java

public class School { 
private String name; 
private int busNumber; 
enter code here 
public School (String name) { 
    this.name = name; 
} 

public String getSchoolName() { 
    return name; 
} 

public int getBusNumber() { 
    return bus Number; 
} 

Main.Java

System.out.println("Enter school number 1: "); 
school1 = keyboard.nextLine(); 
School s1 = new School(school1); 

System.out.println("Enter school number 2: "); 
school2 = keyboard.nextLine(); 
School s2 = new School(school2); 

System.out.println("School 1 is " + s1.getName()); 
System.out.println("School 2 is " + s2.getName()); 


System.out.println("Enter the bus number 1: "); 
bus1 = keyboard.nextLine(); 

//现在我想要做的就是发送总线号码getBusNumber。

//如何发送bus1​​以便我可以使用s1.getBusNumber();稍后致电该号码!我觉得这应该是如此简单,但我无法理解它或找到如何在任何地方做到这一点。我也不想使用set函数。任何语法帮助将是真棒!

谢谢!

+1

为什么你不想使用set函数吗?这似乎是使用一个完美的场景。 –

+0

它适用于我正在参加的在线课程及其定义的不能改变的学校课程。为了学习的目的,我想,我希望我能以自己的方式去做。 – ImSobesBoosted

+0

如果您提供的学校课程是整个学校课程,并且您无法更改它,那么真的没有办法在对象中设置busNumber。有更多的类定义吗? –

回答

1

有了你张贴在这里的代码,因为busNumber被声明为private ... 您需要(是一个很好的做法)来定义一个二传手在类学校成员总线,可以是不可能的使用公共成员,但因为你需要更改busNumber公众的访问是不是一个很好的OOP设计...

public void setBusNumber(int number) { 
    this.busNumber = number; 
} 

,并从主Java调用它

System.out.println("Enter the bus number 1: "); 
bus1 = keyboard.nextLine(); 
s1.setBusNumber(bus1); 

注意你需要确认你所读的是一个数字,因为下一行是返回一个字符串...

+1

嗯,op说'我也不想使用set函数。 – user3437460

+0

不能使用set函数,但是谢谢! – ImSobesBoosted

+0

如果你不使用setter你需要改变busnumber的访问,但我不推荐这个 –

1

所以如果你需要不使用一个二传手,你可能需要把它的构造。

所以你的构造将

public School (String name, int busNumber) { 
    this.name = name; 
    this.busNumber = busNumber 
} 

和你的代码看起来像这样

System.out.println("Enter school number 1: "); 
school1 = keyboard.nextLine(); 

System.out.println("Enter school number 2: "); 
school2 = keyboard.nextLine(); 

System.out.println("School 1 is " + school1); 
System.out.println("School 2 is " + school2); 

System.out.println("Enter the bus number 1: "); 
bus1 = keyboard.nextLine(); 

int intBus1 = Integer.parseInt(bus1) 

School s1 = new School(school1, intBus1); 

然后后面的代码中,你可以调用,如果需要获得s1.getBusNumber()