这对于生成这个java程序的两个类是必要的吗?
像下面这样将所有类代码保存为单个.java文件是否重要这对于生成这个java程序的两个类是必要的吗?,java,Java,像下面这样将所有类代码保存为单个.java文件是否重要 Outer.java, Inner.java, Test.java 或者我可以将单个java文件制作为Test.java。请解释匿名类,我们如何在java中创建匿名类,以及与普通类相比的优势/劣势是什么 class Outer { private int data = 50; class Inner { void msg() { System.out.println("Data i
Outer.java,
Inner.java,
Test.java
或者我可以将单个java文件制作为Test.java。请解释匿名类,我们如何在java中创建匿名类,以及与普通类相比的优势/劣势是什么
class Outer {
private int data = 50;
class Inner {
void msg() {
System.out.println("Data is: " + data);
}
}
}
class Test {
public static void main(String args[]) {
Outer obj = new Outer();
Outer.Inner in = obj.new Inner();
in.msg();
}
}
见:
每个Java源文件都包含一个公共类或接口。
当私有类和接口与公共类关联时
类,则可以将它们放在与公共类相同的源文件中。
公共类应该是文件中的第一个类或接口
我认为这应该回答你的问题。正如我在评论中所说,不建议编写包含几个不相关类的文件。但是,如果您有一个与文件中的公共类关联的类,则可以将它们放在同一个源文件中。Java中的
匿名类是一个没有名称的类,在一条语句中声明和实例化。当你需要创建一个只有一次实例化的类时,你应该考虑使用匿名类。
尽管匿名类可能很复杂,但匿名类声明的语法使其最适合只有几个简单方法的小型类
匿名类必须始终实现接口或扩展抽象类。但是,您不会使用extends或implements关键字来创建匿名类。相反,您可以使用以下语法来声明和实例化匿名类:
new interface-or-class-name() { class-body }
在类主体中,必须为接口或抽象类定义的每个抽象方法提供实现。下面是一个实现名为runnable的接口的示例,该接口定义了一个名为run的方法:
runnable r = new runnable()
{
public void run()
{
//code for the run method goes here
}
};
以下是关于匿名类的一些其他重要事实:
匿名类不能有构造函数。因此,在实例化匿名类时,不能将参数传递给该类
匿名类可以访问声明匿名类的块可见的任何变量,包括局部变量
匿名类还可以访问包含它的类的方法
是的,你可以这样做,但应该是在小程序中,
在大型应用程序中,您必须使类独立,Java强烈建议使类成为不同的文件,但这取决于您自己。对于这段小代码,您不必这样做。请记住,不建议在一个文件中包含不相关的类..将测试公开。。。最好将包含main()的类公开。在.java文件中只能有一个“public”类。。在同一个java文件中可以有1个公共类+任意数量的非公共类,我一直不明白为什么人们想把不同的类放在同一个文件中。你为什么要那样?这有什么好处?如果每个类都在一个单独的文件中,是否会产生负面影响?与此相反,其他类不必是私有的。他们不能公开。@eis这些只是惯例。