Java面向对象 局部内部类的一些特点
2015-06-15 23:02
621 查看
1.不可以被成员修饰符修饰
2.可以直接访问外部类中的成员,因为还持有外部类中的引用。
但不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量
(局部内部类中访问局部变量,局部变量需要定义为final)
package test;
class Outer {
private int x = 1;
void method() {
final int y = 4;
class Inner {
void function() {
System.out.println("y = "+ y);
}
}
new Inner().function();
}
}
public class InnerClassDemo {
public static void main(String[] args) {
new Outer().method();
}
}
//y = 4
package test;
class Outer {
private int x = 1;
void method(final int x) {
class Inner {
void function() {
System.out.println("x = "+ x);
}
}
new Inner().function();
}
}
public class InnerClassDemo {
public static void main(String[] args) {
Outer a = new Outer();
a.method(7);
a.method(8);
}
}
//x = 7
//x = 8
2.可以直接访问外部类中的成员,因为还持有外部类中的引用。
但不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量
(局部内部类中访问局部变量,局部变量需要定义为final)
package test;
class Outer {
private int x = 1;
void method() {
final int y = 4;
class Inner {
void function() {
System.out.println("y = "+ y);
}
}
new Inner().function();
}
}
public class InnerClassDemo {
public static void main(String[] args) {
new Outer().method();
}
}
//y = 4
package test;
class Outer {
private int x = 1;
void method(final int x) {
class Inner {
void function() {
System.out.println("x = "+ x);
}
}
new Inner().function();
}
}
public class InnerClassDemo {
public static void main(String[] args) {
Outer a = new Outer();
a.method(7);
a.method(8);
}
}
//x = 7
//x = 8
相关文章推荐
- 面向对象理论概述
- Java.面向对象(学习笔记)
- java学习之面向对象编程-类与对象
- 黑马程序员_面向对象(一)
- 黑暗程序员--javaSE--java面向对象
- Java面向对象 构造代码块
- Java面向对象 多态动态绑定(非静态成员函数、成员变量、静态成员函数)
- Java面向对象 非静态内部类的一些特点
- 欢迎使用CSDN-markdown编辑器
- Java面向对象编程(思想)简要介绍
- 用JAVA面向对象特性描述现实生活斗地主的过程
- Java面向对象的特征有哪些内容
- Java面向对象(一)
- 关于== 、equals和instanceof方法你想知道的一切——Java
- Java4Android笔记之Java中的面向对象基础(二)
- java基本概念
- 二、java面向对象三大思想
- java-三大特性之一继承
- Java多线程 创建线程的两种方法
- Java面向对象 继承类的一些特殊写法