成员内部类和局部内部类
成员内部类
我们在外部类中定义一个成员内部类,这个内部类和成员变量成员方法是同级的
/** * 外部类 */ class Outter{ private String name = "张三"; /** * 内部类 */ class Inner{ public void show(){ System.out.println(name); } } void info(){ } }
如何在外部获取内部类对象
内部类非私有
格式:
外部类名.内部类名 对象名 = 外部类对象.内部类对象;
public class OOPDemo01 { public static void main(String[] args) { Outter.Inner inner = new Outter().new Inner(); inner.show(); } } /** * 外部类 */ class Outter{ private String name = "张三"; /** * 内部类 */ class Inner{ public void show(){ System.out.println(name); } } void info(){ } }
运行结果:

内部类私有
内部类作为外部类的成员,那么是可以用private来修饰的,既然用private修饰那也就意味着外界是没办法直接获取对象的,
同时我们也没法通过相关的类型来接收,但是我们可以在外部类中提供相关的getter/setter方法来处理
package com.example.ObjectOriented.Interface1.oop10; public class OOPDemo01 { public static void main(String[] args) { Outter outter = new Outter(); outter.setInner(); System.out.println(outter.getInner()); } } /** * 外部类 */ class Outter{ private String name = "张三"; /** * 内部类 */ private class Inner{ public void show(){ System.out.println(name); } } public void setInner(){ Inner inner = new Inner(); inner.show(); } public Inner getInner(){ Inner inner = new Inner(); return inner; } void info(){ } }
运行结果:

局部内部类
成员内部类我可以理解为和成员变量同级,那么局部内部类我们也可以理解为和局部变量同级的内部类
package com.example.ObjectOriented.Interface1.oop10; public class OOPDemo02 { public static void main(String[] args) { Outter02 outter02 = new Outter02(); outter02.show(); } } class Outter02{ int num = 20; public void show(){ num =30; /** * 定义局部内部类 */ class Inner{ public void info(){ System.out.println("info。。。"); } } Inner inner = new Inner(); inner.info(); System.out.println(num); } }
运行结果:

 
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号