内部类初次使用
2016-01-04 10:26
375 查看
在静态方法中不能new内部类的实例对象,内部类的特点是能访问外部类的成员变量,因为只有外部类的对象创建完成后,才能分配空间,内部类才能访问外部类的成员变量 如果想创建内部类的实例对象,必须先创建外部类的实例对象。
public class TraditionalThreadSynchronize { /* 在静态方法中不能new内部类的实例对象,内部类的特点是能访问外部类的成员变量,因为只有外部类的 对象创建完成后,才能分配空间,内部类才能访问外部类的成员变量 如果想创建内部类的实例对象,必须先创建外部类的实例对象 * * */ public static void main(String[] args) { /* final outputer out=new outputer(); 上述代码会出现错误提示,TraditionalThreadSynchronize.this 不能在静态方法中被引用*/ new TraditionalThreadSynchronize().init(); } private String className; private void init(){//运行时候,外部类的对象一定已经先创建完成了 final outputer out=new outputer(); new Thread(new Runnable() { @Override public void run() { while(true){ try { Thread.sleep(10); out.output("leixingbang"); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); new Thread(new Runnable() { @Override public void run() { while(true){ try { Thread.sleep(10); out.output("zhangxiaoxiang"); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); } class outputer{//内部类 public void output(String name)//此方法并非线程安全 { String str=className;//说明可以访问外部类对象 int len=name.length(); for(int i=0;i<len;i++) { System.out.print(name.charAt(i)); } System.out.println(); } } }
相关文章推荐
- Python-OpenCV 处理图像(八):图像二值化处理
- Android:网络:多线程断点下载
- Linux设置ssh免密码登录
- 全球六大国际域名解析量均出现负增长 共净减2.3万
- Linux系统手动安装rzsz 软件包
- oracle Health Monitor
- oracle moving window size与 AWR retention period关系
- Oracle11.2新特性之INSERT提示IGNORE_ROW_ON_DUPKEY_INDEX
- oracle 11g新特性Flashback data archive
- 关于系统中使用多个PropertyPlaceholderConfigurer的配置及PropertyOverrideConfigurer
- RMAN List和report 命令
- oracle ASM中ASM_POWER_LIMIT参数
- oracle I/O 从属进程
- easy connect 之 ORA-12154: TNS: 无法解析指定的连接标识符
- oracle表空数据文件 datafile 大小
- iBATIS、Hibernate和JPA:哪一款最适合你
- MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法
- java获取cpu、内存、硬盘信息[转]
- 利用afxDump来调试自己的程序
- [转载]Linux服务器性能评估与优化