当前位置: 首页 > 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.mrgr.cn/news/58069.html

相关文章:

  • leetcode438. 找到字符串中所有字母异位词
  • AI自动生成PPT哪个软件好?智能生成PPT不再熬夜做课件
  • 前端开发:Vue中数据绑定原理
  • 基于SSM健身国际俱乐部系统的设计
  • gin入门教程(5):请求参数处理
  • Linux中如何理解一切皆文件
  • C++(面向对象、封装性、构造函数)
  • 李沐 权重衰退代码实现【动手学深度学习v2】
  • 代码随想录:206. 反转链表
  • 走进Java中的class文件
  • xtu oj String I
  • 数据库表开发 vs 面向接口开发
  • 结合PS软件制作一个艺术PCB的图片处理
  • 什么是RPC
  • [ 钓鱼实战系列-基础篇-7 ] 一篇文章教会你搭建邮件钓鱼服务器-2
  • 小渡Al论文写作:50个GPT学术指令——1天搞定1篇论文
  • 硬件基础知识补全计划【一】电阻
  • mysqld.log文件过大,清理后不改变所属用户
  • Flutter结合鸿蒙next 中数据类型转换的高级用法:dynamic 类型与其他类型的转换解析
  • 【C++】四种强制类型转换
  • mongodb在linux下的部署
  • 在 Flutter鸿蒙next版本 中使用 if 语句和三元表达式进行视图逻辑判断
  • Unity之如何在Linux上部署Dedicated Server专用服务器
  • 函数柯里化
  • 头歌——人工智能(搜索策略)
  • 【LeetCode】11.盛最多水的容器