一.显示错误:No enclosing instance of type SortButtonListener is accessible. Must qualify the allocation with an enclosing instance of type SortButtonListener (e.g. x.new A() where x is an instance of SortButtonListener).
二.错误原因:因为xx是一个动态的内部类,创建这样的对象必须有实例与之对应,程序是在静态方法中直接调用动态内部类会报这样错误。这样的错误好比类中的静态方法不能直接调用动态方法。可以把该内部类声明为static。或者不要在静态方法中调用。
三.静态方法与非静态方法的区别:1.在外部调用静态方法时,可以使用“类名.方法名”的方式,也可以使用“对象名.方法名”的方式。而非静态方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象;2.静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制; 3. 静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存,static内部只能出现static变量和其他static方法,而且static方法中还不能使用this.... 等关键字; 4.静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。
四.静态内部类和非静态内部类:1.静态内部类中可以定义静态或者非静态的成员 ;2.静态内部类只能访问外部类的静态成员(包括静态变量和静态方法) ;3.非静态内部类能访问外部类的静态成员(包括静态变量和静态方法);4.外部类访问内部类的静态成员:内部类.静态成员;5.外部类访问内部类的非静态成员:实例化内部类。
五.内部类:内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类。(1)内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号。(2)内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的。(3)内部类声明成静态的,就不能随便的访问外部类的成员变量了,此时内部类只能访问外部类的静态成员变量。
六.成员内部类:作为外部类的一个成员存在,与外部类的属性、方法并列。1.内部类作为外部类的成员,可以访问外部类的私有成员或属性。(即使将外部类声明为PRIVATE,但是对于处于其内部的内部类还是可见的。)2.用内部类定义在外部类中不可访问的属性。这样就在外部类中实现了比外部类的private还要小的访问权限。3.成员内部类不能定义静态成员,只能定义对象成员。4、创建成员内部类实例时,外部类的实例必须已经存在。5、当内部类和外部类有同名的成员时,内部类可通过 外部类名.this.变量名 访问外部类成员。
七.静态嵌套类:静态内部类中可以定义静态或者非静态的成员。从技术上讲,静态嵌套类不属于内部类。因为内部类与外部类共享一种特殊关系,更确切地说是对实例的共享关系。而静态嵌套类则没有上述关系。它只是位置在另一个类的内部,因此也被称为顶级嵌套类。
分享到:
相关推荐
Java语言中的内部类根据定义的位置和访问权限可以分为四类:成员内部类、局部内部类、匿名内部类和静态内部类。成员内部类是定义在类的内部且与类的实例相关联的类;局部内部类是定义在方法或作用域内的类;匿名内部...
内部类可以分为四种类型:成员内部类、局部内部类、匿名内部类和静态内部类。成员内部类如同普通成员变量一样,可以访问外部类的所有成员,包括私有成员。局部内部类仅在方法或块的范围内有效,它的生命周期很短。...
在类定义内部,静态方法和普通方法都可以通过相应的访问修饰符(如`public`、`protected`、`private`)来设置访问级别。 2. **访问方式**:静态方法可以通过类名直接调用,而普通方法必须通过对象实例来调用。例如...
这种关系比继承更紧密,因为组合中的内部类可以完全控制其外部类的实例,甚至在外部类的生命周期结束后仍然存在。组合提供了更大的灵活性,因为它允许在运行时动态地改变对象的结构。 总的来说,理解这些概念对于...
总之,京东静态网页项目是一个很好的起点,可以帮助初学者建立起对HTML和前端开发的直观认识,为进一步学习CSS、JavaScript和更复杂的Web技术打下坚实基础。在实践中,不断试验和改进,你将不断提升自己的前端技能。
在Java中,这可能表现为类间的引用,例如局部变量、方法调用的对象引用或静态方法的引用。 - **关联(Association)**:关联表示两个类之间的结构化连接。它可以是双向的或单向的,其在Java中通常表现为实例作用域的...
《OA系统静态Demo详解——基于HTML的办公自动化实践》 OA(Office Automation)系统,即办公自动化系统,是现代...通过这个Demo,你可以探索如何构建一个基本的OA系统界面,并对OA系统的功能模块有一个初步的认识。
总的来说,Java类加载原理是Java程序员进阶的必修课,它涉及到了JVM的内部运作机制,深入理解可以帮助我们更好地优化程序性能,解决一些棘手的问题,同时也能让我们对Java平台有更全面的认识。通过阅读相关文章和...
静态内部类类似于其他成员变量,而非静态内部类在使用时需要创建外部类对象实例。 访问修饰符是Java语言用于控制类、方法或变量访问权限的关键字。Java中的访问修饰符有:private(私有的,只在本类可见)、...
【事物认识分析基本方法】 事物认识分析是一种科学研究和理解世界的方法,它涉及到将复杂的问题或对象分解成更小的部分,以便更好地理解和解决问题。在历史发展中,这种方法已经发展出多种模式,如亚里士多德的归纳...
在Java中,`static`关键字用于声明类的成员变量(静态变量)和成员方法(静态方法),这些成员不依赖于类的任何特定实例,因此可以在没有创建类的实例的情况下进行访问。 #### Static变量的特点 1. **共享性**:当...
11.3.11 静态方法——类范围里的概念 312 11.3.12 静态方法何以为“静态” 314 11.4 变量的修饰符 316 11.4.1 变量方法皆成员 317 11.4.2 变量的访问控制符 317 11.4.3 使用private修饰类的成员变量 318 ...
11.3.11 静态方法——类范围里的概念 312 11.3.12 静态方法何以为“静态” 314 11.4 变量的修饰符 316 11.4.1 变量方法皆成员 317 11.4.2 变量的访问控制符 317 11.4.3 使用private修饰类的成员变量 318 ...
- 类中可以定义多个方法,方法和方法是平行的,不能在方法内部定义另一个方法。 - 方法中可以使用return关键字,它可以用来返回一个值给方法的调用者,也可以用来提前退出当前方法。 通过上述知识点的学习,零...
Ruby-Glim是一个旨在提高效率和性能的静态站点生成器,它是对Jekyll的优化和增强版本。Glim的出现为开发者提供了一种更快捷、更高效的方式来构建和维护静态网站,尤其是在大型项目或者需要频繁更新内容的情况下,其...
方法区存储了类的相关元数据,包括类信息、常量、静态变量以及编译后的代码。这部分内存是线程共享的,因此需要考虑线程安全问题。在Java 8及以后版本中,方法区被替换为元空间(Metaspace),以减少对堆内存的影响...
了解内部控制,应认识到它是一个动态过程,是实现目标的手段,而非最终结果。它不应被视为静态结构或某一部分人的任务,而是涉及组织的每个层面和部门。随着时代的变迁,内部控制的理念和实践也在不断发展,从20世纪...
封装是将数据和操作数据的方法捆绑在一起,形成一个独立的单元(类),通过对外界隐藏内部细节,只对外公开必要的接口来访问类内部的数据。继承则是通过创建子类来继承父类的属性和方法,子类在继承的基础上可以增加...