面向对象概念

一、面向对象:

就是把现实中的事物都抽象为“对象”。每个对象是唯一的,且都可以拥有它的属性与行为。我们就可以通过调用这些对象的方法、属性去解决问题。

看出来了什么?每个对象是独立的,有属于它自己的功能,只需要专心实现自己的功能就好。所以在建立对象模型阶段,仅仅关注对象有什么的功能,但不考虑如何实现这些功能。

面向对象的好处,就包括有很好的延展性,比如我给大象赋予了一个吃的功能,它通过调用就可以在冰箱里去吃东西。面向对象就是把现实问题抽象为对象,通过调用每个对象的属性或功能去解决问题。

如果我要修改我的需求,把大象换成兔子,我用面向过程是不是得把每个步骤中的大象改为兔子。而用面向对象解决,我甚至可以重新创一个兔子对象,仅仅在调用的时候选择兔子就行了。

二、类与对象的关系

很多人都会创建对象,不就是new嘛,调用对象方法不就是new.方法嘛。结果,有部分人在new类的时候,就下意识的把类当成了对象,那么类到底是不是对象呢?

肯定不是,先给出他们的基本概念

1、基本概念

对象

对象是由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)组成的封装体,描述客观事物的一个实体,是构成系统的基本单元。

类是对一组有相同数据和相同操作的对象的定义,是对象的模板,其包含的方法和数据描述一组对象的共同行为和属性。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其他类,形成类层次结构。

2、类与对象的区别

1)类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。

2)类是一组具有相同属性和行为的对象的抽象。我们可以将类看做是创建对象蓝图,对象根据这个蓝图去具体实现某个东西。

比如来说,给一张“伞”的蓝图,我们设计出了晴雨伞,剑伞等等,你会发现,这些伞都有相同的行为呀----遮雨。所以,类的实例化结果就是对象,而对一类对象的抽象就是类,类描述了一组有相同属性和相同方法的对象。

三、基本特征:封装、继承、多态

1、封装

(一)基本概念

封装(encapsulation)即信息隐蔽。它是指在确定系统的某一部分内容时,应考虑到其它部分的信息及联系都在这一部分的内部进行,外部各部分之间的信息联系应尽可能的少。

(二)四种访问控制级别

public:对外公开,访问级别最高

protected:只对同一个包中的类或者子类公开

默认:只对同一个包中的类公开

private:不对外公开,只能在对象内部访问,访问级别最低

(三)封装使用

1、把尽可能多的东西藏起来,对外提高简洁的接口

比如有半自动洗衣机和一个全自动洗衣机

半自动洗衣机接口有以下方法

①开机

②关机

③放水

④定时

⑤洗涤

⑥排水

⑦脱水

全自动洗衣机有以下方法

①开机

②关机

③设置洗衣机模式

④开始洗衣服,洗完自动关

对比来看,我们就会发现,自动洗衣机把放水、定时、洗涤、排水、脱水等细节,封装到了③设置洗衣机模式里,这样为使用者提供了更加简单易用的接口,所以自动洗衣机会更加方便。

2、继承

继承:让某个类型的对象获得另一个类型的对象的属性和方法。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

(一)语法

class A extends B{}

一共继承了哪些东西呢?这要分两种情况

当A和B在同一包下,A继承了B中public、protected和默认访问级别的成员变量和成员方法

当A和B不在同一包下,A继承了B中public、protected成员变量和成员方法

(二)继承父类成员变量/方法

hanqishi继承了父类Dog

(四)重载父类方法

重载方法必须满足以下条件:

1、方法名相同

2、方法的参数类型、个数、顺序至少有一项不同

3、方法的返回类型可以不同

方法的修饰符可以不相同

3、多态

多态:对于同一个行为,不同的子类对象具有不同的表现形式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值