我创建了一个名为 In.java 的文件并输入了以下代码
class In {
int a;
public static void main(
String args[] ) {
Inheritance h = new Inheritance();
h.set( 6 );
System.out.println( h.get() );
}
void set(
int a ) {
this.a = a;
}
int get() {
System.out.println( a );
return a;
}
}
Run Code Online (Sandbox Code Playgroud)
当我编译它时,它显示了一个关于继承的错误。然后我重命名 In as I Inheritance
class Inheritance {
int a;
public static void main(
String args[] ) {
Inheritance h = new Inheritance();
h.set( 6 );
System.out.println( h.get() );
}
void set(
int a ) {
this.a = a;
}
int get() {
System.out.println( a );
return a;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我编译它时,它编译并创建了 Inheritance.class 但是当我编译时文件名仍然是 In.java 因为public class Inheritance它提醒我该类应该更改为 Inheritance.java 。现在当我运行java In它显示一个错误Error: Could not find or load main class In现在我再次将类重命名为 In as
class In {
int a;
public static void main(
String args[] ) {
Inheritance h = new Inheritance();
h.set( 6 );
System.out.println( h.get() );
}
void set(
int a ) {
this.a = a;
}
int get() {
System.out.println( a );
return a;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我编译它时,它被编译为 In.class,当我运行输出时,它已经运行了显示的程序
6 6
当我用 In.java 创建程序并运行名为 Class Inheritance 的类时,它编译并给出了 Inheritance.class 。1.如果类名和文件名不同,编译器会不会报错?2.当我运行java In它时,它显示Error: Could not find or load main class In为生成了 In.class 文件 为什么在编译 In.java 时它没有检测到它,类名作为继承?那么一个类文件可以使用同一目录中的任何其他类文件吗?
小智 5
任何声明的类都public应该保存在同名的文件中。如果公共类的名称和包含它的文件的名称不同,则会导致编译错误。未声明的类public可以保存在不同名称的文件中。
请注意,生成的类文件以 java 类命名,而不是文件名。看看下面的例子。
在下面的插图中X是任何有效的名称(除了Foo和Bar)。
示例 1:
// filename X.java (doesn't compile)
public class Foo {
}
public class Bar {
}
Run Code Online (Sandbox Code Playgroud)
编译器抱怨公共类Foo并且Bar没有出现在他们自己的.java文件中。
示例 2:
// filename Foo.java (doesn't compile)
public class Foo {
}
public class Bar {
}
Run Code Online (Sandbox Code Playgroud)
错误与上述相同,但仅适用于Bar这次。
示例 3:
// filename Foo.java (compiles)
public class Foo {
}
class Bar {
}
Run Code Online (Sandbox Code Playgroud)
生成的文件是Foo.class和Bar.class。
示例 4:
// filename X.java (compiles)
class Foo {
}
class Bar {
}
Run Code Online (Sandbox Code Playgroud)
生成的文件是Foo.class和Bar.class。
| 归档时间: |
|
| 查看次数: |
2421 次 |
| 最近记录: |