![](/img/trans.png)
[英]Why do I get a compilation error when I try to have two methods with the same name and parameter type?
[英]Why do I get an error when trying to enter a parameter?
我不知道为什么,但是我在启动我放在一起的代码时遇到了问题。 出于某种原因,当我在方法中输入参数时,代码会显示致命错误。 我已经检查了几次,但无法弄清楚我做错了什么。
任何意见,将不胜感激。
public class songcode
{
/**
* @param args the command line arguments
*/
public class Songwriter{
private int song;
//variable for the amount of songs played
private int royalty;
//variable for the amount of payments
private int identification_number;
//id number of the song writer
public String first_name;
//string for the first name of songwriter
public String last_name;
//string for the last name of the songwriter
public int Adding_song(){
song = song + 1;
if(song > 100){
System.out.println("You are a big star!");
}
return(song);
}
public int Requesting_check(){
royalty = royalty + 10;
System.out.println("You just got payed");
return royalty;
}
public static void main(String[] args){
}
}
}
请参阅评论以获得一些快速帮助:)
public class SongWriter {
private int song;
//variable for the number of songs played
private int royalty;
//variable for the number of payments
private int identification_number;
//id number of the song writer
public String first_name;
//string for the first name of songwriter
public String last_name;
//string for the last name of the songwriter
public SongWriter(int myFavSong){
//define default values for vars above
this.song = myFavSong;
//'This' references the Songwriter object not required but useful practice.
}
// Lower case first word upcase second : camelCase
public int addingSong(int numSongs){
song = song + numSongs;
if(song > 100){
System.out.println("You are a big star!");
}
return(song);
}
public int requestingCheck(){
royalty = royalty + 10;
System.out.println("You just got payed");
return royalty;
}
// The main method shouldn't be nested another class
public static void main(String[] args){
//In java because our variables and functions are not static
//you need a reference to your SongWrite object
SongWriter songWriter = new SongWriter();
// Notice I modified your function to take in an int as a param
songWriter.song = addingSong(5);
System.out.println(songWriter.song);
}
}
由于缺乏信息,我们有点难以解决您的问题。 请准确地向我们提供您采取了哪些步骤以及您遇到了哪些错误。
从我现在看到的,由于您使用的是内部类(另一个类中的类),您应该将其设为静态:
static class Songwriter{/*your code here*/ }
当你得到它时,你可以通过调用你的外部类在你的 main() 中创建一个该类的对象,所以在你的情况下它将是:
songcode.Songwriter name = new songcode.Songwriter();
现在,您可以通过使用 name.method() 来使用内部类中的方法,例如:
name.Requesting_check(); for(int i = 0; i<200; i++){ name.Adding_song(); }
就我个人而言,我会创建一个名为 Songwriter.java 的新 Java 文件,添加一个构造函数并使用它,但也许这不是您在这里测试的内容 ;-)
希望它确实对您有所帮助,请下次提供更详细的信息,这样我们就可以给您一个确切的答案,而无需猜测出什么问题以及您想用代码实现什么目的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.