`
accphc
  • 浏览: 125071 次
  • 性别: Icon_minigender_1
  • 来自: CD
社区版块
存档分类
最新评论

复习java内部类

阅读更多

 

 

内部类定义:是定义在另一个类中的类。

内部类的作用:

  • 内部类方法可以访问该类定义所在的作用域中的数据,包括私有数据。
  • 内部类可以对同一个包中的其他类隐藏起来。
  • 当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。

内部类点滴:

  • 只有内部类可以是私有类,而常规类只能具有包可见性或者公有可见性。
  • 内部类对象拥有一个对外围类对象的隐式引用,这个引用是通过内部类构造器传递过来的,编译器会对这个构造器进行修改,以便添加一个外围类的引用参数。(注:这是一个编译器行为)
  • 内部类的特殊语法规则。OutClass.this引用外部类对象,OuterObject.new InnerClass(args)创建内部类
  • 内部类的内部
  • 局部内部类。不能用public或者private访问控制符进行声明,引用的局部变量是final的。(想想为什么是final的?因为内部类会备份一份final的局部变量,是为了直到他执行的时候变量的值没有发生变化)
  • 静态内部类。使用内部类是为了把一个类隐藏在另一个类的内部,并不需要内部类的引用外围类对象。为此,可以将内部类声明为static,以便取消引用,当然只有内部类可以声明为static,静态内部类的对象除了没有对生成它的外围类对象的引用特权外,与其他的所有内部类完全一样。
public class CheckBox {
	private boolean checked;
	
	//这个内部类是包可见性,只有包含它的外围类和它所在的包中的其他类能访问到它,当然子类也可以访问的到
	class OnClickListener{
		//虽然是public,由于类本身是包访问权限,所以受限于包权限
		public void itemClick(){
			System.out.println("我被点击了");
		}
	}
	
	//不写操作修饰符,默认的是default,包访问权限
	boolean isChecked(){
		return checked;
	}
	
	//这个内部类是完全公开的,可以被外部其他包的类访问
	public class onDoubleClickListener{
		//可以被访问的到
		public void itemClick(){
			System.out.println("我被双击了");
		}
	}
	
	//只可以被外围类访问的到
	private class onMouseOverListener{
		//受限于类本上是private,所以只有外围类能访问的到
		public void itemOver(){
			System.out.println("鼠标飘过去了");
		}
	}
}

 



 

1
0
分享到:
评论

相关推荐

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

    复习时,可以详细阅读`Java抽象类.docx`来理解抽象类的定义、用途和实例化规则,通过`Java接口.docx`学习接口的定义、实现方式以及多继承的特点,`Java内部类.docx`将帮助你掌握不同类型的内部类及其应用场景。...

    java复习重点整理

    3. **静态内部类与普通内部类(Inner Class)**: - 静态内部类可以在没有外部类实例的情况下创建,且不能直接访问外部类的非静态成员。 - 普通内部类需要一个外部类的实例来创建,可以直接访问外部类的所有成员,...

    计算机后端-Java-Java核心基础-第17章 异常处理 04. 复习:内部类.avi

    计算机后端-Java-Java核心基础-第17章 异常处理 04. 复习:内部类.avi

    JAVA基础课程复习材料

    内部类是Java语言中一个重要的特性,它允许在类的内部定义另一个类。这种内部定义的类被称为内部类,而包含它的类则被称为外部类。内部类的使用极大地提高了程序设计的灵活性和封装性。 #### 二、成员内部类 成员...

    java考试复习资料

    - **内部类**:一个类被定义在另一个类的内部。 - **构造方法**:用于初始化对象的方法。 - **代码块**:用于执行特定的初始化操作。 #### 十五、浮点型数据的处理 - **问题**:由于浮点数的二进制表示方式,在...

    JAVA理论知识基础复习

    JAVA理论知识基础复习涵盖了JAVA语言的基础知识,包括构造方法、new关键字、方法的重载、特殊变量this、static定义常量、继承、方法的重写、特殊变量super、多态性、接口和抽象类的区别、内部类和异常处理等相关知识...

    Java SE 复习资料

    这些知识点通常会出现在公司内部的JAVA基础复习题中,通过练习这些题目,开发者可以巩固理论知识,提升实际编程技能。每个xls文件可能包含了针对上述知识点的不同题目,通过解答,可以帮助你更好地准备公司的Java...

    Java程序设计基础分类复习(答案)

    - **数据类型**:Java有两类数据类型:基本数据类型(如int、char、float等)和引用数据类型(如类、接口、数组)。 - **变量**:存储数据的容器,声明时需指定数据类型。 - **常量**:用final关键字定义,一旦...

    我的Java面相对象考试复习资料

    11. **内部类**:Java支持类的嵌套,包括成员内部类、局部内部类、匿名内部类和静态内部类,提供了更灵活的代码组织方式。 12. **设计模式**:设计模式是解决常见问题的最佳实践,如单例模式、工厂模式、建造者模式...

    java语言程序设计 进阶版 第十版 复习题答案

    1. **面向对象编程**:Java是一种面向对象的语言,复习题中会涵盖类、对象、继承、多态等概念。理解类的构造函数,了解如何通过对象调用方法,以及如何使用继承来实现代码复用和类的层次结构是必要的。 2. **封装与...

    Java-study 复习java.zip

    "Java-study 复习java.zip"这个压缩包文件显然是为学习和复习Java编程所准备的资源集合。让我们深入探讨Java语言的一些核心概念和技术。 1. **Java简介** Java是由Sun Microsystems(现已被Oracle收购)开发的一种...

    java复习题 类与对象

    在Java编程语言中,"类"与"对象"是核心概念,它们构成了面向对象编程的基础。本文将深入探讨这两个概念,以及如何在实际编程中应用它们。 首先,我们需要理解"类"。在Java中,类可以看作是蓝图或者模板,它定义了一...

    大一java期末复习习题和答案

    12. 内部类是在一个类内嵌套定义的类,特点是只能在定义它的类或程序段中或表达式内匿名使用,外部使用时必须给出类的全名。 13. 接口与类的层次无关,通过接口可以说明类所实现的方法。 六、Java异常处理: 14. ...

    java面试复习资料.pdf

    12. **内部类**:Java支持成员内部类、局部内部类、匿名内部类和静态内部类等实现方式。 13. **排序和序列化实现**:除了上述的快速排序,还有其他排序算法实现,如归并排序、希尔排序等。序列化实现可以是直接实现...

    JAVA最全复习资料

    在内部类与外部类中,`this`可以区分同一作用域内的不同变量,`A.this`明确指定了外部类的成员。 数组是Java中的一个重要数据结构,它可以存储同类型的多个元素。数组是引用类型,声明时不需要指定大小,但在创建时...

    java基础复习

    ### Java基础复习知识点详解...- **内部类**:可以嵌套在一个外部类中。 - 成员内部类 - 局部内部类 - 静态内部类 - 匿名内部类 以上是关于Java基础复习的知识点详解,对于理解Java的核心概念和编程实践非常重要。

    java面试复习资料

    ### Java面试复习资料详解 #### 一、内存泄漏与内存溢出 - **内存泄漏**:指程序在申请内存后,无法释放已分配的内存空间,导致随着时间的推移,程序所消耗的内存逐渐增加。这通常是因为程序员未能正确地管理内存...

    Java工程师面试复习指南

    深入理解内部类 javac和javap Java8新特性终极指南 序列化和反序列化 继承封装多态的实现原理 集合类 Java集合类总结 Java集合详解:一文读懂ArrayList,Vector与Stack使用方法和实现原理 Java集合详解:Queue和...

    java复习题目

    - `private`:私有,只能在定义该成员的类内部访问。 - **子类的构造方法**: - 子类可以通过`super`调用父类的构造方法。 - **`Object`类**: - 是所有类的基类,提供了`toString()`、`equals()`等方法。 - *...

Global site tag (gtag.js) - Google Analytics