Java基础 - 内部类05 - 静态内部类详解

Java基础 - 内部类05 - 静态内部类详解1 什么是静态内部类 定义 定义在外部类的成员位置 且有 static 修饰的类 2 静态内部类的特性 关键 1 可以直接访问外部类的所有静态成员 包含私有的 但不能访问非静态成员 2 可以添加任意的修饰符 public

大家好,我是讯享网,很高兴认识大家。

1.什么是静态内部类

定义 : 定义在外部类的成员位置,且有static修饰的类;

2.静态内部类的特性(关键)

* 1.可以直接访问外部类的所有静态成员,包含私有的,但不能访问非静态成员; * 2.可以添加任意的修饰符,public、private、默认、protected, * 因为静态内部类的地位就是外部类的一个成员; * 3.作用域 : 与外部类的其他成员一致,是整个的类体; * 4.静态内部类 访问 外部类 的【静态】属性/方法 : 直接访问即可; * 5.外部类 访问 静态内部类 : 通过创建对象再访问的方式; * 6.外部其他类 访问 静态内部类 : * 方式一 : 直接通过外部类获取成员内部类对象; * 方式二 : 通过外部类的方法,获取一个成员内部类的对象。 * 7.外部类 和 静态内部类的 成员重名时,静态内部类中访问重名的成员,默认遵循就近原则, * 如果 静态内部类 就是想访问 外部类的重名成员,则使用语法 : 【外部类名.静态成员名称】 

讯享网

3.案例代码

3.1 静态内部类的定义代码

各位coder一定要跟着上面的特性来看这一段代码。


讯享网

讯享网package com.northcastle.D_jingtai_innerClass; / * author : northcastle * createTime:2022/2/11 */ public class JingtaiInnerClass { 
    //4.一个静态内部类 public static class innerClass{ 
    //4.1静态内部类的属性 private String field0101 = "静态内部类的属性:filed0101"; private static String field02 = "静态内部类的属性 : field02"; //4.2静态内部类的构造器 public innerClass() { 
    } public innerClass(String field0101) { 
    this.field0101 = field0101; } //4.3静态内部类的方法 //4.3.1 静态内部类的一个普通方法 public void innerMethod01(){ 
    System.out.println("静态内部类的一个普通的方法 : innerMethod01"); } //4.3.2 静态内部类的一个普通的静态方法 public static void innerMethod02(){ 
    System.out.println("静态内部类的一个普通的静态方法 : innerMethod02"); } //4.3.3 静态内部类的一个使用外部类的方法 public void innerMethod03(){ 
    System.out.println("静态内部类的一个使用外部类的成员的方法 : innerMethod03"); System.out.println("静态内部类的成员field0101 : "+field0101); System.out.println("静态内部类的静态成员field02 : "+field02); // 静态内部类自己的field02 //System.out.println("外部类的普通属性field01 : "+field01); // 不可访问,因为field01 不是静态成员 System.out.println("外部类的静态属性field03 : "+field03); System.out.println("外部类的重名静态属性field02 : "+ JingtaiInnerClass.field02); System.out.println("下面访问外部类的方法 : "); method02(); // 同样只能访问外部类的静态方法 } } //1.外部类的属性:普通属性、静态属性 private String field01 = "外部类的普通属性 field01"; private static String field02 = "外部类的静态属性 field02"; private static String field03 = "外部类的静态属性 field03"; //2.外部类的构造器 public JingtaiInnerClass() { 
    } public JingtaiInnerClass(String field01) { 
    this.field01 = field01; } //3.外部类的方法 //3.1 一个普通的外部类的方法 public void method01(){ 
    System.out.println("外部类的普通方法 : method01"); } //3.2 一个静态的外部类的方法 public static void method02(){ 
    System.out.println("外部类的静态方法 : method02"); } //3.3 一个使用静态内部类的外部类方法 public void method03(){ 
    System.out.println("外部类的方法:method03 : 这个方法中使用静态内部类"); //1.创建静态内部类的对象 innerClass innerClass = new innerClass(); //2.通过对象调用静态内部类的普通方法 innerClass.innerMethod01(); //3.直接通过【外部类.静态内部类.静态方法】来调用静态内部类的静态方法 JingtaiInnerClass.innerClass.innerMethod02(); } //4.提供一个方法,返回一个静态内部类的对象 public innerClass getInnerClassObject(){ 
    return new innerClass(); } } 

3.2 静态内部类的使用代码

package com.northcastle.D_jingtai_innerClass; / * author : northcastle * createTime:2022/2/11 */ public class Application { 
    public static void main(String[] args) { 
    //1.演示外部类使用静态内部类的方法 JingtaiInnerClass jingtaiInnerClass = new JingtaiInnerClass(); jingtaiInnerClass.method01();//普通的方法 jingtaiInnerClass.method03(); // 就是这个方法中使用了静态内部类 System.out.println("================================="); //2.演示外部其他类获取静态内部类对象 的两种方式 //2.1 方式一 : 直接通过类获取 静态内部类的对象 JingtaiInnerClass.innerClass innerClass01 = new JingtaiInnerClass.innerClass(); //2.2 方式二 : 通过外部类的方法获取 静态内部类的对象 JingtaiInnerClass jingtaiInnerClass02 = new JingtaiInnerClass(); JingtaiInnerClass.innerClass innerClass02 = jingtaiInnerClass02.getInnerClassObject(); System.out.println("================================="); //3.演示静态内部类使用外部类的属性 : 直接使用2中获取到的对象 innerClass01.innerMethod01(); innerClass01.innerMethod03(); System.out.println("================================="); } } 

3.3 运行结果

在这里插入图片描述

4.完成

Congratulations!
You are one step closer to success!

小讯
上一篇 2025-04-02 08:34
下一篇 2025-04-05 09:32

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/46549.html