编程作业;构造函数 - >无效的表达开始+ SemiColon痴迷

时间:2014-09-27 19:08:31

标签: java constructor instance-variables

我参加了Roane州社区学院的编程课程。我已经阅读了整个第3章,采取了quize,并通过了。

所以,现在我在尝试使用3个不同的实例变量创建一个Employee类文件几个小时之后,我感到非常沮丧,然后由Employee Constructor初始化。

这三个变量是这样的:

  1. 名字(字符串类型变量)
  2. 姓氏(字符串类型变量)
  3. 月薪(双重浮动变量)
  4. 教师向我们提供了构造函数的一些签名和方法供您参考:"

    public Employee(String fName, String lName, double empSalary )
    public void setFirstName( String fName )
    public void setLastName( String lName )
    public void setSalary(double empSalary )
    public String getFirstName()
    public String getLastName()
    public double getSalary()
    

    所以,我已经把自己疯了两次,并且再一次在我的智慧结束时,因为我操纵了我的代码,并且使用我认为可能产生正确结果的变量替换了诸如int之类的变量,然后将其更改回来,一直在咨询互联网,本网站上的主题和我的教科书。这是我的"香草格式"中的代码。在我为其代码添加任何形式的替代方案之前:

    / ************* *******  文件:9-27.java  作者:Steven Dorsey  日期:2014年9月  描述:这是一个Employee类文件 的 *************** *** /

    //Initiation the Class file first iirc
    

    公共类员工 {     int FirstName,LastName,Salary; //实例变量

    // main method begins program execution
    public static void main( String[] args )
    {
        // should introduce and initialize the constructor Employee
        public Employee( String fName, String lName, double empSalary )
        {
            FirstName = fName;
            LastName = lName;
            Salary = empSalary;
        }
    

    //下面:set和get方法

        public void setFirstName( int fName ) // set the First Name
        {
            FirstName = fName;
        }
    
        public void setLastName( int lName ) // set the Last Name
        {
            LastName = lName;
        }
    
        public void setSalary( int empSalary ) // set the Employee Salary
        {
            Salary = empSalary;
        }
    
        public int getFirstName() // get the First Name
        {
            return FirstName;
        }
    
        public int getLastName() // get the Last Name
        {
            return LastName;
        }
    
        public int getSalary() // get the Employee Salary
        {
            return Salary;
        }
    } // End of Main 
    

    } //班级结束

    (出于某种原因,这里关闭我的Main和我的Class文件的最后两行没有包含在引号和内容中,但是你明白了。)

    现在,我相信我必须先创建Employee类,然后在Employee类文件中创建Main,以便Constructor可以使用set和get命令初始化其中的实例变量。

    我认为应该发生的是,命令提示符应该出现并询问名字,然后检索它,并再次为姓氏,然后工资。

    但是,由于出现以下错误,我的TextPad程序无法通过编译。这些将难以阅读,除非您预先警告有大约14个错误,并且所有这些错误都以">开头。 E:[DRIVE LOCATION],然后是冒号,错误消息,以及有问题的代码行,向上箭头指向确切的位置,由块引号系统地移动,对我来说没有办法保持向上错误符号,以显示每个错误发生问题的位置。自从8:30开始,我一直在疯狂地疯狂,这个网站似乎也只是在试图发布帮助信息时给我带来麻烦。 :(


      

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:16:error:非法启动表达式           public Employee(String fName,String lName,double empSalary)           ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:16:错误:')'预期           public Employee(String fName,String lName,double empSalary)                                  ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:16:error:非法启动表达式           public Employee(String fName,String lName,double empSalary)                                        ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:16:error:' ;;'预期           public Employee(String fName,String lName,double empSalary)                                                ^

         

    E:\ Libraries \ School \ Intro to Programming \ Programming Assignment 2 \ Program 2 \ Employee.java:16:error:not a statement           public Employee(String fName,String lName,double empSalary)                                                 ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:16:error:' ;;'预期           public Employee(String fName,String lName,double empSalary)                                                      ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:16:error:' ;;'预期           public Employee(String fName,String lName,double empSalary)                                                                        ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:23:error:非法启动表达式           public void setFirstName(int fName)//设置名字           ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:23:error:非法启动表达式           public void setFirstName(int fName)//设置名字                  ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:23:error:' ;;'预期           public void setFirstName(int fName)//设置名字                                   ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:23:error:' ;;'预期           public void setFirstName(int fName)//设置名字                                              ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:28:error:非法启动表达式           public void setLastName(int lName)//设置姓氏           ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:28:error:非法启动表达式           public void setLastName(int lName)//设置姓氏                  ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:28:error:' ;;'预期           public void setLastName(int lName)//设置姓氏                                  ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:28:error:' ;;'预期           public void setLastName(int lName)//设置姓氏                                             ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:33:error:非法启动表达式           public void setSalary(int empSalary)//设置Employee Salary           ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:33:error:非法启动表达式           public void setSalary(int empSalary)//设置Employee Salary                  ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:33:error:' ;;'预期           public void setSalary(int empSalary)//设置Employee Salary                                ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:33:error:' ;;'预期           public void setSalary(int empSalary)//设置Employee Salary                                               ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:38:error:非法启动表达式           public int getFirstName()//获取名字           ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:38:error:' ;;'预期           public int getFirstName()//获取名字                                  ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:43:错误:非法启动表达式           public int getLastName()//获取姓氏           ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \ Program 2 \ Employee.java:43:error:' ;;'预期           public int getLastName()//获取姓氏                                 ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:48:error:非法启动表达式           public int getSalary()//获取Employee Salary           ^

         

    E:\ Libraries \ School \编程简介\编程作业2 \程序2 \ Employee.java:48:error:' ;;'预期           public int getSalary()//获取Employee Salary                               ^

         

    25个错误

         

    工具已完成,退出代码为1


    最终,第一个错误表示public不是用于声明构造函数的有效表达式的开头,并且在声明我需要括号不括的括号时使用,以及tehy不用的分号(在实例变量之后)或者int命令,或其他什么),他们都说我的确切代码如何需要一些代码,这些代码表示与构造函数或set / get命令参数之后的参数无关的东西。 :\

    现在,如果我完全从代码中删除public static void main( String[] args ),只是声明一个类文件,然后是一个带有实例变量和命令的构造函数,它就会很好地编译Java文件。我唯一的问题是,命令提示符将要求我包含一个main。在包含main之后,所有14-26个错误都出现在与构造函数,实例变量和命令相关的所有内容中。

    我确定明天我没有完成这个计划。 :(

2 个答案:

答案 0 :(得分:2)

您无法在另一种方法中编写方法。在MAIN方法体外编写所有方法

让它更清晰看看这个

class Employee{
  String fname,lname;
  double salary;

  static void main()
  {/*body of main*/}

  public Employee()
  {/*body of constructor*/}

  void func1()
  {/*body of func1*/}
}//End of Class

答案 1 :(得分:0)

不要在main方法中创建一个构造函数,它应该在类中声明为方法本身以及其他方法,包括你的访问器和mutator方法(get和set方法)看看这段代码:

public static void main( String[] args )
{
    // should introduce and initialize the constructor Employee
    public Employee( String fName, String lName, double empSalary )
    {
        FirstName = fName;
        LastName = lName;
        Salary = empSalary;
    }

此代码应如下所示:

    public Employee( String fName, String lName, double empSalary )
    {
        FirstName = fName;
        LastName = lName;
        Salary = empSalary;
    }

public static void main( String[] args )
{
}

这适用于您创建的所有其他方法。您不能在您创建的任何其他方法中声明您编写的方法。您可以使用对象来调用方法,或者如果它们是静态方法,则可以使用类名来调用方法。您应该阅读创建类的对象并使用它们来调用方法。希望这可以帮助。通常在创建方法时调用构造函数。

 Basically, all you have to do to make the program run is highlight all the methods in the main 
`class, then cut it, then paste it in the class 
but outside the main method` an your code should run properly.