【问题梳理】面向对象、封装、继承、多态、抽象、接口中(知识和点的整理)(上)

1、面向过程(pop)和面向对象(oop)的区别

  1. 面向过程:

    • 主要关注点是:实现的具体过程,考虑怎么去做。
    • 优点:对于业务逻辑简单的程序,可以达到快速的开发,减少前期的成本投入
    • 缺点:对于业务逻辑复杂的程序,很难实现,而且元素之间的耦合度非常高,一个环节出现问题,整个系统都会受到影响,软件的扩展力差。没有独立的概念,无法实现复用。
  2. 面向对象:

    • 主要关注点是:关注的对象或者独立体具备哪些功能,将功能封装进对象,强调的是具备功能的对象,考虑谁来做。

    • 优点耦合度低,扩展力强。更容易解决复杂的业务逻辑,组件复用性高。

    • 缺点:前期的投入成本较高,需要进行独立体的抽取,大量的系统分析与设计。

      c语言是纯面向过程、c++是半面向对象、Java纯面向对象

2、面向对象的特征是什么?

  1. 面向对象具有三大特征

    • 封装

    • 继承

    • 多态

      有的人理解为面向对象的四大特征:封装、继承、多态、(抽象、接口、)

  2. 为什么面向对象成为主流技术?

    • 面向对象更符合人的思维模式,更容易去分析。

采用面向对象的方法开发一个软件,整个生命周期中贯穿使用OO面向对象方式。

  • 面象对象的分析:OOA
  • 面向对象的设计:OOD
  • 面向对象的编程:OOP

3、 == 和 equals 的区别?

  1. ==
    • 作为基本数据类型时,比较的是数值。
    • 作为引用数据类型时,比较的是内存地址。
  2. equals
    • 作为引用数据类型时,比较的是内存地址。
    • 在String类型中比较的是值,因为String重写了equals方法。

4、String、StringBuffer 和 StringBuilder的区别?

主要是安全性的不同

  • String > StringBuffer > StringBuilder (安全性大小)

安全性越高,效率越低

对于常量值变化较多的时候,不建议使用String,浪费内存

5、权限修饰符(记忆)

修饰符在同一个类中在同一个包下不同包的子类中其他类
public允许访问允许访问允许访问允许访问
protected允许访问允许访问允许访问不允许
默认允许访问允许访问不允许不允许
private允许访问不允许不允许不允许

6、什么是封装?

(狭义上)

  • 将对象的属性私有化。
  • 对外提供赋值和取值的方法

(广义上)

  • 就是将对象的属性和实现的过程进项隐藏,对外界只留下接口(方法/函数)通过这个接口来修改获取对象的属性和功能行为。

封装的目的:

	增强信息流的安全性和简化编程,使用的时候可以直接特定的接口来使用类的成员(属性数据和函数都是类的成员)

封装的作用:

就是保护内部代码不被破坏

	1、拒绝直接调用声明字段,保护内部的数据,更安全。
	
	2、重复代码调用,避免代码冗余,程序编写效率高。

7、封装后给对象中的属性赋值有几种方法?

答:三种

  1. set方法赋值(封装后会对外部提供set方法赋值,get方法取值)
  2. 通过构造方法进行赋值(通过构造方法的参数进行赋值)
  3. 如果不是private修饰符修饰,可以直接赋值。

8、什么是继承?

	继承发生在父类和子类之间,子类继承父类,使子类具有父类的属性和方法或者重新定义、追加
	属性和方法等。

优点:继承使代码的复用更加简单容易,大大缩短了开发的周期,降低开发成本。

为什么需要继承

  1. 提高代码的复用性,使开发更加简单便捷。
  2. 起到扩展功能的作用。

9、方法重载和方法重写的区别

  1. 重载(Overload)
    • 发生在同一个类中,方法名相同,参数列表不同,不考虑返回值。
  2. 重写(Override)
    • 发生在父类和子类之间,子类继承父类的方法,方法名相同,参数也相同,但是实现方法体不同。

10、int和Integer的区别

  1. 默认值: int是0 Integer 是null
  2. Integer是int封装类 int-》Integer 装箱 Integer里的ValueOf
  3. Integer->int intValue()

int 是基本数据类型,Integer是引用数据类型。

11、接口和抽象类的区别

  1. 在构造方法上
    • 抽象类有构造方法,但是不能被new出来。
    • 接口没有抽象方法
  2. 在继承上
    • 抽象类是单继承,(子类只能继承一个父类)。
    • 接口可以继承多个接口,类可以实现多个接口。
  3. 在抽象方法上
    • 抽象类可以没有抽象方法,但是有抽象方法的类必须是抽象类。
    • 接口的方法必须是抽象方法,只有方法名,没有方法体。如果方法不是抽象方法则必须用default修饰(可以重写,也可以不被重写)
    • 抽象类的抽象方法用public abstract修饰,接口可以省略。

变量:接口用public static final 修饰

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值