您的位置:首页 > 编程语言 > Java开发

28 java 内部类 局部内部类

2013-12-19 22:20 435 查看
package com.wjl.zy001;

//外部类
public class ClassA {
private int num;

public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}

public void printA()
{
System.out.println("来自 ClassA");
}

//访问内部类  内部类相对 外部类存在隐私  不能访问
ClassAChild classAchild=new ClassAChild();

//内部类
//去掉 public 在 包内可以访问 但是在包外不可以访问
public class ClassAChild
{
private int numChild;
public void printAChild()
{
System.out.println("来自 ClassAChild");
num++;
int a=num;
System.out.println(a);

//访问 外部类
ClassA classa=new ClassA();
classa.printA();
}
}
}


创建测试类

package com.wjl.zy001;

public class Test {

public static void main(String[] args) {
// TODO Auto-generated method stub
ClassA classA=new ClassA();
classA.printA();//来自 ClassA

//使用内部类 先实例外部类 再实例 内部类
ClassA.ClassAChild classAChild=new ClassA().new ClassAChild();
classAChild.printAChild();//来自 ClassAChild 1

System.out.println(classA.getNum());//0
/*
* 来自 ClassA
来自 ClassAChild
1
来自 ClassA
0
*/

}

}


局部内部类

package com.wjl.zy001;

import javax.sound.midi.SysexMessage;

//外部类
public class ClassA {
private int num;

public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}

public void printA()
{
System.out.println("来自 ClassA");

}

public void contentsChildClass()
{
//局部内部类
class ClassAinMothod
{
private int aa=1;
public void printSClassAinMothod()
{
System.out.println("局部内部类");
System.out.println(aa);
}
}

//用在方法内部
ClassAinMothod classainmothod=new ClassAinMothod();
classainmothod.printSClassAinMothod();
}

//访问内部类  内部类相对 外部类存在隐私  不能访问
ClassAChild classAchild=new ClassAChild();

//内部类
//去掉 public 在 包内可以访问 但是在包外不可以访问
public class ClassAChild
{
private int numChild;
public void printAChild()
{
System.out.println("来自 ClassAChild");
num++;
int a=num;
System.out.println(a);

//访问 外部类
ClassA classa=new ClassA();
classa.printA();
}
}
}


package com.wjl.zy001;

public class Test {

public static void main(String[] args) {
// TODO Auto-generated method stub
ClassA classA=new ClassA();
classA.printA();//来自 ClassA

//使用内部类 先实例外部类 再实例 内部类
ClassA.ClassAChild classAChild=new ClassA().new ClassAChild();
classAChild.printAChild();//来自 ClassAChild 1

System.out.println(classA.getNum());//0
/*
* 来自 ClassA
来自 ClassAChild
1
来自 ClassA
0
*/

//使用局部内部类
classA.contentsChildClass();//局部内部类 1

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐