导图社区 面向对象高级
面向对象的部分高级语言知识总结,包括static关键字、static的应用知识、面向对象的三大特征之二:继承等内容。
JavaScript之多态知识总结,这是同类的对象,执行同一个行为,会表现出不同的行为特征。本图总结了它的访问特点(多态侧重行为多态)、优势等内容。
JavaScript之接口(interface)知识总结,接口是用来被类实现(implements)的,实现接口的类称为实现类。实现类可以理解成所谓的子类。
JavaScript抽象类知识总结,在Java中abstract是抽象的意思,可以修饰类,成员方法,abstract修饰类,这个类就是抽象类;修饰方法,这个方法就是抽象方法。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
面向对象高级第一天
static关键字
是什么?静态的意思,可以修饰成员变量,可以修饰成员方法
static修饰成员变量的分类
静态成员变量
有static修饰,属于类,与类一起加载,内存中只有一份,可以被共享访问。
什么时候用呢?如果信息要被共享,只需要一份就用,比如:系统在线人数,
访问规则:
建议用类名访问:类名 静态成员变量
注意:同一个类中,访问静态成员可以省略类名不写。
理论上也可以这样访问:对象名.静态成员变量(不推荐)
实例成员变量
无static修饰:属于对象,每个对象中都存在一份实例成员变量,比如:name age
什么时候用呢?比如:name age,每个对象中都有这些信息, 而且信息还不同时,定义成实例成员变量。
访问规则:只能用:对象名.实例成员变量
static修饰成员方法
静态成员方法
什么时候用呢?如果是做一个通用功能
建议用类名访问:类名 静态成员方法
理论上也可以这样访问:对象名.静态成员方法(不推荐)
实例成员方法
无static修饰:属于对象,必须用对象触发访问
什么时候用呢?如果这个方法属于对象,而且要直接访问对象的实例成员, 则申明实例方法
访问规则:只能用:对象名.实例成员方法
static的应用知识
工具类
是什么?里面都是静态方法,为了完成一个共用功能
好处:一次编写,处处可调,提高代码的复用,提高开发的效率
注意:建议把工具类的构造器私有化, 因为工具类无需对外创建对象,它的方法 都是静态方法,直接用类名访问即可。
代码块
是什么?类的5大成分(成员变量,成员方法,构造器,代码块,内部类)之一
分类
静态代码块:(重点了解一下)
格式:static{}
特点:属于类,与类一起优先加载,自动触发执行一次。
作用:可以用于在程序启动时, 进行静态资源的初始化操作。
实例代码块(几乎不用)
格式:{}
特点:属于对象的,每次在调用构造器构建 对象前都会执行一次,再执行构造器。
作用:可以用于初始化实例资源。
单例
单例是一种设计模式:是为了解决某个问题
单例解决:保证一个类对外只能产生一个对象。
重点在于如何实现单例:
饿汉单例
特点:拿对象时,对象已经存在
实现步骤:
1.构造器私有
2.定义静态成员变量存储一个对象。
代码:
懒汉单例
特点:要拿对象的时候,才开始创建一个对象
面向对象的三大特征之二:继承
继承概述、使用继承的好处
什么是继承?Java允许一个类通过extends与 另一个类建立父子关系,这就是继承。
继承的格式:子类extends父类
继承的特点:子类继承父类后,就可以得到父类的属性和行为。
继承的核心优点:提高代码的复用性,多个子类的相同代码可以放在父类中,增强了类的扩张性
继承的数据规范、内存运行原理
设计规范:子类共用属性和行为放在父类, 子类独有属性和行为放在子类自己那离。
内存原理:很重要,
继承的特点
子类可以继承父类的属性和行为,但是子类不能继承父类的构造器。
子类可以继承父类私有成员吗?有争议的,我认为可以,只是不能直接访问。
子类可以直接用子类访问父类静态成员,那么子类继承了父类静态成员吗?? 我认为没有继承,只能可以共享的去访问父类静态成员,共享并非继承。
Java是单继承模式:一个类只能继承一个直接父类。
Java不支持多继承、但是支持多层继承。
Java中所有的类但是Object类的子类。
继承后:成员变量、成员方法的访问特点
就近原则
this子类自己的成员变量
在子类中访问父类成员怎么办???super.父类成员变量/父类成员方法
继承后:方法重写
概率:子类重写了一个申明与父类一样的方法, 覆盖父类的方法,子类认为父类的该方法不好用, 以后用自己重写的方法。
重写方法建议加上一个重写校验注解:@Override
作用:要求必须是正确重写的才不报错 作用2:可读性好
重写的要求:
重写方法的名称和形参列表必须与父类被重写方法的名称和形参列表一样(重写)
私有方法不能重写
静态方法不能重写
重写方法的权限 >= 被重写方法的访问权限
继承后:子类构造器的特点
特点:子类的全部构造器默认都会先访问父类 的无参数构造器,再执行自己的构造器
why?先有拜拜才有儿子,先调用它爸爸的构造器初始化父类的数据, 再调用自己的构造器初始化自己的数据。
代码层面:默认子类构造器的第一行都有一个 super()访问父类的无参数构造器,写不写都有
继承后:子类构造器访问父类有参构造器
调用父类有参数构造器,初始化继承自父类的数据。
super(.....)根据参数调用父类构造器
this、super使用总结
this调用当前对象的成员 super:在子类方法中指定访问父类的成员 this(....):访问本类兄弟构造器 super(....):在本类构造器中指定访问父类的构造器
注意事项:super(....) 必须放在第一行, this()也必须在第一行, 并且两者不能出现在同一个构造器中。