- 浏览: 51341 次
- 性别:
- 来自: 苏州
最新评论
-
237304457:
好东西,firefox debug 的学习
Firebug JavaScrupt JS 调试 -
lc87624:
能麻烦问一下这是转至哪里的文章吗?想看一下全文
JSP处理session与cookie关系(转载)
JAVA 内部类的简单总结
定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、protected、private等访问限制,可以声明为 abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现特定的接口。static的内部类行为上象一个独立的类,非static在行为上类似类的属性或方法且禁止声明static的方法。内部类可以访问外部类的所有方法与属性,但static的内部类只能访问外部类的静态属性与方法。
外部类按常规的类访问方式使用内部类,唯一的差别是外部类可以访问内部类的所有方法与属性,包括私有方法与属性。如:
内部类类似外部类的属性,因此访问内部类对象时总是需要一个创建好的外部类对象。内部类对象通过‘外部类名.this.xxx’的形式访问外部类的属性与方法。如:
如果需要在其他类中访问内部类,可以使用:
(1)外部类提供创建内部类的方法供其他类使用。如:
// 外部类
pinner getInner()
{
return new pinner();
}
// 其他类
pouter.pinner pi = po.getInner();
pi.Print();
(2)直接创建内部类的对象。如:
pouter po = new pouter();
pouter.pinner pi = po.new pinner();
pi.Print();
内部类可以声明在外部类的方法中或语句块中。如果内部类需要访问包含它的外部类方法或语句块的局部变量或参数,则该局部变量或参数必须是final的。外部类的其他方法、其他类无法访问声明在方法内部或块内部的内部类。
如果一个类继承内部类,则创建该类的对象时需提供一个外部类的对象作为构造方法的参数。如:
如果创建命名的内部类没有多少实际意义时,可以创建匿名的内部类。比如使用内部类实现接口的功能(如事件处理器、适配器等),而功能的差异较大,需要根据实际的情况创建相应的内部类时,可以使用匿名内部类。简单的示例如下:
最后,JAVA 内部类还有一个作用,那就是实现JAVA的多继承。JAVA本身是不允许多继承的,如果我们想一个类继承多个基类,就可以使用内部类。通过内部类分别继承一个基类,外部类创建内部类的对象,并使用内部类的方法,变相地实现了多继承。
定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、protected、private等访问限制,可以声明为 abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现特定的接口。static的内部类行为上象一个独立的类,非static在行为上类似类的属性或方法且禁止声明static的方法。内部类可以访问外部类的所有方法与属性,但static的内部类只能访问外部类的静态属性与方法。
外部类按常规的类访问方式使用内部类,唯一的差别是外部类可以访问内部类的所有方法与属性,包括私有方法与属性。如:
pinner p = new pinner(); p.index = 20; p.Print(); ---- 这种方式适合外部类的非static方法; pouter po = new pouter(); pinner pi = po.new pinner(); pi.index = 40; pi.Print(); ---- 这种方式适合外部类的static方法;
内部类类似外部类的属性,因此访问内部类对象时总是需要一个创建好的外部类对象。内部类对象通过‘外部类名.this.xxx’的形式访问外部类的属性与方法。如:
System.out.println("Print in inner Outer.index=" + pouter.this.index); System.out.println("Print in inner Inner.index=" + this.index);
如果需要在其他类中访问内部类,可以使用:
(1)外部类提供创建内部类的方法供其他类使用。如:
// 外部类
pinner getInner()
{
return new pinner();
}
// 其他类
pouter.pinner pi = po.getInner();
pi.Print();
(2)直接创建内部类的对象。如:
pouter po = new pouter();
pouter.pinner pi = po.new pinner();
pi.Print();
内部类可以声明在外部类的方法中或语句块中。如果内部类需要访问包含它的外部类方法或语句块的局部变量或参数,则该局部变量或参数必须是final的。外部类的其他方法、其他类无法访问声明在方法内部或块内部的内部类。
如果一个类继承内部类,则创建该类的对象时需提供一个外部类的对象作为构造方法的参数。如:
class Car { class Wheel { } } class SuperWheel extends Car.Wheel { SuperWheel(Car car) { car.super(); } public static void main(String [] args) { Car car = new Car(); SuperWheel wl = new SuperWheel(car); } }
如果创建命名的内部类没有多少实际意义时,可以创建匿名的内部类。比如使用内部类实现接口的功能(如事件处理器、适配器等),而功能的差异较大,需要根据实际的情况创建相应的内部类时,可以使用匿名内部类。简单的示例如下:
interface WebView { void doGet(); } class A { WebView ShowName() { return new WebView() { void doGet() { System.out.println("Name"); } }; } WebView ShowCode() { return new WebView() { void doGet() { System.out.println("Code"); } }; } }
最后,JAVA 内部类还有一个作用,那就是实现JAVA的多继承。JAVA本身是不允许多继承的,如果我们想一个类继承多个基类,就可以使用内部类。通过内部类分别继承一个基类,外部类创建内部类的对象,并使用内部类的方法,变相地实现了多继承。
发表评论
-
JSP处理session与cookie关系(转载)
2011-08-29 16:12 1583为什么登陆后,只要不关 ... -
Hibernate的检索策略
2011-03-29 16:58 929Hibernate的检索策略包括类级别检索策略和关联级别检索策 ... -
Hibernate, Fetch strategy
2011-03-21 17:50 1261转载 主题:关于hibernate延迟加载的错误解决方案 收 ... -
转:JSON
2010-03-19 09:45 862转自:http://blog.csdn.net/lovehon ... -
Java Class Path
2010-03-12 14:48 3022我们在系统的环境变量里面添加一个新的变量叫 CLASSPATH ... -
Java reference 值传递还是应用传递的 争论
2010-02-26 17:34 1242转载自:http://dreamhead.blogbus.co ... -
JAVA JS JSP HTML
2010-02-26 13:49 1088应该注意前后台的分类: 什么时候把计算放在前台 用js或是其它 ... -
Firebug JavaScrupt JS 调试
2010-02-04 10:27 1302安装就不用说了,很简单,在FireFox上插件库里 ... -
Out of memory Error:JAVA ;Out of memory ;Tomcat; PermGen space
2010-01-25 18:17 2849PermGen space的全称是Permanent Ge ... -
IE 和 FIREFOX 的不同点
2009-12-23 12:50 0IE 和firefox再web前端的 css效果有很多显示的不 ... -
IE 和 firefox的区别
2009-11-19 14:53 10621.document.formName.item(itemNa ... -
FireFox 调试工具 firebug的使用
2009-09-22 15:40 8464如何使用firebug进行调试 2009-06-05 18:3 ... -
Forward 和SendRedirect
2009-09-10 08:50 9711.RequestDispatcher.forward() ... -
Servlet 学习笔记
2009-09-08 20:54 919Java Servlet 开发工具(JSDK)提供了多个软件包 ... -
JAVA Final 关键字的使用
2009-09-07 22:28 737一、final 根据程序上下文环境,Java关键字final ... -
Hibernate 1对多双向关联时候的 argument mismatch 问题
2009-08-17 16:26 971今天在hibernate 关联的时候 无意中把 set 写成H ... -
JNDI 原理 以及JBoss Demo
2009-08-13 11:24 3598摘要: 本文详细介绍了JNDI的架构与实现,JNDI ... -
Tomcat context initializeContext().lookup()参数的含义
2009-08-12 17:39 2380经常看到对于jndi的操作 server.xml < ... -
Hibernate JDBCTransaction JTATransaction
2009-08-12 15:02 1218Hibernate是对JDBC的轻量级对象封装,Hiberna ... -
DAO 泛型设计
2009-08-12 11:22 1102泛型是JDK1.5的一个新的特性,使用泛型机制 ...
相关推荐
在这个"java内部类使用例子"中,我们将深入探讨这些类型,并通过实际代码来理解它们的工作原理。 首先,成员内部类是在外部类的成员位置定义的类,它可以访问外部类的所有成员,包括私有成员。成员内部类的实例与...
Java内部类是Java语言提供的一种独特机制,它允许在一个类的内部定义另一个类。这种设计模式使得代码结构更紧凑,可以更好地封装和隐藏实现细节,同时也增强了代码的复用性。内部类分为几种类型,包括成员内部类、...
Java内部类是Java语言中一个独特且强大的特性,它允许我们在一个类的内部定义另一个类。内部类提供了增强封装的能力,使得内部类可以被隐藏在外部类中,仅对外部类可见,从而增加了代码的隐私性和安全性。同时,内部...
Java 内部类详解 Java 内部类是一种高级特性,允许在一个类的定义内部创建另一个类。这种设计模式提供了更灵活的代码组织方式,同时还可以实现特定的封装和访问控制。内部类主要分为四种类型:静态内部类、成员内部...
### Java内部类总结 在Java编程语言中,内部类是一个重要的概念,它允许开发者在一个类的内部定义另一个类。这种特性极大地增强了代码的封装性和复用性,同时也为解决特定问题提供了灵活的方法。本文将围绕Java内部...
### Java内部类详解 #### 一、内部类的分类与概念 Java的内部类机制是其强大特性之一,它允许类作为另一个类的成员存在,从而增强了代码的封装性和复用性。根据定义和作用域的不同,Java内部类主要分为四类: 1. ...
Java内部类详解 Java内部类是Java语言中的一种特殊类别,它是指定义在另外一个类内部的类。内部类可以访问外部类的所有成员变量和方法,包括私有的变量和方法。内部类可以分为四种:成员内部类、静态嵌套类、方法...
### Java内部类的应用场景 #### 场景一:当某个类除了它的外部类,不再被其他的类使用时 内部类的使用场景之一是当某个类仅需被其外部类使用时。这种情况下,将此类定义为内部类可以提高代码的封装性和可维护性。 ...
Java内部类是Java语言的一个独特特性,它允许我们在一个类的内部定义另一个类。这种设计提供了更高级别的封装和组织代码的方式。以下是关于内部类及其相关知识点的详细说明: 1. **内部类基本语法** - **实例内部...
12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类...
Java内部类是Java语言的一个特色特性,它允许我们在一个类的内部定义另一个类。这种设计模式在处理一些特定情况时非常有用,例如实现匿名回调、封装特定逻辑或创建与外部类有紧密关系的类。本篇文章将深入探讨Java...
本篇文章将深入探讨Java匿名内部类的使用规范,帮助你更好地理解和应用这一特性。 首先,理解匿名内部类的基本概念。匿名内部类没有名字,它不能被其他类直接引用,但可以作为局部变量、成员变量或者方法参数。它...
静态内部类与普通成员内部类类似,但可以使用 static 关键字声明。这意味着静态内部类不需要外部类的实例就可以被实例化。然而,尽管如此,它们仍然能访问外部类的静态成员。例如: ```java public class ...
Java 基础第七章内部类与异常类 Java 语言支持在一个类中定义另一个类,这样的类称做内部类。内部类和外嵌类之间存在着紧密的关系:...通过使用内部类和异常处理,我们可以编写更加robust、可靠和高效的 Java 程序。
Java内部类 Java内部类是Java编程语言中的一种特殊的类,它定义在另一个类的内部。内部类可以访问外部类的成员变量和成员方法,同时也可以被外部类访问。内部类可以分为非静态内部类、局部内部类、静态内部类和匿名...
java 局部内部类的使用规范 java 局部内部类的使用规范
### JAVA内部类总结 在Java编程语言中,内部类(Inner Classes)是一种非常重要的特性,它允许我们在一个类的内部定义另一个类。这种结构不仅能够提高代码的组织性,还能帮助我们更好地处理类与类之间的关系。根据...
Java 内部类详解及实例 Java 内部类是一种特殊类型的类,它定义在一个类的内部。这种设计模式在 Java 中提供了许多便利,比如封装、抽象和代码复用...了解并熟练使用内部类是成为一个高级 Java 开发者的关键步骤之一。
以上四个例子分别展示了Java内部类的四种类型及其使用场景。在实际编程中,根据需求选择合适的内部类类型可以提高代码的可读性和可维护性。通过理解这些内部类的差异和用法,开发者能够更好地利用Java的这一特性来...