0

这是我的整个代码在命令提示符中出现以下错误。请帮助我解决它,这里是初学者。

"Student.java:36: error: cannot find symbol
                        s[i].Student();
                            ^
  symbol:   method Student()
  location: class Student
1 error"

    import java.util.*;

public class Student
{
    int roll;
    String name=new String();


    Student()
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter Name");
        name=sc.next();
        System.out.println("Enter Roll No");
        roll=sc.nextInt();
    }

    public String toString()
    {
        return "Name:"+name+" "+"Roll Number:"+roll ;
    }
}

class Main
{
    public static void main(String args[])
    {
        int n,i;
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter the number of students");
        n=sc.nextInt();
        Student s[]=new Student[n];
        for(i=0;i<n;i++)
        {
            s[i]=new Student();
            s[i].Student();
        }
        for(i=0;i<n;i++)
        {
            System.out.println(s[i]);
        }
    }
}
4

4 回答 4

1

在第 35 行,您正确地使用构造函数实例化了一个类,

s[i]=new Student();

在第 36 行,您错误地(并且没有明显的逻辑原因?)像方法一样调用构造函数。删除这一行:

s[i].Student();
于 2013-09-23T14:55:32.600 回答
0

你只是不需要那条线: s[i].Student();

Student()编写时调用构造函数new Student()

阅读有关 Java 构造函数的信息。

于 2013-09-23T14:56:00.787 回答
0

此外,您不需要 Main 类,将您的方法 main 放在您的 Student 类中,删除此行:

s[i].Student();

程序运行良好

于 2013-09-23T14:58:48.450 回答
0

我认为您正在调用s[i].Student()不正确的构造函数。

Java 将假定 Student() 是一个方法而不是一个构造函数。由于您的班级中没有方法普通的 Student() 方法,因此肯定不会找到它。

请记住,构造函数不仅仅是一个简单的方法。这是一种实例化对象的特殊方法。

于 2013-09-23T15:27:33.797 回答