【问题标题】:Error:Cannot find symbol.. in My Java Program错误:在我的 Java 程序中找不到符号..
【发布时间】:2013-09-28 12:53:21
【问题描述】:

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

"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]);
        }
    }
}

【问题讨论】:

  • 你想做什么 - s[i].Student();?
  • 打电话给s[i].Student();时你打算做什么?如果你想调用构造函数,那么你不需要它,因为你已经在s[i]=new Student();中调用了它
  • Student() 是一个构造函数,而不是你可以这样调用的函数。
  • 调用用户定义的构造函数Student..不知道对不对。

标签: java string find symbols


【解决方案1】:

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

s[i]=new Student();

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

s[i].Student();

【讨论】:

    【解决方案2】:

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

    Student() 构造函数在您编写 new Student() 时被调用。

    Read this about constructors in Java.

    【讨论】:

    • 如果我想让构造函数重载来完成扫描上述内容的工作怎么办?将删除 s[i].student();工作吗?
    【解决方案3】:

    你也不需要一个 Main 类,把你的方法 main 放在你的 Student 类中,删除这一行:

    s[i].Student();

    程序运行良好

    【讨论】:

      【解决方案4】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-20
        • 2013-12-06
        • 2016-07-22
        • 2013-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多