Java一个类里怎么会有两个类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java一个类里怎么会有两个类相关的知识,希望对你有一定的参考价值。

public class Fu
public void hh()
System.out.println("hhhhhhhh");


class Zi
public void jj()
System.out.println("jjjjjjjj");


上面代码能运行,而且类Zi前修饰词不能加上public

一个类文件内可以有多个类,但是java规定公共类型的类(加了public)必须只有一个,并且类文件必须和公共类型的类名相同,就是你的文件名要和带public 的类名相同.这是规定.
这就是为什么一个类文件里面不能包含两个public类型的类。追问

请问一下这还叫内部类吗?
是否可以把Zi类叫为Fu类的内部类?

追答

是的,就叫内部类,zi类是fu类的内部类.

参考技术A 在编写类的时候可以使用两种方式定义类:
public class定义类:
class定义类:
如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名称完全一致。
范例:定义一个类(文件名称为:Hello.java)
public class HelloDemo //声明一个类,类名称的命名规范:所有单词的首字母大写
public static void main(String args[]) //主方法
System.out.println("Hello World!!!"); //系统输出,在屏幕上打印

;
此类使用public class声明,类名称是Hello Demo,但是文件名称Hello.java,所以,此时编译时会出现如下问题:

Hello.java:1 类 HelloDemo 是公共的,应在名为HelloDemo.java文件中声明
public class HelloDemo //声明一个类,类名称的命名规范:所有单词首字母大写

1、错误
以上的错误提示表示:因为使用的是public class声明,所以类名称应该与文件名称完全一致,即应该使用"HelloDemo.java"表示类的名称。
如果类的声明使用了class的话,则类名称可以与文件名称不一致,但是执行的时候肯定执行的是生成后的名称。
范例:有如下代码(文件名称为:Hello.java)
class HelloDemo
public static void main(String args[])
System.out.println("Hello World!!!");

;
文件名称为Hello.java,文件名称与类名称不一致,但是因为使用了class声明所以,此时编译不会产生任何错误,但是生成之后的*.class文件的名称是和class声明的类名称完全一致的:HelloDemo.class
执行的时候不能再执行java Hello,而是应该执行java HelloDemo

在一个*.java的文件中,只能有一个public class的声明,但是允许有多个class的声明
public class Hello
public static void main(String args[])
System.out.println("Hello World!!!");

;
class A;
class B;

在以上的文件中,定义了三个类,那么此时程序编译之后会形成三个*.class文件。
参考技术B 一个类文件可以有N(N>=1的整数)个类,但是必须有一个是累类文件名一致的类,对于内部类,它是有普通类的功能和作用,而且你还可以把他看成是一个方法....有点绕,还需要多写,多想才可以 参考技术C 一个java文件里面可以有多个类,但是至多只能有一个public类,并且文件名为public类的类名,一般建议一个java文件只放一个类 参考技术D 在java中可以有多个类,
但是 只可以有一个公共类(public class)也是你建立类的时候的类名文件。
这就是规定。

以上是关于Java一个类里怎么会有两个类的主要内容,如果未能解决你的问题,请参考以下文章

Java怎么重新复写(已经复写了一次)同一个类里的一个方法,能有这种办法吗

java主函数要放在类里吗

如何在C#中,在一个类里调用另外一个类的方法

java集合类哪个函数可以

javabean为啥不能在实体类里写逻辑

java三个类组合怎么运行