java内部类 博客分类: java java内部类
java内部类
/**
* 内部类 可以是public private static,
* 可以在类中,方法中,
* 可是是匿名,
* 可以使用外部类成员,也可以使用方法中final变量-非static
* 可以依靠外部类实例化,或是正常在类外实例化-static的嵌套类
* 可以内部类再内部类-static的嵌套类
*
* 看几个例子就不言而喻了
* @author dirk.zhang
* 2012-12-24 下午5:53:32
*/
public class OutClass {
private String content;
private int id;
public OutClass(){
content = "just test";
}
/**
* 私有内部类
* @author dirk.zhang
* 2012-12-24 下午5:34:30
*/
public class innnerClass{
public String getstr(){
return content;
}
}
/**
* 私有内部类
* @author dirk.zhang
* 2012-12-24 下午5:34:40
*/
private class innerClass2{
public void modify(){
id++;
}
}
/**
* 方法中的内部类
* 实现闭包
*/
public void getInner(){
interface1 actual1 = new interface1() {
@Override
public void show() {
System.out.println(content);
}
};
actual1.show();
}
/**
* 匿名类
* @return
*/
public interface1 getInner2(){
return new interface1() {
@Override
public void show() {
System.out.println(id);
}
};
}
/**
* 内部类,如用到方法里的参数,需要fianl
* @param a
* @param f
* @return
*/
public interface2 getInner3(String a,final int f){
return new innerClass3(a,f) {
@Override
public void show(String a){
System.out.println(a);
System.out.println(content);
}
public int geta(){
return f;
}
};
}
private static int staticI = 10;
/**
* 嵌套类
* @author dirk.zhang
* 2012-12-24 下午5:48:09
*/
public static class innerClass4{
public void showa(){
// System.out.println(content);不能使用外部类的非static变量
System.out.println(staticI);
}
}
public interface interface1{
public void show();
}
public class innerClass3 implements interface2{
private String str;
private int i;
public innerClass3(String str,int i){
this.str = str;
this.i = i;
}
@Override
public void show(String a) {
System.out.println(a);
}
}
public interface interface2{
public void show(String a);
}
public static void main(String[] args) {
OutClass outclass = new OutClass();
System.out.println(outclass.content);
innerClass3 i3 = outclass.new innerClass3("", 1);
innerClass4 i4 = new innerClass4();
}
}
推荐阅读
-
java内部类 博客分类: java java内部类
-
JavaMai——邮箱验证用户注册 博客分类: JAVA javajavaMail邮箱验证
-
Gradle简介 博客分类: Java基础 GradleJava
-
关于Java一些乱七八糟的东西 博客分类: Java基础 Javafinalbreakcontinueinteger
-
java nio实例一 博客分类: javajava nio javanio实例
-
分享java操作mongodb的crud代码 博客分类: mongodbnosqljava mongodbcrud增删改查
-
java程序员5年后的技术思考(2018) 博客分类: java
-
Java数据分页 博客分类: Java数据库 javapaginationinner classdaomysql
-
Java面试转载 博客分类: Java面试
-
Javarebel启动程序java.lang.OutOfMemoryError: PermGen space问题的解决 博客分类: 开发杂记 JavaJVMMyeclipse金山thread