面向对象知识总结

面相对象编程思想

1.从用户(终端用户、使用你代码的用户)角度思考问题

2.摒弃完全基于逻辑的思维(要有些文科的知识)

类与对象

类的成员变量——>对象状态

类的成员函数——>对象行为

类的静态变量——>属于类的一部分

类的静态函数——>属于类的一部分

类的静态变量特点

1、没有this引用,全局只有唯一一份

2、普通函数可以引用静态变量和函数

3、对象上可以引用静态变量、函数(编译器警告)

4、静态函数不能引用普通成员变量、函数

接口与抽象类的区别:

接口与抽象类的区别:

  1. 抽象类可以有成员变量
  2. 抽象类可以有部分实现
  3. 抽象类不可以多重继承

面向对象的不可变性

对象一旦创建完了它的内部的成员变量创建完了就再也不能被改变,我们认为我们对对象的一些改变对打破我们的一些假设,比如循环不变式、其它逻辑关系的假设

不可变对象性的好处:

1.可以引用传递,可以缓存

2.线程安全

实现不可变性

final关键字

1.类申明 -->类不可以被继承

2.函数申明-->函数不可以在派生类中重写

3.变量申明-->变量不可以指向其它对象

实现不可变性

1.final关键字无法保证不可变性

2.从接口的大定义,类的实现上保证不可变性

3.Conllection.unmodifiableXXX

泛型

泛型在百度百科中的定义是: 泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。

上面的解释有时并不好理解,我们可以从List中来看看泛型

在一般情况下为了把ArrayList和IntArrayList或StringArrayList组合成一起就要把两个做乘法,这就会变大非常大,并不利于我们去实现,所以这就要引用泛型

从List变成List<T>    //泛型规定List中的元素只能是类型T
复制代码

然后就可以写成下面这样:

ArrayList<Integer>,ArrayList<String>
LinkedList<Integer>,LinkedList<String>


复制代码

补充知识:

list是线性表,可以拿出第一个元素、第N个元素,可以插入元素。

ArrayList数组,获取第N个元素非常快,插入删除非常慢。

LinkedList链表,获取第N个元素非常慢,要从头开始,但插入删除非常快。

这是我对面向对象知识的总结,内容不是很全面,主要是挑了些内容来写,有什么问题可以在下方说下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值