Java内部类——学习笔记
2024-08-23 13:44:39
参考: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(){
}
} }
最新文章
- Launching web on MyEclipse Tomcat 问题
- hdu Dylans loves tree [LCA] (树链剖分)
- Unity的旋转-四元数,欧拉角用法简介
- [外挂6]在指定位置下棋 SendMessage函数
- sencha grid templatecolumn模板列,actioncolumn和renderer实现单元格重绘
- C#中jQuery Ajax实例(二)
- uva 348
- hunnu 11313 无重复元素序列的最长公共子序列转化成最长递增子序列 求法及证明
- PowerShell常用的.Net 、COM对象(New-Object、Assembly)、加载程序集
- Oracle Enterprise Manager Cloud Control 12c R4 安装配置
- .NET基础笔记(C#)
- 零基础如何一步一步开始搭建高性能直播平台?现以GitChat·架构来进行说明
- vue常用属性
- webpack 2 系列
- hdu3555数位dp基础
- Spring事件通知机制
- 包建强的培训课程(4):App测试深入学习和研究
- 【XSY2190】Alice and Bob VI 树形DP 树剖
- api.js封装请求
- XMLHttpRequest对象(Ajax)的状态码(readystate) HTTP状态代码(status)
热门文章
- php实现变态跳台阶(记忆化递归)
- 判断客户端是iPad、安卓还是ios
- 计算机图形学(二)输出图元_3_画线算法_2_DDA算法
- [Node.js] Testing ES6 Promises in Node.js using Mocha and Chai
- mysql数据库 navicat premium mac 破解教程
- Java虚拟机解析篇之---内存模型
- ios开发清除SDWebImage图片缓存
- jquery简单使用(看教程:快全有实例)(固定样式:$().val()设置属性,$().click()设置方法)
- 编译Valgrind arm交叉编译
- php$get中文汉字参数乱码