繁体   English   中英

为什么在尝试输入参数时出现错误?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM