这是我的java代码:
import java.io.*;
import java.util.*;
public class student
{
String name;
int age;
float cgpa;
}
public class getdata
{
public static void main(String args[])
{
int n;
Scanner in=new Scanner(System.in);
n=in.nextInt();
student[] s=new student[n];
for(int i=0;i<n;i++)
{
s[i]=new student();
s[i].name=in.nextLine();
s[i].age=in.nextInt();
s[i].cgpa=in.nextFloat();
}
System.out.println();
System.out.println("Name\tAge\tCGPA\n");
for(int i=0;i<n;i++)
{
System.out.println(s[i].name+"\t"+s[i].age+"\t"+s[i].cgpa+"\n");
}
}
}
当我编译程序时,它会给出错误,即每个类应该在不同的文件中。如何编译这个没有任何错误? (我知道这不是最佳做法,但我需要在同一个文件中执行此操作。)
答案 0 :(得分:2)
一般规则是,您可以在Java文件中只有一个公共类。
如果您希望从任何地方都可以看到它(这取决于您的评论),您可以在getdata中将该类声明为公共静态。
会是这样的:
public class getdata {
public static class user {
//class definition here
}
}
现在,您的User类可用于实例化。
答案 1 :(得分:1)
让班级学生成为内部班级:
import java.io.*;
import java.util.*;
public class getdata
{
public static void main(String args[])
{
int n;
Scanner in=new Scanner(System.in);
n=in.nextInt();
student[] s=new student[n];
for(int i=0;i<n;i++)
{
s[i]=new student();
s[i].name=in.nextLine();
s[i].age=in.nextInt();
s[i].cgpa=in.nextFloat();
}
System.out.println();
System.out.println("Name\tAge\tCGPA\n");
for(int i=0;i<n;i++)
{
System.out.println(s[i].name+"\t"+s[i].age+"\t"+s[i].cgpa+"\n");
}
}
public static class student
{
String name;
int age;
float cgpa;
}
}
文件名必须为getdata.java
。并阅读有关Java命名约定的内容。类名应以大写字母开头。
答案 2 :(得分:1)
您可以像前面提到的那样创建一个内部类,或者如果您不需要从此文件外部访问该类,则只需删除公共标记即可。这将使您可以将多个顶级类放在一个文件中。
答案 3 :(得分:0)
您可以创建一个.class
文件,然后只需运行要编译的类
javac FileName.java
java fileName_containsMainMethod
编辑课程不能公开
例如
请考虑以下类保存为名称Test.java
,并在单个名称Test.java
class A
{
public static void main(String[] a)
{
System.out.println("Hello from A");
}
}
class B
{
public static void main(String[] a)
{
System.out.println("Hello from B");
}
}
现在要运行它,您需要执行以下操作
javac Test.java
从A类获得输出
java A
从B类获得输出
java B
注意从class