复习blog4

Object-Oriented Programming(OOP)

面向对象的三大特性:封装性,继承性,多态性。

封装:

模块化:将属性和行为都封装在类中,程序定义很多类。

信息屏蔽:将类的细节部分隐藏起来,用户只通过受保护的接口访问某个类。

如:

 

private:只有当前类可见

protected:对子类和同一个包内也可见

public:任何地方都可见

继承:

父类和子类之间共享数据和方法,优点是更好地进行抽象与分类,增强代码的重用率,提高可维护性。

如:

Overriding(重写/覆盖):子类重新实现父类中的方法。根据调用时的对象类型决定被调用方法的版本。

一般默认父类中的方法都是可以被重写的,若由关键字final声明,则不可被重写。

子类可以通过关键字super调用父类中被重写的方法。

调用父类的构造方法时,必须在子类构造方法的第一行。

final关键字:

final变量:初始化之后不能再次赋值。

final方法:不可以被重写。

final类:不可以被继承。

多态:

为不同类型的实体提供一个接口,或者使用同一个独好来表示多个不同的类型。因此不同的对象收到同一个消息(调用方法)可产生完全不同的效果,实现的细节由接受对象自行决定。

三种多态:

Ad hoc polymorphism:一个函数可以有多个同名的实现(方法重载);如:

Overloading(重载):在一个类中存在多个同名函数,必须具有不同的参数列表,返回值类型可同可不同。

重载是静态的多态,通过参数列表决定依赖哪个实现。对某个方法的重载可以在一个类中进行,也可以在子类中进行。

子类重载了父类的方法后,子类仍然继承了被重载的方法。

Parametric polymorphism:一个类型名字可以代表多个类型(泛型编程);

参数多态性是指方法针对多种类型时具有同样的行为,此时可使用统一的类型表达多种类型。在运行时根据具体类型确定。

泛型编程是一种编程风格,其中数据类型和函数是根据待指定的类型编写的,随后再需要时根据参数提供的特定类型进行实例化。

类/接口中如果声明了一个或多个泛型变量,则称为泛型类/接口。如:

普通类中的泛型方法:

泛型类中的泛型方法:

静态方法不能使用所在泛型类定义的泛型变量,如果要使用的话,必须将静态方法也定义成泛型方法。

泛型类/接口,再实例化类的时候指明泛型的具体类型(类型擦除),泛型方法,在调用方法的时候指明泛型的具体类型。

subtype/inclusion polymorphism:一个变量名字可以代表多个类的实例(子类型)。Class A implements I

一个类型代表了一组值,子类型是超类型的子集。子类型的规格至少和超类型一样强,接口中的所有方法都要在实现类中实现。

对象:

现实世界中,对象是客观世界中的一个实体;计算机世界中,对象是一个可标识的存储区域。

类(Class)

类是具有共同属性(字段 field)和行为(方法 method)的对象集合;类是对象的抽象,对象是类的实例。

类变量和类方法与一个类关联,每个类发生一次(static)。使用它们不需要创建对象。实例方法和实例变量在类的每个实例中出现一次。

接口(Interface)

一个接口可以扩展其他接口,一个类可以实现多个接口。

接口不能有构造方法,所以创建对象时需要调用某个具体实现的构造方法。

(从Java 8后,接口被允许包后静态方法)

抽象类(Abstract Class)

抽象类中的方法只有定义没有实现,抽象类不能实例化,继承某个抽象类的子类在实例化时,所有父类中的抽象方法必须已经实现。

安全性:采用防御性复制,返回或传入一个新的对象(复制内容),避免在输入参数和返回值中出现泄漏问题

不可变类,不提供matutors,让所有的方法不可被重写,在变量定义时使用private 和final 关键字。如:

可变类,通常存在一个具备复制功能的构造方法。

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值