- 浏览: 109623 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (159)
- 前端开发 (6)
- jsp (4)
- jquery (17)
- 配置文件 (2)
- Spring (10)
- java (34)
- hibernate (9)
- VC++ win32 application (6)
- C++ (6)
- MFC文件夹对话框 (1)
- C (4)
- MFC (1)
- C# (3)
- 两个路由器怎么连接 (1)
- Maven3 (3)
- Servlet (10)
- Struts2 (6)
- jdom (1)
- Struts1 (1)
- Spring MVC (2)
- Ant (5)
- SSH (6)
- oracle 10g (1)
- ibatis (3)
- JPA (3)
- EJB (2)
- XML知识 (3)
- javascript (2)
- android (1)
- FreeMarker (1)
- dwr (1)
- Ext (10)
- EXCEL (1)
最新评论
package com.diaodiao.inner; class Outer { private String name = "Hello"; class Inner { public void print() { System.out.println(Outer.this.name); } } public void fun() { new Inner().print(); } } public class OODemo { /** * @param args */ public static void main(String[] args) { new Outer().fun(); } } 输出:Hello 如果单独从语法上来讲,内部类的定义操作并不麻烦,但是使用内部类有一个优点和一个缺点: [b]缺点:[/b]从java的定义结构来讲,一个类中只能有属性和方法所组成,此时又增加了一个类,这样的做法会破坏程序的结构; [b]优点:[/b]可以方便的访问外部类的私有操作.
既然是类,那么肯定会产生字节码文件,所以下面观察一下内部类的字节码文件:Outer$Inner.class,可以发现现在在内部类的字节码文件中存在了一个“$”符号, 而此符号在程序之中会被自动的替换为:".",那么通过这样的替换也就发现,内部类的完整名称应该是“外部类.内部类”,所以此时,如果要想在外部进行内部类的对象实例化操作,则格式如下:外部类.内部类 内部类对象 = new 外部类().new 内部类(); 内部类有可能操作外部类中的普通属性,而普通属性是在对象实例化之后才会被分配空间的,所以就证明在实例化内部类的对象之前,必须先有外部类的实例化对象. package com.diaodiao.inner; class Outer { private String name = "Hello"; class Inner { public void print() { System.out.println(Outer.this.name); } } } public class OODemo { /** * @param args */ public static void main(String[] args) { Outer.Inner inner = new Outer().new Inner(); inner.print(); } } [b]说明一:[/b] 如果现在一个内部类只希望被外部类所操作,则可以在类的定义上使用private声明.
[b][size=large]使用static定义内部类[/size][/b] 内部类也可以使用static关键字进行定义,但是一旦使用了static定义内部类的话,则表示这个内部类就变成了外部类,而内部类的完整名称也就变为"外部类.内部类",而且此时也只能访问外部类中的static操作了. package com.diaodiao.inner; class Outer { private static String name = "Hello"; static class Inner { public void print() { System.out.println(Outer.name); } } } public class OODemo { /** * @param args */ public static void main(String[] args) { Outer.Inner inner = new Outer.Inner(); inner.print(); } } 但是特别需要注意到是,使用static定义类的形式,只适合出现在定义内部类上,外部类是无法使用的.
[size=large][b]在方法中定义内部类[/b][/size] package com.diaodiao.inner; class Outer { private String name = "Hello"; public void fun() { class Inner { public void print() { System.out.println(Outer.this.name); } } new Inner().print(); } } public class OODemo { /** * @param args */ public static void main(String[] args) { new Outer().fun(); } } 另外,如果在一个方法中定义的内部类,要想访问方法中的参数或者是变量,则参数或变量前必须使用"final"关键字定义。 package com.diaodiao.inner; class Outer { private String name = "Hello"; public void fun(final int x) { final String str = "MLDN"; class Inner { public void print() { System.out.println(Outer.this.name); System.out.println(x); System.out.println(str); } } new Inner().print(); } } public class OODemo { /** * @param args */ public static void main(String[] args) { new Outer().fun(10); } } [b]说明二:[/b]内部类除了可以方便的访问外部类的私有操作外,外部类也可以方便的访问内部类的私有操作.
发表评论
-
java的日期操作类
2014-09-16 15:00 532package cn.mldn; import ja ... -
列表框 JList
2014-08-16 19:19 482package net.mindview.util; ... -
分页类
2014-02-23 15:05 508package com.yxq.model; pub ... -
java mail
2014-02-14 15:13 395package com.util.mail; /** ... -
Map输出方式一:Iterator输出Map
2014-02-12 11:49 881package com.mldn.map; impo ... -
Comparable
2014-02-11 20:16 387package org.lxh.demo13.setdem ... -
Foreach与迭代器
2014-02-11 17:45 518到目前为止,foreach语法主要用于数组,但是它也可以应 ... -
打印流
2014-02-07 20:10 445package com.bjsxt.print; i ... -
管道流
2014-02-07 17:23 443package com.bjsxt.buffer; ... -
Tramsform IO
2014-02-07 16:15 632package com.bjsxt.transform; ... -
Buffered IO
2014-02-07 15:02 576package com.bjsxt.buffer; ... -
字符流
2014-02-07 10:32 612package com.bjsxt.reader; ... -
字节流
2014-02-06 17:57 506package com.bjsxt.stream; ... -
RandomAccessFile类
2014-02-06 13:18 591使用RandomAccessFile类写入数据 impor ... -
排序啊啊啊啊
2013-09-18 10:32 450package cn.mldn; public cl ... -
java_匿名内部类
2013-04-10 15:26 957package com.bitsoft.inner; ... -
JAVA----- String方面的面试举例
2013-03-31 00:55 744[img] [/img] package com.t ... -
反射机制(2)
2013-03-20 20:39 715package com.bjsxt.demo; im ... -
反射机制
2013-03-17 22:19 469package org.dcl.demo; inte ... -
jdbc 存储过程
2013-03-13 15:13 718MySQL存储过程的创建 (1). 格式 MySQL存储过 ...
相关推荐
Java中的内部类是一种特殊类型的类,它被定义在另一个类的内部。内部类有四种主要类型:成员内部类、静态嵌套类、方法内部类和匿名内部类。 1. 成员内部类:这类内部类就像外部类的成员,可以访问外部类的所有成员...
Java__内部类.mp4
Java内部类是指在外层类中的嵌套类,可以作为成员变量、方法或局部变量使用。内部类可以继承父类或实现接口,内部接口总是静态的。例如,声明一个直线类,包括一个内嵌的点类: ``` public class Line { class ...
在Java编程语言中,内部类和匿名内部类是两种特殊类型的类,它们为代码的组织和功能实现提供了独特的灵活性。本教程"Java4Android 35_内部类和匿名内部类"深入探讨了这两个概念,旨在帮助开发者更好地理解和运用它们...
Java内部类是Java编程语言中的一个独特特性,它允许在一个类的定义内部定义另一个类。这种设计模式在处理复杂的对象关系、实现匿名类以及提供更好的封装性时非常有用。在这个"JAVA_12内部类"的学习资料中,我们将会...
Java内部类 Java内部类是Java编程语言中的一种特殊的类,它定义在另一个类的内部。内部类可以访问外部类的成员变量和成员方法,同时也可以被外部类访问。内部类可以分为非静态内部类、局部内部类、静态内部类和匿名...
Java内部类是Java编程语言中一个独特且强大的特性,它允许我们在一个类的定义内部创建另一个类。这个特性使得代码更加模块化,并且可以更好地封装和管理类的使用。"MLDN魔乐JAVA_12内部类.rar"压缩包文件很显然是...
Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不定义完整类的情况下创建对象。这种类没有名字,通常用作一次性实现某个接口或继承某个类的情况,尤其是在需要简洁代码的地方。以下是对Java匿名内部...
Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不需要定义一个单独的类的情况下创建类的实例。这在处理回调、事件监听、单例模式以及其他需要短时间内定义一个简单类的情况时非常有用。本篇文章将...
Java面向对象程序设计第6章_内部类与异常类
由于包含了源码,开发者可以深入学习其内部机制,理解如何在Java中处理日期和时间的显示,以及如何利用SWT库创建原生界面。对于学习Java GUI编程或者需要定制时间显示功能的开发者来说,这是一个非常有价值的资源。
Java源代码(.java文件)是用Java语言编写的程序,它们是人类可读的文本文件,包含类、方法和变量定义等。这些源代码在经过Java编译器(javac)处理后,会被转化为字节码(.class文件),字节码可以在Java虚拟机...
### Java静态内部类(嵌套类)详解 #### 一、静态内部类概念与特性 在Java编程语言中,静态内部类(也被称为嵌套类)是一种特殊的内部类形式,它通过`static`关键字来定义。与普通内部类相比,静态内部类具有以下...
通过实现EventListener接口或使用匿名内部类,开发者可以添加ActionListener、MouseListener、KeyListener等来响应用户操作,如点击按钮、移动鼠标或按键。 3. **布局管理器**:Swing提供了多种布局管理器,如...
在Java中,这一概念主要通过`java.util.concurrent`包中的类和接口实现,如`ExecutorService`、`Future`、`Thread`等。"jibu_java_1.0.0"库可能包含了这些核心类的实现或扩展,以适应更复杂的并行场景。 1. **线程...
java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类。 java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中...
"java_游戏_源码"明确了这些游戏是用Java编写,并且提供源代码,意味着我们可以直接查看并理解游戏的内部工作机制。最后,“游戏开发”涵盖了从设计概念到实现游戏逻辑的整个过程。 在"www.pudn.com.txt"这个文件中...
16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名...
### Java内部类详解 #### 一、内部类的分类与概念 Java的内部类机制是其强大特性之一,它允许类作为另一个类的成员存在,从而增强了代码的封装性和复用性。根据定义和作用域的不同,Java内部类主要分为四类: 1. ...
10. **性能优化**:通过理解和分析JVM的内部工作原理,开发者可以进行诸如内存调优、线程优化、JIT编译策略调整等操作,提升Java应用程序的性能。 《Java虚拟机规范(Java_SE_7)》不仅是一份技术文档,也是Java...