Java面向对象 Java之路(七)

1.面向对象程序设计的基本概念

  • 面向对象(Object Oriented)是一种新兴的程序设计方法,或者是一种新的程序设计规范,其基本思想是使用对象、类、继承、封装、多态等基本概念 来进行程序设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。
  • “人以类聚,物以群分”,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。
  • 面向对象程序设计包含万物皆对象的思想,这与传统的程序设计思想不同。传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。面向对象程序设计中的对象能够接受数据,处理数据并将数据传达给其他对象,因此它们都可以被看作一个小型的“机器”。

2.面向对象与面向过程

  • 面向过程就是把一件事按步骤一步一步来实现。
  • 面向对象就是把现实问题抽象为对象,通过调用每个对象的属性或功能去解决问题。
  • 面相对象与面向过程不同,面向过程关心处理的逻辑、流程等问题,而不关心事件主体,而面向对象即面向主体,所以我们在解决问题时应该先进行对象的封装(对象是封装类的实例,比如张三是人,人是一个封装类,张三只是对象中的一个实例、一个对象)。

3.面向对象的三大特征

(1)封装

(一)基本概念

面向对象的第一个意义是封装。

封装就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别,将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。

封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。

(二)四种访问控制级别

private:类中限定为private的成员,不对外公开,只能在只能被这个类本身访问,访问级别最低。如果一个类的构造方法声明为private,则其它类不能生成该类的一个实例。

default:类中不加任何访问权限限定的成员属于缺省的(default)访问状态,可以被这个类本身和同一个包中的类所访问。

protected:类中限定为protected的成员,可以被这个类本身、它的子类(包括同一个包中以及不同包中的子类)和同一个包中的所有其他的类访问。

public:类中限定为public的成员,可以被所有的类访问。 

 (2)继承

 继承是面向对象的基本特征之一,继承机制允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

继承实现了代码的复用。

子类的对象拥有父类的全部属性与方法,称作子类对父类的继承。

Java中父类可以拥有多个子类,但是子类只能继承一个父类,称为单继承。

Java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。

子类不能继承父类中访问权限为private的成员变量和方法。

子类可以重写父类的方法,即命名与父类同名的成员变量。

Java中通过super来实现对父类成员的访问,super用来引用当前对象的父类。super 的使用

有三种情况:

访问父类被隐藏的成员变量,如:super.variable;

调用父类中被重写的方法,如:super.Method([paramlist]),super()调用父类构造方法;

调用父类的构造函数,如:super ([paramlist]);

(3)多态

(一)基本概念

多态同一个行为具有多个不同表现形式或形态的能力。是指一个类实例(对象)的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。

(二)多态存在的条件

  • 有继承关系
  • 子类重写父类方法
  • 父类引用指向子类对象

注意:

多态是方法的多态,属性没有多态性。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值