java内部类与抽象类
2016-07-13 20:48
330 查看
内部类
定义:
内部类对象保存了一个对外部类对象的引用。OuterClassName.this代表外部类对象的引用
InnerClassName.this代表内部类对象的引用
class Outer{ int outer_i = 100; void test(){ Inner in = new Inner(); in.display(); } //在外部类中创建内部类对象 void funcOuter() { Inner inner = new Inner(); System.out.println(inner.in); inner.funcInner(); } class Inner{ void display(){ System.out.println("display: outer_i = " + outer_i); } void funcInner() { System.out.println("ok"); } } }
特点
内部类可以直接访问外部类的成员,反之则不行。内部类可以声明为private或protected。
内部类成员只有在内部类的范围之类是有效的。
访问内部类对象的两种方法
//1、创建外部类对象 Outer outer = new Outer(); //在外部类的方法中创建内部类对象 //通过这个内部类对象访问内部方法 outer.funcOuter(); //2、创建外部类对象 Outer outer2 = new Outer(); //通过外部类对象创建内部类对象 Inner inner = outer2.new Inner(); //通过这个inner可以访问内部类对象 inner.funcInner();
static内部类
特点
static内部类可以象一个普通外部类一样直接创建该对象。static内部类只能访问外部类中的静态成员或方法。
static内部类可以声明static成员,但非static的内部类不可以。
修饰符没有任何限制。
static class InnerStatic { int num; static int num3;// static内部类可以申明static成员 void funcInnerStatic() { // System.out.println(out);//static外部类只能访问静态成员变量 System.out.println(num1); // funcOuter();//static外部类只能访问静态方法 funcOuterStatic(); } }
抽象类
定义 :用abstract来修饰一个类
特点
抽象类不能直接运用new创建对象抽象类的实体中可以有abstract方法,且abstract方法只允许声明,而不允许实现
抽象一个类中包含了abstract方法,则这个类必须声明为abstract类。
抽象类的实现子类必须实现抽象类中所有的abstract方法
相关文章推荐
- JAVA之反射
- Java基础详解160713
- 将eclipse快捷方式添加到左侧快捷栏
- 1.3Java程序运行机制
- java图片裁切工具类
- JAVA学习第三弹——Java代码语句的执行结构
- DataUtils(java日期工具类)
- leetcode 344 Reverse String
- 使用spring官方文档常见Maven管理的spring项目
- Maximum Depth of Binary Tree
- java中的日期操作Calendar和Date
- 关于Spring的问题之Failed to read schema document
- java绘制五环图形
- Java中Collection和Iterator接口
- JDK环境变量设置
- 在Myeclipse buildpath 加server lib (server runtime)
- Java Clone方法介绍
- 杭电ACM 1021题
- MD5工具类(java实现版)
- Java中的static关键字解析