Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中内部类方法与实例方法的区别_Java_Class_Oop_Methods_Inner Classes - Fatal编程技术网

Java中内部类方法与实例方法的区别

Java中内部类方法与实例方法的区别,java,class,oop,methods,inner-classes,Java,Class,Oop,Methods,Inner Classes,Java中内部类和在其中创建方法的确切用途是什么。如果我在类中创建方法而不是在内部类中创建这些方法,是否可以获得相同的行为 我们既可以访问内部类方法,也可以访问外部类之外的实例方法。那么,Java中内部类的确切用途是什么呢?是否存在没有内部类就无法生存的情况/可能性?内部类不会在外部类实例化时实例化,除非您在构造函数中显式地进行实例化。因此,它的方法对类的其余部分没有用处,除非它们是静态的,或者您已经创建了它的实例并使用它们 如果将方法放在内部类中,它们可以访问内部方法、实例变量!无法访问外部类

Java中内部类和在其中创建方法的确切用途是什么。如果我在类中创建方法而不是在内部类中创建这些方法,是否可以获得相同的行为


我们既可以访问内部类方法,也可以访问外部类之外的实例方法。那么,Java中内部类的确切用途是什么呢?是否存在没有内部类就无法生存的情况/可能性?

内部类不会在外部类实例化时实例化,除非您在构造函数中显式地进行实例化。因此,它的方法对类的其余部分没有用处,除非它们是
静态的
,或者您已经创建了它的实例并使用它们


如果将方法放在内部类中,它们可以访问内部方法、实例变量!无法访问外部类中的这些变量

使用它们在很大程度上取决于您需要做什么。有时您需要一个只在一个特定类内部使用的类,有时您需要快速创建Comparator实例并将其传递给
sort()
方法(匿名内部类)。有些内部类可以在类之外访问,有些则不能。java中有四种不同类型的嵌套类,有关更多信息,我建议阅读以下内容:

您可以参考

基本上,内部类保持了面向对象编程的完整性。 有时,当您必须实现一个只有一个未实现的方法的接口时,内部类也很方便。特别是匿名的内部类。
此外,我们可以使用这个内部类进行回调,而不是编写复杂的if-else结构或switch case

如果没有内部类,您可以生存下来,但它们会使事情变得更容易-特别是如果您希望有两个类使用相同的变量,但其中一个仅由另一个类使用,或者,如果您希望有一个ActionListener而不为其定义一个ne类(在本例中使用一个anonymos内部类),那么这是另一种将代码组织在一起的方式,将密切相关的类放在一起。如果调用方不需要知道类,则内部类更有用。e、 集合对嵌套类的使用。有四种嵌套类。与其在另一个类中创建该类,为什么我们不能使用本地/静态方法进行管理。要访问实例方法,我们需要该类的对象,同时要访问内部类方法,我们需要外部类对象。那么,在这里创建内部类有什么意义呢?我不再建议只使用一种方法的接口使用匿名操作系统内部类。改用Java8的Lambdas