回 帖 发 新 帖 刷新版面

主题:用了构造函数无法使用类?

好像没使用默认的构造函数,可以使用类,但是一旦使用了,类就无法使用了,为什么?

找不到符号 
符号: 构造函数 Professor() 
位置: 类 Professor 
Professor pf=new Professor();
构造器
public Professor(String name,String sex,int age,String course,int result)
注意下面的的******
////////////////////////////////////////////////////
import java.io.*;
class Professor //是类还是构造器?******
{    private String name;
     private String sex;
     private int age;
     private String course;
     private int result; 
    //构造器开始******
    public Professor(String name,String sex,int age,String course,int result)
    {if(name!=null||name!="")
         this.name=name;
     if(sex=="男"||sex=="女")
          this.sex=sex;
     if(age>=0)
          this.age=age;
     if(course!=null)
          this.course=course;
//     if(result>=0&&result<=4)
//          this.result=result;
    }构造器结束******

       public static void main(String[] args)throws IOException {
       BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
       System.out.println("姓名:");
           String name=in.readLine();
       System.out.println("性别:");
           String sex=in.readLine();
       System.out.println("年龄:");
           int age=Integer.parseInt(in.readLine());
       System.out.println("课程名称:");
           String course=in.readLine();
       System.out.println("教课水平:");
           int result=Integer.parseInt(in.readLine());
       Professor pf=new Professor();//这样写是构造函数还是类?******
结果他报错
找不到符号 
符号: 构造函数 Professor() 
位置: 类 Professor 
Professor pf=new Professor();

回复列表 (共4个回复)

沙发

请问你的 Professor 类在哪里定义了 Professor() 的构造方法?
认真点看书

板凳

[quote]请问你的 Professor 类在哪里定义了 Professor() 的构造方法?
认真点看书[/quote]
你是说空的professor()?
如果真的是那样,我就没定义了,而是把他改成带有参数的professor(String name,String sex,int age,String course,int result)
如果再加个professor(),应该就是重载了,不知道我说的对不对?

3 楼

在没写其他构造方法时,public Professor() {}是默认自动生成的.
而当你写了其他带 参数 构造方法时,如public Professor(String arg0) {},
构造方法public Professor() {}就不会默认自动生成.(需要时,需手动写)

而Professor pf=new Professor();将会调用构造方法public Professor() {},

但因为你写了带参数的 public Professor(String arg0) {}
因而系统找不到构造方法public Professor() {},
这时应写为,如:Professor pf=new Professor("any word");
这样系统就会调用 public Professor(String arg0) {}构造方法了.

4 楼

当一个类没有定义构造方法时,编译器会自动为此类添加一个为空的构造方法。当定义了一个构造方法时,系统就不会添加为空的构造方法,如果需要,则要手写。

我来回复

您尚未登录,请登录后再回复。点此登录或注册