Posted on 2007-04-08 22:13
chenweicai 阅读(122)
评论(0) 编辑 收藏
1。类中定义内部类
public class Outer {
private int outer_i = 100;//内部类可以访问外部类的变量
void test(){
Inner inner = new Inner();
inner.display();
}
//当一个类中的程序代码要用到另外一个类的实例对象,
//而另外一个类的程序代码又要访问第一个类的成员时
// 将另外一个类作成第一个类的内部类。
class Inner{
private int inner_i;
//内部类的成员只有在内部类的范围之内是可知的,
//并不能被外部类使用
void display(){
System.out.println("display: outer_i = " + outer_i);
}
}
}
public static void main(String[] args) {
Outer outer = new Outer();
outer.test();
}
2.
public class Outer {
private int size = 1;
public void print(){
Inner inner = new Inner();
inner.method(11);
}
public class Inner{
private int size = 3;
public void method(int size){
size++;//method的形参
this.size++;//Inner类中的成员变量
Outer.this.size++;//Outer类中的成员变量
System.out.println("method size is :" +size);
System.out.println("Inner size is :" + this.size);
System.out.println("Outer size is :" + Outer.this.size);
}
}
public static void main(String[] args){
Outer outer = new Outer();
outer.print();
}
}
3.内部类被外部引用
public class Outer {
private int size = 10;
//内部类声明为public 可从外部类之外被调用
public class Inner{
public void print(){
System.out.println(++size);
}
}
}
public class test {
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
inner.print();
}
}
4.方法中定义内部类
public class Outer {
int outer_i = 100;
String str = new String("Between");
void test(){
for(int i=0; i<5; i++){
class Inner{
void display(){
System.out.println("display: outer_i = " + outer_i);
}
}
Inner inner = new Inner();
inner.display();
}
}
//在方法中定义的内部类只能访问方法中的final类型的局部变量
//因为用final定义的局部变量相当于一个常量,她的生命周期超出了方法运行的生命周期
public void amethod(final int iArgs){
int it315;//此变量内部类不能访问
class Bicycle{
public void sayhello(){
System.out.println(str);
System.out.println(iArgs);
}
}
Bicycle bicycle = new Bicycle();
bicycle.sayhello();
}
}
public static void main(String[] args) {
Outer outer = new Outer();
outer.test();
outer.amethod(18);
}