关于外部类对内部的访问权限

本文详细解析了Java中外部类如何访问内部类的各种访问权限属性及方法,并介绍了内部类如何轻松访问外部类属性,无需实例化外部类。

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

现在我分两步分来讲:

第一部分:外部类访问内部类的访问权限有多高?

大家都知道private属性定义的属性,方法都只能在自己的类中进行访问,那么,用private修饰的属性方法在外部类中能否访问呢?   

答:外部类可以访问所有的内部类属性,可以通过实例化内部对象来访问内部类的所有属性,因为内部类是存在于外部类中的,所以无论内部类的属性方法为何种访问权限,外部类都可以通过实例化内部类对象获得

以下是部分操作代码:

Code:
  1. class Outer {   
  2.      private String info = "hello java";//外部类属性   
  3.      private class Inner {   
  4.         private String mess = "cheng";//内部类属性   
  5.         private void print (){//内部类方法   
  6.            System.out.println (info);   
  7.         }   
  8.      }   
  9.      public void fun(){   
  10.         new Inner().print ();//在内部类中可以访问内部类地所有方法   
  11.         System.out.println (new Inner().mess); //在内部类中可以访问内部类地所有属性   
  12.      }   
  13. }  

 

以下是完整代码:

Code:
  1. class Outer {   
  2.      private String info = "hello java";   
  3.      private class Inner {   
  4.         private String mess = "cheng";   
  5.         private void print (){   
  6.            System.out.println (info);   
  7.         }   
  8.      }   
  9.      public void fun(){   
  10.         new Inner().print ();   
  11.         System.out.println (new Inner().mess);    
  12.      }   
  13. }   
  14.   
  15. public class InnerClassDemo01 {   
  16.     public static void main (String[] args){   
  17.          new Outer().fun ();   
  18.     }   
  19. }  

第二部分:内部类也可以轻松地访问外部类属性,并且不需要实例化外部类

部分代码如下:

Code:
  1. class Outer {   
  2.      private String info = "hello java";   
  3.      private class Inner {   
  4.         private String mess = "cheng";   
  5.         private void print (){   
  6.            System.out.println (info);//内部类可直接访问外部类属性,不需要实例化外部类对象   
  7.         }   
  8.      }   
  9.      public void fun(){   
  10.         new Inner().print ();   
  11.         System.out.println (new Inner().mess);    
  12.      }   
  13. }  

 

完整代码如上(与上面代码相同):

Code:
  1. class Outer {   
  2.      private String info = "hello java";   
  3.      private class Inner {   
  4.         private String mess = "cheng";   
  5.         private void print (){   
  6.            System.out.println (info);   
  7.         }   
  8.      }   
  9.      public void fun(){   
  10.         new Inner().print ();   
  11.         System.out.println (new Inner().mess);    
  12.      }   
  13. }   
  14.   
  15. public class InnerClassDemo01 {   
  16.     public static void main (String[] args){   
  17.          new Outer().fun ();   
  18.     }   
  19. }  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值