- 浏览: 142449 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (95)
- java (25)
- 数据库 (9)
- js (0)
- 框架 (10)
- 小问题 (8)
- 转载 (2)
- 配置开发环境 (6)
- 其它 (4)
- 功能记录 (2)
- 安全 (1)
- shell (3)
- spring ibaitis struts2 redis desc (1)
- spring security3.1 (1)
- 小问题 环境 (1)
- 小问题 环境 DelegatingFilterProxy cannot be cast to Filter (0)
- redis filter java (1)
- java redis (2)
- spring quartz 集群 批处理 (1)
- java mybatis (1)
- Junit soap (1)
- mock junit (0)
- mock junit spring (1)
- java jsoup (0)
- jsoup (1)
- python27 pycharm (1)
- maven pom (1)
- java log (1)
- mybatis 分页 (1)
- mysql (1)
- 业务 (1)
- java 测试 (1)
- java zookeeper 批处理 (1)
- hive hadoop (1)
- hive (1)
- hadoop (1)
- maven archetype (1)
- python rsa (1)
- python 页面分析 (1)
- python (0)
最新评论
-
wuyafeng123:
秒杀活动设计思路 -
indiajohns:
非常感谢,很快解决了我的问题
jmesa查询条件中文的编码转换问题 -
yujiaao:
太好了,感谢啊!这行在我这好象不行:URLDecoder.de ...
jmesa查询条件中文的编码转换问题 -
michael_wong:
呵呵,找到啦。在这里有全部源码:http://ishare. ...
Maven权威指南 的simple-parent 工程源码 -
michael_wong:
我也在找啊
Maven权威指南 的simple-parent 工程源码
内部类的作用:
1.完善多重继承。
疑问在于:多重继承可以用组合的方式实现。内部类相对组合方式的优势应该就是内聚更好,因为内部类实现的逻辑对除了自己外部类以外的类是不透明的,代码专用。
Lock相关实现类里面的 Sync这个内部类均扩展了抽象类AQS,并实现AQS的tryAcquire、tryRelease、tryAcquireShared等方法,各个Lock类的Sync各是各的,而且自己用自己的。
2.实现事件驱动系统
用在回调的场景里面,感觉也是代码专用的效果,这是外部对内部的;另外有些场景外部类的私有变量内部类才能访问,那就既是约束,也是方便了。
1.addActionListener方法调用接口ActionListener的实现类--事件驱动模型系统
2.ActionListener接口的实现类又要使用别人ContentPane这个私有成员变量
addActionListener 方法要调用一个能访问自己私有成员变量的类,那只能是一个内部类了
1.完善多重继承。
疑问在于:多重继承可以用组合的方式实现。内部类相对组合方式的优势应该就是内聚更好,因为内部类实现的逻辑对除了自己外部类以外的类是不透明的,代码专用。
Lock相关实现类里面的 Sync这个内部类均扩展了抽象类AQS,并实现AQS的tryAcquire、tryRelease、tryAcquireShared等方法,各个Lock类的Sync各是各的,而且自己用自己的。
2.实现事件驱动系统
用在回调的场景里面,感觉也是代码专用的效果,这是外部对内部的;另外有些场景外部类的私有变量内部类才能访问,那就既是约束,也是方便了。
1.addActionListener方法调用接口ActionListener的实现类--事件驱动模型系统
2.ActionListener接口的实现类又要使用别人ContentPane这个私有成员变量
addActionListener 方法要调用一个能访问自己私有成员变量的类,那只能是一个内部类了
public class ButtonTest extends JFrame { private static final long serialVersionUID = -5726190585100402900L; private JPanel contentPane; public static void main(String[] args) { try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (Throwable e) { e.printStackTrace(); } EventQueue.invokeLater(new Runnable() { public void run() { try { ButtonTest frame = new ButtonTest(); frame.setVisible(true); frame.contentPane.requestFocus(); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public ButtonTest() { setTitle("普通内部类的简单应用"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 300, 200); contentPane = new JPanel(); contentPane.setLayout(null); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); final JButton redButton = new JButton(); redButton.setText("红色"); redButton.setBounds(15, 20, 82, 30); redButton.addActionListener(new ColorAction(Color.RED));//这里用事件模型 contentPane.add(redButton); } private class ColorAction implements ActionListener { private Color background; public ColorAction(Color background) { this.background = background; } public void actionPerformed(ActionEvent e) { contentPane.setBackground(background); //这里用到了外部类的私有成员变量 } } }
发表评论
-
详解ReentrantReadWriteLock
2016-04-21 14:34 0package java.util.concurrent. ... -
logBack用法,记录
2015-11-24 15:37 9921. Logback使用手册 系统中的日志采用 slf4j ... -
表产生sequence功能,测试并发
2015-11-18 16:21 616@Test public void testSerial ... -
Demo
2014-11-03 21:20 0package com.xly.jsoup.nbjy; /* ... -
反射小计
2014-10-07 11:32 489Test.java方法dd重载 class Test{ ... -
Btrace测试
2014-07-17 17:56 599偶尔看到BTrace,必须记录一下 利用hotSpot虚拟机 ... -
java对象占用heap的大小
2013-07-31 10:09 906一个对象占用的堆空间首先是和它有多少个成员变量直接相关 pub ... -
BeanCopier和BeanUtils实现对象复制,处理date类型
2013-03-29 12:52 4376没有废话 先是BeanUtils的实现类型: impo ... -
liferay 为JournalArticle添加分类
2013-03-21 15:45 1056/** * 为网页内容添加分类 ... -
liferay直接跳转到网页内容编辑页面修改的friendlyUrl效果
2013-03-21 14:11 1209找到portlat-impl.jar包,在目录 port ... -
JMS_DEMO
2013-03-14 20:25 14671.安装activeMq 修改service.pr ... -
Xmemcached/jedis springdemo
2013-02-20 13:13 893Xmemcached: HelloWordTest.ja ... -
规则检查功能的demo
2013-01-31 12:55 0规则检查Demo,包括mina,线程池功能 -
使用spring的线程安全web应用(翻译Thread-safe webapps using Spring)
2013-01-11 16:38 1871http://www.javalobby.org/articl ... -
JAVA虚拟机锁机制的升级流程
2013-01-08 14:52 2833http://ifeve.com/java-synchroni ... -
NIO学习
2012-11-27 11:49 1460最需要关注的是,应用进程、内核、IO三个概念。 所谓java的 ... -
Tomcat的HttpConnector/HttpProcesser(tomcat源码学习)
2012-11-21 10:47 1223先启动进程HttpProcesser,等请求到达后加入sock ... -
web.xml加载
2011-02-18 17:24 881转: web.xml文件内容加载顺序为:context- pa ... -
webLogic中 Cannot parse POST parameters of request: 的问题小记
2010-11-25 13:25 7760报错内容: weblogic.utils.NestedRunt ... -
数字签名Java实现小记
2010-08-30 10:42 1518一个证书发放单位给的证书里面包括一个发送单位的公钥,当前用户的 ...
相关推荐
Java内部类是Java言语的一个很重要的概念,《Java编程思想》花了很大的篇幅来讲述这个概念。但是我们在实践中很少用到它...本文试图谈一谈让这个幕后英雄也有用武之地的四个场景,希望引起大家对使用Java内部类的兴趣。
谈Java内部类的四个应用场景
java内部类使用例子,可以运行
java 成员内部类使用 内部匿名类 方法参数匿名类 方法匿名类
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 内部类应用java 内部类应用java 内部类应用java 内部类应用java 内部类应用java 内部类应用java 内部类应用
java 匿名内部类的使用规范 java 匿名内部类的使用规范 java 匿名内部类的使用规范
java 内部类 实例内部类 局部内部类 匿名类 静态内部类 实例代码
Java内部类Java内部类Java内部类Java内部类Java内部类Java内部类Java内部类
java排序算法使用及场景说明 文档后面有一些别人的链接,多在google上搜索Java排序算法,及维基百科上面也有很全的算法介绍。
java 局部内部类的使用规范 java 局部内部类的使用规范
通过该代码,我们将学习如何在Java中定义和使用内部类。这个案例展示了内部类的基本语法和用法,并提供了一个实际场景来演示内部类的灵活性和功能。 适用人群: 这个源码资源适用于Java开发者,特别是对内部类概念...
java 成员内部类的使用规范 java 成员内部类的使用规范
java 静态内部类的使用规范 java 静态内部类的使用规范
Java 接口 内部类Java 接口 内部类Java 接口 内部类
16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名...
Java 的使用 分别介绍了 成员内部类、方法内部类、静态内部类
java内部类的使用,用在何处,方法的使用
java基础第七章内部类与异常类.doc