Java内部类——学习笔记
参考:http://blog.csdn.net/aaronsi/article/details/187322 和 http://openhome.cc/Gossip/JavaGossip-V1/InnerClass.htm
內部類別(Inner class)或「巢狀類別」(Nested class)。
非"static"的內部類別可以分為三種:成員內部類別(Member inner class)、區域內部類別(Local inner class)與匿名內部類別(Anonymous inner class)。
member inner classes: 要创建它的实例,必须有一个指向上层的引用,它不能含有static方法,可以有final的方法。
local inner classes: 只能被声明成abstract/final的或默认class;只能访问final/static的本地变量。local and anonymous 内部类不能被声明为private、public、protected or static。
anonymous inner classes: 匿名类不能含有构造函数。
static inner classes只有最上层的类或static类可以有,并且它只能访问static变量。
例子如下:
public class ATest{
int nonstatic_a = 3;
static int static_b = 4;
final int final_c = 5;
public static void main(String[] args){
}
public void test01(int i){
final int c=0;
int d = 1;
//③local inner classes只能被定义成abstract/final的;只能访问final/static的本地变量。
//Illegal modifier for the local class InnerClass_Local; only abstract or final is permitted
class InnerClass_Local{
final int l= 0;
//Cannot refer to a non-final variable d inside an inner class defined in a different method
//③local inner classes只能被定义成abstract/final的;只能访问final/static的本地变量。
// int e = d;//Compile Error!
int e = static_b;
int f = final_c;
//The field ll cannot be declared static;
//static fields/methods can only be declared in static or top level types
// static int ll=2; //Compile Error!
// static void f1(){//Compile Error!
// System.out.print(c);
// }
}
}
void fun2(){
}
static class InnerClass2{
static int ll=2;
int aa=3;
//①static inner classes只有最上层的类或static类可以有,并且它只能访问static变量。
// int bb = nonstatic_a; //Compile Error!
static class InnerClass5{
}
}
class InnerClass3{
//②member inner classes要创建它的实例,必须有一个指向上层的引用,它不能含有static方法。
//The member type InnerClass4 cannot be declared static;
//static types can only be declared in static or top level types
// static class InnerClass4{//Compile Error!
// }
final void inner_fun(){
}
}
final class InnerClass4{
void final_fun(){
}
}
}
Java内部类——学习笔记的更多相关文章
- Java内部类学习笔记
20160923 定义:将一个类的定义放在另一个类的内部: 从外部类的非静态方法之外,创建某个内部类的对象:OutClassName.InnerClassName: 内部类拥有所有其外部类的成员的访问 ...
- 【09-04】java内部类学习笔记
java中的内部类 静态内部类 成员内部类 方法内部类 匿名内部类 1.静态内部类 class Outer { private static String outer = "outer&qu ...
- Android(java)学习笔记267:Android线程池形态
1. 线程池简介 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力. 假设一个服务器完成一项任务所需时间为:T1 创建线程时间, ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- Android(java)学习笔记211:Android线程池形态
1. 线程池简介 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力. 假设一个服务器完成一项任务所需时间为:T1 创建线程时间, ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Kotlin for Java Developers 学习笔记
Kotlin for Java Developers 学习笔记 ★ Coursera 课程 Kotlin for Java Developers(由 JetBrains 提供)的学习笔记 " ...
- 20145213《Java程序设计学习笔记》第六周学习总结
20145213<Java程序设计学习笔记>第六周学习总结 说在前面的话 上篇博客中娄老师指出我因为数据结构基础薄弱,才导致对第九章内容浅尝遏止地认知.在这里我还要自我批评一下,其实我事后 ...
- [原创]java WEB学习笔记95:Hibernate 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- 【BZOJ 2754】[SCOI2012]喵星球上的点名
[链接]h在这里写链接 [题意] n个人; 由姓和名组成.s1[i]和s2[i]; 有m个询问串. 问你第j个询问串,是否为某个人的姓或者名的子串. 如果是的话 ...
- UILabel基本用法
UILabel *_label = [[UILabel alloc]initWithFrame:CGRectMake(, self.view.frame.size.height*)]; _label. ...
- sql海量数据优化
1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设 ...
- vue-cli 3.x 移除console总结
网上找了很多vue-cli 3.x的配置,很多已经不适用了,把采坑的经历记录下来,供参考. 一.使用 uglifyjs-webpack-plugin 插件 配置如下: // vue.config.js ...
- [Angular2] Build reuseable template with ngTemplateOutlet
We can build a template, use this template and pass in different context to make it reuseable: <t ...
- [Immutable.js] Updating nested values with ImmutableJS
The key to being productive with Immutable JS is understanding how to update values that are nested. ...
- Android自定义组件系列【11】——实现3D立体旋转效果
今天在网上看到一篇文章写关于Android实现3D旋转(http://www.ibm.com/developerworks/cn/opensource/os-cn-android-anmt2/inde ...
- SAP 中的popup dialog (弹出对话框) 常见实现方法
方法1: FM:POPUP_TO_CONFIRM(标准对话弹出消息) 有三个button:YES-NO-CANL,可进行对应的逻辑推断 可设定标题,描写叙述问题,不方便对文本进行换行等排版,不能改 ...
- jquery-11 jquery中的事件切换如何实现
jquery-11 jquery中的事件切换如何实现 一.总结 一句话总结:事件切换hover()和toggle()函数.参数两个,都是函数,依次执行两个函数. 1.如何实现单击切换图片? 用togg ...
- 从头认识Spring-2.3 注解装配-@autowired(5)-限定器@Qualifier(1)
这一章节我们来具体讨论一下配合@autowired一起使用的限定器@Qualifier. 1.domain(重点) 蛋糕类: package com.raylee.my_new_spring.my_n ...