java 静态内部类

打印 上一主题 下一主题

主题 1853|帖子 1853|积分 5559

文章同步更新(更好的排版):
java 静态内部类
一、位置

位于类的内部。相当于用 static 修饰的成员内部类。此时的内部类不再受到外部类实例化对象的影响,以是等同于是一个 “外部类”。静态内部类的类名为:外部类类名.静态内部类类名
二、特点


  • 静态内部类可以被任何访问修饰符举行修饰
  • 静态内部类不能直接访问外部类的非静态实例属性和方法,但可以访问静态的属性和方法
  • 静态内部类可以包含静态成员
  • 静态内部类中的属性,与外部类的属性同名时,静态内部类则必要使用 外部类类名.外部类属性名称 访问外部类的属性
三、静态内部类的实例化

  1. //可以不依赖外部类的对象,通过外部类名直接访问
  2. 外部类类名.内部类类名 内部类对象名 = new 外部类类名.内部类类名();
复制代码
四、代码示例一:演示特点一


  1. public class StaticOuter {
  2.     //静态内部类
  3.     static class Inner01{}
  4.     public static class Inner02{}
  5.     protected static class Inner03{}
  6.     private static class Inner04{}
  7. }
复制代码
五、代码示例二:演示特点二


  1. public class StaticOuter02 {
  2.     //静态内部类不能直接访问外部类的非静态实例属性和方法,但可以访问静态的属性和方法
  3.     //外部类的非静态成员属性
  4.     private String name = "公众号:牧牧川";
  5.     //外部类的静态成员属性
  6.     static private int age = 18;
  7.     //静态内部类
  8.     static class Inner{
  9.         //静态内部类的成员方法
  10.         public void show(){
  11.             System.out.println(name);
  12.             System.out.println(age);
  13.         }
  14.     }
  15. }
复制代码
六、代码实例三:演示特点三


  1. public class StaticOuter03 {
  2.     //静态内部类
  3.     static class Inner{
  4.         //静态内部类 能包含静态成员
  5.         private static String name = "公众号:牧牧川";
  6.         public static void test(){}
  7.         private static final int a = 1000;
  8.     }
  9. }
复制代码
七、代码实例四:演示特点四


  1. public class StaticOuter04 {
  2.     //外部类的静态成员属性
  3.     private static String name = "Tom";
  4.     //外部类的成员方法
  5.     public void show(){
  6.         System.out.println("名字为:"+ name);
  7.     }
  8.     //静态内部类
  9.     static class Inner{
  10.         private String name = "GGBond";
  11.         public void show(){
  12.             String name = "jack";
  13.             System.out.println("方法中的局部变量 name:" + name);
  14.             System.out.println("内部类的实例属性 name:" + this.name);
  15.             //静态内部类中的属性,与外部类的属性同名时,内部类则需要使用 外部类类名.外部类属性名称 访问外部类的属性
  16.             System.out.println("外部类的实例属性 name" + StaticOuter04.name);
  17.         }
  18.     }
  19. }
复制代码

  1. public class TestStaticOuter04 {
  2.     public static void main(String[] args) {
  3.         //外部类的对象
  4.         StaticOuter04 staticOuter04 = new StaticOuter04();
  5.         staticOuter04.show();
  6.         //静态内部类的实例化
  7.         //外部类类名.内部类类名 内部类对象名 = new 外部类类名.内部类类名();
  8.         StaticOuter04.Inner inner01 = new StaticOuter04.Inner();
  9.         inner01.show();
  10.     }
  11. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表