1、面向对象小结

一、面向对象的理解

       现实生活中的业务是一个个对象协作的过程,面向对象就是按现实业务一样的方式将程序代码按一个个对象进行组织编写,从而把现实生活中的业务对象映射到计算机系统里。

二、四大特征

1、封装

       把对象的属性和行为看成一个密不可分的整体,将两者“封装”在一个不可分割的独立单元(对象)中;隐藏信息,有些对象的属性及行为允许外界用户知道或使用,但不可更改,有些属性或行为不允许知晓只允许使用,封装尽可能的隐藏对象的功能实现细节。

  • 一般使用private访问权限

  • 提供相应的get、set方法来访问相关属性

2、继承

  • 子类自动共享父类数据和方法的机制,Java不支持多继承,但支持多重继承。提高代码的复用性、维护性、是多态的前提。

  • 子类继承父类非private属性和方法,可以对父类进行扩展,拥有属于自己的属性方法,也可对父类方法进行重写

3、多态

多态是同一项为具有多个不同表现形式或形态的能力,分为方法重载和对象多态两种形式。

  • 方法重载:一个类中,允许方法名相同,但方法传递参数个数、类型不同,返回值不同。

  • 对象多态:父类引用指向子类对象,同一个方法,根据操作的子类不同,所完成的功能也不同。

4、抽象

抽象就是找出一些事物的相似和共性之处,将这些事物归为一类,只考虑事物的相似和共性之处,而忽略与当前目标无关的方面。抽象包括行为抽象和状态抽象两个方面。

abstract class 和 interface 有什么区别:

  • 抽象类不能创建实例对象,抽象类中的方法不必是抽象的,定义的抽象方法必须在具体子类中实现,所以不能有抽象构造方法或抽象静态方法。如果子类没有实现抽象父类的所有抽象方法,那么子类也必须定义为abstract类型,一个类只能继承一个抽象类。

  • interface是一种规范和标准,一旦定义不能轻易修改,具有某种能力。可以说是抽象类的一种特例,接口中的所有方法必须是抽象的。方法定义默认为public abstract类型,成员变量类型默认为public static final,一个类可以实现多个接口。

接口与类的区别

接口不能实例化对象;接口没有构造方法;接口中所有方法必须是抽象方法;不能包含成员变量,除了static和final变量;

静态变量与成员变量的区别

1、静态变量为类变量,随着类的加载而加载;成员变量为实例变量,随着对象的创建而创建。

2、静态变量直接通过类名调用,不建议使用对象名调用;成员变量只能通过对象名调用。

成员变量与局部变量的区别

1、位置不同。成员变量在类中方法外面,局部变量在方法或代码块中,或在方法上声明(参数列表中)。

2、内存位置不同。成员变量在堆中,局部变量在栈中。

3、生命周期不同。成员变量随着对象的创建而存在,局部变量随着方法的调用或代码块的执行而存在。

4、初始值。成员变量有默认值,局部变量使用之前需要先赋值。

重载与重写的区别

1、重载发生在一个类中,方法名相同,参数个数、类型、顺序不同,方法返回值和访问修饰符可以不同。

2、重写发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值