当前位置: 首页 > news >正文

Java-内部类

在这里插入图片描述
个人主页
学习内部类(Inner Class)是Java编程中一项重要且强大的特性,它允许你在一个类的内部定义另一个类。内部类提供了一种将逻辑上相关的类组织在一起的方式,增加了代码的封装性和可读性。接下来带领大家进入內部类的学习。

1静态内部类

2实例内部类

3匿名内部类

一:静态内部类的使用例子:

class OuterClass{public int date1=1;private int date2=2;public static int date3=3;static class InnerClass{public int date4=4;private int date5=5;public static int date6=6;public void test(){OuterClass outerclass=new OuterClass();System.out.println(outerclass.date1);System.out.println(outerclass.date2);System.out.println(date3);System.out.println(date4);System.out.println(date5);System.out.println(date6);System.out.println("InnerClass:::test()");}}
}
public class Test {public static void main(String[] args) {OuterClass.InnerClass innerClass=new OuterClass.InnerClass();innerClass.test();}
}

在这里插入图片描述

在静态内部类当中去访问外部类非静态成员,必须通过外部内对象引用来访问。如图所示:

在这里插入图片描述
二:实例内部类例子:

class OuterClass{public int date1=1;private int date2=2;public static int date3=3;class InnerClass{public int date4=4;private int date5=5;public static int date6=6;public void test(){OuterClass outerclass=new OuterClass();System.out.println(date1);System.out.println(date2);System.out.println(date3);System.out.println(date4);System.out.println(date5);System.out.println(date6);System.out.println("InnerClass:::test()");}}
}
public class Test {public static void main(String[] args) {// OuterClass.InnerClass innerClass=new OuterClass.InnerClass();OuterClass outerClass=new OuterClass();OuterClass.InnerClass innerClass=outerClass.new InnerClass();//OuterClass.InnerClass innerClass=new OuterClass().new InnerClass();innerClass.test();}
}

当有与外部相同的成员变量时,则访问的是实例内部类的成员变量。如图;得到的是date1=99.
在这里插入图片描述
那么要访问外部类的date1可以通过外部內类名(OuterClass.this.date1)就可以。

三:匿名内部类的例子:
匿名内部类(Anonymous Inner Class)是Java中一种没有名字的内部类,通常用于简化代码或实现一次性的、简单的类定义。

class 0uterClass {public void test(){System.out.println("OuterClass:::test()");}
}
public class Test{public static void main(String[] args) {new 0uterClass(){@Overridepublic void test(){System.out.println("重写了test()方法:::");}}.test();}
}

在这里插入图片描述

http://www.lryc.cn/news/470413.html

相关文章:

  • flutter集成极光推送
  • D. Skipping 【 Codeforces Round 980 (Div. 2)】
  • 【golang】学习文档整理
  • 动态规划-子序列问题——1218.最长定差子序列
  • 双子塔楼宇可视化系统:提升建筑管理与运营效率
  • 32位的ARMlinux的4字节变量原子访问问题
  • 用哪种建站程序做谷歌SEO更容易?
  • IPsec简单介绍
  • 颠覆级AI:10秒生成超清视频
  • 《西安科技大学学报》
  • redis详细教程(2.List教程)
  • 电子电气架构 --- 电气系统工程
  • 15-4连续子串和的整除问题
  • Spring源码:Bean创建、Bean获取
  • MetaArena推出《Final Glory》:引领Web3游戏技术新风向
  • 玩转Shodan:深度挖掘特定漏洞与脆弱资产的实战技巧
  • Java程序设计:spring boot(8)——API ⽂档构建⼯具 - Swagger2
  • 【Python】if选择判断结构详解:逻辑分支与条件判断
  • 邮件系统SSL加密传输,保护你的电子邮件免受网络威胁
  • Redis_写时复制(cow)
  • 【mysql进阶】4-5. InnoDB 内存结构
  • 从零入门扣子Bot开发
  • 中药是怎么计价的 复制药方文本划价系统操作教程
  • 怎么做网站?
  • Centos Stream 9部署Zabbix7.0LTS
  • 深入理解Allan方差:用体重数据分析误差的时间尺度与稳定性
  • Elasticsearch 解析:倒排索引机制/字段类型/语法/常见问题
  • 数字后端零基础入门系列 | Innovus零基础LAB学习Day5
  • Redis 内存回收策略小结
  • React常用前端框架合集