`
原非珏
  • 浏览: 9841 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

有关静态方法,静态内部类,内部类的比较认识

阅读更多
一.显示错误: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语言-关于内部类的分类和认识

    Java语言中的内部类根据定义的位置和访问权限可以分为四类:成员内部类、局部内部类、匿名内部类和静态内部类。成员内部类是定义在类的内部且与类的实例相关联的类;局部内部类是定义在方法或作用域内的类;匿名内部...

    java期末复习抽象类与接口,内部类,知识点.zip

    内部类可以分为四种类型:成员内部类、局部内部类、匿名内部类和静态内部类。成员内部类如同普通成员变量一样,可以访问外部类的所有成员,包括私有成员。局部内部类仅在方法或块的范围内有效,它的生命周期很短。...

    PHP的静态方法与普通方法用法实例分析

    在类定义内部,静态方法和普通方法都可以通过相应的访问修饰符(如`public`、`protected`、`private`)来设置访问级别。 2. **访问方式**:静态方法可以通过类名直接调用,而普通方法必须通过对象实例来调用。例如...

    【独家】【笔面试知识要点】16.OOP与OBP构造函数静态块1

    这种关系比继承更紧密,因为组合中的内部类可以完全控制其外部类的实例,甚至在外部类的生命周期结束后仍然存在。组合提供了更大的灵活性,因为它允许在运行时动态地改变对象的结构。 总的来说,理解这些概念对于...

    京东静态网页项目(静态)

    总之,京东静态网页项目是一个很好的起点,可以帮助初学者建立起对HTML和前端开发的直观认识,为进一步学习CSS、JavaScript和更复杂的Web技术打下坚实基础。在实践中,不断试验和改进,你将不断提升自己的前端技能。

    认识UML类图素java之UML.doc

    在Java中,这可能表现为类间的引用,例如局部变量、方法调用的对象引用或静态方法的引用。 - **关联(Association)**:关联表示两个类之间的结构化连接。它可以是双向的或单向的,其在Java中通常表现为实例作用域的...

    不错的OA系统静态demo(html)

    《OA系统静态Demo详解——基于HTML的办公自动化实践》 OA(Office Automation)系统,即办公自动化系统,是现代...通过这个Demo,你可以探索如何构建一个基本的OA系统界面,并对OA系统的功能模块有一个初步的认识。

    Java类加载原理浅析

    总的来说,Java类加载原理是Java程序员进阶的必修课,它涉及到了JVM的内部运作机制,深入理解可以帮助我们更好地优化程序性能,解决一些棘手的问题,同时也能让我们对Java平台有更全面的认识。通过阅读相关文章和...

    java高级软件工程师面试题及答案

    静态内部类类似于其他成员变量,而非静态内部类在使用时需要创建外部类对象实例。 访问修饰符是Java语言用于控制类、方法或变量访问权限的关键字。Java中的访问修饰符有:private(私有的,只在本类可见)、...

    详细事物认识分析基本方法.doc

    【事物认识分析基本方法】 事物认识分析是一种科学研究和理解世界的方法,它涉及到将复杂的问题或对象分解成更小的部分,以便更好地理解和解决问题。在历史发展中,这种方法已经发展出多种模式,如亚里士多德的归纳...

    java中如何使用Static的变量和方法.doc

    在Java中,`static`关键字用于声明类的成员变量(静态变量)和成员方法(静态方法),这些成员不依赖于类的任何特定实例,因此可以在没有创建类的实例的情况下进行访问。 #### Static变量的特点 1. **共享性**:当...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    11.3.11 静态方法——类范围里的概念 312 11.3.12 静态方法何以为“静态” 314 11.4 变量的修饰符 316 11.4.1 变量方法皆成员 317 11.4.2 变量的访问控制符 317 11.4.3 使用private修饰类的成员变量 318 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    11.3.11 静态方法——类范围里的概念 312 11.3.12 静态方法何以为“静态” 314 11.4 变量的修饰符 316 11.4.1 变量方法皆成员 317 11.4.2 变量的访问控制符 317 11.4.3 使用private修饰类的成员变量 318 ...

    Java开发零基础篇:day05 方法.pdf

    - 类中可以定义多个方法,方法和方法是平行的,不能在方法内部定义另一个方法。 - 方法中可以使用return关键字,它可以用来返回一个值给方法的调用者,也可以用来提前退出当前方法。 通过上述知识点的学习,零...

    Ruby-Glim一个静态站点生成器它兼容Jekyll但速度更快

    Ruby-Glim是一个旨在提高效率和性能的静态站点生成器,它是对Jekyll的优化和增强版本。Glim的出现为开发者提供了一种更快捷、更高效的方式来构建和维护静态网站,尤其是在大型项目或者需要频繁更新内容的情况下,其...

    大白话带你认识JVM.pdf

    方法区存储了类的相关元数据,包括类信息、常量、静态变量以及编译后的代码。这部分内存是线程共享的,因此需要考虑线程安全问题。在Java 8及以后版本中,方法区被替换为元空间(Metaspace),以减少对堆内存的影响...

    行政事业单位会计内部控制规范讲座.pptx

    了解内部控制,应认识到它是一个动态过程,是实现目标的手段,而非最终结果。它不应被视为静态结构或某一部分人的任务,而是涉及组织的每个层面和部门。随着时代的变迁,内部控制的理念和实践也在不断发展,从20世纪...

    PHP类的特性实例分析

    封装是将数据和操作数据的方法捆绑在一起,形成一个独立的单元(类),通过对外界隐藏内部细节,只对外公开必要的接口来访问类内部的数据。继承则是通过创建子类来继承父类的属性和方法,子类在继承的基础上可以增加...

Global site tag (gtag.js) - Google Analytics