内部类

本文详细解析Java内部类的种类及使用方式,包括成员内部类、局部内部类和匿名内部类的区别与特性,探讨静态与非静态内部类的访问规则,以及内部类与外部类之间的相互访问机制。

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

内部类

  1. 外部类不能直接访问内部类,内部类成员可以访问外部类的私有数据;
  2. 外部类不可以使用"private/protected/static"修饰符

1.成员内部类

  1. 区别:

    使用static修饰的成员内部类是静态内部类,不使用static修饰的成员内部类是非静态内部类;

  2. static关键字的作用

    1. 外部类的外一层是包不能用static修饰;内部类的外一层是外部类能用static修饰;
    2. 把内部类变成外部类的类相关,而不是外部类的实例(对象)相关;
  3. 查找变量顺序

    1. 内部类局部变量
    2. 内部类成员变量
    3. 外部类成员变量
  4. 保存文件形式

    1. 外部类:外部类名.class

    2. 内部类:外部类名&内部类名.class

1.非静态内部类
  1. 外部类访问内部类:
    1. 在外部类方法内新建内部类访问内部类,main方法不能新建非静态内部类对象(编译错误)
    2. 可以访问内部类方法,但是不能访问内部类变量(编译出错);
  2. 内部类访问外部类:都行
  3. 非静态内部类不能有静态方法/静态成员变量/静态初始化块
2.静态内部类
  1. 外部类访问内部类:

    1. 在外部类方法内或main内都能新建对象或者直接内部类名调用;
    2. 可以访问内部类变量,但是不能访问内部类方法(编译出错);
  2. 内部类访问外部类:

    静态内部类不能访问外部类的实例成员,只能访问外部类的类成员;

    静态内部类对象只持有外部类的类引用,没有持有外部类的对象引用

  3. 静态内部类可以包含静态成员,也可以包含非静态成员;

  • 接口内部类[了解即可]
    1. 只能使用public static修饰接口内部类;
    2. 接口的作用是定义一个公共规范(暴露出来供大家使用),如果把这个接口定义成一个内部接口就没有意义了;

2.局部内部类

3.匿名内部类

  1. 要求:

    1. 必须且只能实现或继承一个类;
    2. 继承只是单纯的新建类+重写需要用到的内容;
    3. 匿名内部类不能是抽象类(没有意义),不能定义构造器(没有类名);
    4. 匿名内部类是:需要创建并使用一次的类;
  2. 书写格式

    1. 继承:

      new 父类([参数]){
          重写
      }
      
    2. 实现:

      new 实现类(){
      	重写
      }
      
  3. 匿名内部类使用外部类成员内部类时,成员内部类必须要被final修饰,java1.8以后自动在编译时在成员变量前添加final

  4. 案例:

    1. 父类

      public class Father {
      	public Father(String name) {
      		super();
      		Name = name;
      	}
          省略:有参无参构造器
      	private String Name;
      	private Integer age;
      	private String Book;
      	省略:get/set方法
      }
      
    2. 外部类:

      public class Test{
      	public void father() {
      		//java1.8后自动在成员变量前加上final,再次复制则编译错误
      		String book="数学";
      		//book="12";
      		Father father = new Father("刘备") {
      			public Integer getAge() {
      				return 10;
      			}
      			public String getBook() {
      				return book;
      			}
      		};
      		System.out.println("姓名:"+father.getName()+",年龄:"+father.getAge()+",书籍:"+father.getBook());
      	}
      }
      
内容概要:本文详细探讨了基于MATLAB/SIMULINK的多载波无线通信系统仿真及性能分析,重点研究了以OFDM为代表的多载波技术。文章首先介绍了OFDM的基本原理和系统组成,随后通过仿真平台分析了不同调制方式的抗干扰性能、信道估计算法对系统性能的影响以及同步技术的实现与分析。文中提供了详细的MATLAB代码实现,涵盖OFDM系统的基本仿真、信道估计算法比较、同步算法实现和不同调制方式的性能比较。此外,还讨论了信道特征、OFDM关键技术、信道估计、同步技术和系统级仿真架构,并提出了未来的改进方向,如深度学习增强、混合波形设计和硬件加速方案。; 适合人群:具备无线通信基础知识,尤其是对OFDM技术有一定了解的研究人员和技术人员;从事无线通信系统设计与开发的工程师;高校通信工程专业的高年级本科生和研究生。; 使用场景及目标:①理解OFDM系统的工作原理及其在多径信道环境下的性能表现;②掌握MATLAB/SIMULINK在无线通信系统仿真中的应用;③评估不同调制方式、信道估计算法和同步算法的优劣;④为实际OFDM系统的设计和优化提供理论依据和技术支持。; 其他说明:本文不仅提供了详细的理论分析,还附带了大量的MATLAB代码示例,便于读者动手实践。建议读者在学习过程中结合代码进行调试和实验,以加深对OFDM技术的理解。此外,文中还涉及了一些最新的研究方向和技术趋势,如AI增强和毫米波通信,为读者提供了更广阔的视野。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值