package test10;
class outer{
private int num=100;
public void diaoyong(){
inner i=new inner();//外部类要访问内部类的成员,必须创建对象
i.method();}
class inner{
public void method(){
System.out.println(num);//内部类可以直接访问外部类的成员,包括私有成员
}}}
public class main {
public static void main(String[] args){
// TODO Auto-generated method stub
}}
class outer{
private int num=100;
//在成员位置定义的类,称为成员内部类
class inner{
public void method(){
System.out.println(num);//内部类可以直接访问外部类的成员,包括私有成员
}}
public void diaoyong(){
inner i=new inner();//外部类要访问内部类的成员,必须创建对象
i.method();}}
成员内部类如何直接访问内部类的成员?
格式:外部类.内部类 对象名=外部类对象.内部类对象;
package test10;
class outer{
private int num=100;
//成员内部类
class inner{
public void method(){
System.out.println(num);}}}
public class main {
public static void main(String[] args){
// TODO Auto-generated method stub
//访问inner类的method方法
//格式:外部类.内部类 对象名=外部类.内部类;
outer.inner d=new outer().new inner();
d.method();}}
package test10;
class outer{
private static int num=100;
//成员内部类
//内部类可以用static修饰,是因为他可以看成是内部类的成员,外部类是不可以用static修饰的
public static class inner{
public void method(){
System.out.println(num);}
public void method2(){
System.out.println(num);}}}
public class main {
public static void main(String[] args){
// TODO Auto-generated method stub
//访问inner类的method方法
//格式:外部类名.内部类名 对象名=new 外部类名.内部类名();
outer.inner d=new outer.inner();
d.method();
d.method2();
//第二种调用
outer.inner.method2();}}
局部位置:在局部位置定义的类,被称为局部内部类
class outer{
private int num=100;
public void diaoyong(){
//在局部位置定义的类,称为局部内部类
class inner{
public void method(){
System.out.println(num);}}}}
package test10;
class outer{
public int num=10;
public void method(){
class inner{
public void show(){
System.out.println(num);//30
}}
inner i=new inner();
i.show();}}
public class main {
public static void main(String[] args){
// TODO Auto-generated method stub
outer o=new outer();
o.method();}}