面向对象总结

一.概念

1)对比面向过程

面向过程的缺陷:缺乏对数据的封装

2)类和对象

类是对象的模板,对象是类的具体的实例

对象:真实存在的单个的个体

现实世界是由很多对象组成的,基于对象我们抽出了类

类:类型/类别,一类个体
  1. 所有对象所共有的特征/属性(静) —变量
  2. 所有对象锁共有的行为(动)——– 方法
  3. 一个类可以创建多个对象,结构相同,数据不同
引用:为了对实例化的对象进行访问控制
  1. 引用类型变量存放该类对象的地址信息,即指向该类的对象
  2. 除8中基本类型之外,用类、接口、数组等声明的变量成为引用变量,简称“引用”

二.面向对象的三个基本特征

1)封装

数据私有化(private),行为公开化(public)

意义:
  1. 对外提供可调用的,稳定的功能
  2. 封装容易变化的、具体的细节,外界不可访问,这样的意义在于:
    1. 降低代码出错的可能性,便于维护;
    2. 当内部的实现细节改变时,只要保证对外的功能定义不变,其他的模块就不会因此受到牵连;
static(静态的):
  1. 静态变量:
    1. 由static修饰
    2. 属于类的,存在方法区中,只有一份
    3. 通常使用类名点来访问
    4. 当所有对象的数据都一样的时候使用
  2. 静态方法:
    1. 由static修饰
    2. 属于类的,存在方法区中,只有一份
    3. 通常使用类名点来访问
    4. 没有隐式的this传递:没有this节意味着没有对象,而实例对象必须通过对象. 来访问, 所以静态方法中不能直接访问实例成员
    5. 方法的操作仅与参数相关而与对象无关时使用
  3. 静态域:
    1. 由static修饰
    2. 属于类的, 类被加载期间自动执行,类只能被加载一次,所以静态块也只执行一次
    3. 常常用于加载静态资源(图片、音频、视频)

2)继承

基本概念
  1. 目的:避免代码重复,有利于代码重用
  2. 通过extends实现继承
  3. 父类:所有子类所共有的属性和行为 子类:子类所特有的属性和行为
  4. 子类继承父类后,子类具有:子类+父类
  5. 一个父类可以有多个子类,一个子类只能有一个父类–单一继承
  6. 继承具有传递性
  7. java规定:构造子类之前必须先构造父类,构造中若没有调用父类的构造,则默认super()来调用父类的无参构造方法
相关内容
1. super:指代当前对象的父类对象
  1. super.成员变量名——访问父类的成员变量
  2. super.方法名()——–调用父类的方法
  3. super()————–调用父类的构造方法
2. 向上造型:
  1. 父类型的引用指向子类的对象(但是通过父类型的引用只能访问父类所定义的成员,不能访问子类扩展的部分)
  2. 能调用哪些方法变量,要看引用的类型
3. 重写:
  1. 发生在父子类中,方法名相同,参数列表相同,方法体不同
  2. 重写的方法被调用时,看对象的类型
  3. 重写和重载的区别:
    1. 重写:父子类中,方法名相同,参数列表相同,方法体不同;遵循“运行期”绑定,根据对象类型来调用方法
    2. 重载:一个类中,方法名相同,参数列表不同,方法体不同;遵循“编译期”绑定,根据引用的类型来绑定方法

3)多态

意义:
  1. 同一类型的引用指向不同的对象时,有不同的实现—行为的多态
  2. 同一对象被造型为不同的类型时,有不同的功能—–对象的多态
表现形式:

重写+重载

相关内容:
1. 向上造型

见继承里的那一块,补充:能造型成的类型有:父类型、实现的接口

2. 强制类型转换
成功的条件有两个:
  1. 引用所指向的对象,就是该类型
  2. 引用所指向的对象,实现了该接口
instanceof关键字

判断某个引用所指向对象是否为指定对象,返回boolean结果

3. 抽象方法和抽象类
  1. 抽象方法:
    1. 由abstract修饰
    2. 只有方法的定义,没有方法的实现(大括号都没有)
  2. 抽象类:
    1. 有abstract修饰
    2. 包括抽象方法的类必须是抽象类
    3. 抽象类不能被实例化
    4. 抽象类都是需要被继承的,子类:
      1. 重写所有抽象方法–常用
      2. 也声明为抽象类—-不常用
    5. 抽象类的意义:
      1. 包公共的属性和行为,被子类所共享–代码重用
      2. 为所有子类提供一种统一的类型——向上造型
      3. 包含抽象方法,为子类提供一个统一的入口
4. 接口
  1. 是一个标准、规范
  2. 由interface定义
  3. 只能包含常量和抽象方法
  4. 接口不能被实例化
  5. 接口是需要被实现/继承的,实现类/子类(implements):必须重写接口中的所有抽象方法
  6. 一个类可以实现多个接口,用逗号分隔;若又继承又实现时,应先继承extends后实现implements
  7. 接口可以继承接口
5. 内部类
  1. 成员内部类:不太常用
    1. 类中套类,外面的叫外部类,里面的叫内部类
    2. 内部类通常只服务于外部类,对外不具备可见性
    3. 内部类对象通常在外部类对象中常见的
    4. 内部类中可以直接访问外部类的成员(包括私有的);内部类中有个隐式的引用指向创建它的外部类对象
  2. 匿名内部类:比较常用
    1. 如果想创建一个类的对象,并且对象只被创建一次,此时该类不必命名,称为匿名内部类
    2. 匿名内部类中访问外部的数据,该数据必须是final的
内容概要:本文详细探讨了基于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、付费专栏及课程。

余额充值