java学习之路--内部类

本文详细解析Java内部类的概念、作用以及如何在实际编程中运用它们。通过提供具体的代码示例,深入探讨内部类如何访问外部类的私有属性,以及将内部类转变为静态类的方式。同时,介绍在方法中声明内部类的方法,以及外部类如何实例化内部类并调用其方法。最后,解释如何在方法中使内部类访问方法参数的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.内部类:


内部类就是在一个类的内部在定义一个类


代码:


public class Outer {
        private String s="hello world";
        
        class Inner{
                public void info(){
                        System.out.println(s);
                }
        
                
        }
        public void fun(){
                new Inner().info();
        }
        
        public static void main(String[] args) {
        
                new Outer().fun();
                
        }


}


这样做的好处是:可以让内部类直接访问外部类的私有属性




其实内部类也可以变为“外部类”


看代码
public class Outer {
        private static String s="hello world";
        
        static class Inner{
                public void info(){
                        System.out.println(s);
                }
        
                
        }
        public void fun(){
                new Inner().info();
        }
        
        public static void main(String[] args) {
        
                new Outer.Inner().info();
                
        }


}
把内部类声明为静态类,这样内部类就变为“外部类”


public class Outer {
        private static String s="hello world";
        
        static class Inner{
                public void info(){
                        System.out.println(s);
                }
        
                
        }
        public void fun(){
                new Inner().info();
        }
        
        public static void main(String[] args) {
        
                new Outer.Inner().info();
                new Inner().info();//输出结果是一样的,因为现在内部类已经变为外部类了。
                
        }


}
结果是一样




外部类也可以实例化来调用内部类的方法


class Outer {
        private  String s="hello world";
        
         class Inner{
             
                public void info(){


                        System.out.println(s);
                }
        
                
        }
 
};


public class InnerTest {
        public static void main(String[] args) {
                   Outer outer=new Outer();//实例化外部对象
                   Outer.Inner in=outer.new Inner();//实例化内部对象
                   in.info();//调用内部类的方法
        }


}


在方法中也可以来声明内部类


class O{
         //方法中内部类想要访问方法的参数,则方法的参数必须是final
        public void fun(final int temp){
                  
                class Inner{//在方法中定义内部类
                
                        public void info(){
                                System.out.println("hello world"+temp);
                        }
                        
                }
                new Inner().info();
        }
}




public class InnerTest1 {
 public static void main(String[] args) {
        
          new O().fun(30);
}
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值