面向对象(Object-Oriented)

面向对象(Object-Oriented)

1.类与对象

对象是对客观事物的抽象,类是对对象的抽象。对象是类的实例,类是对象的模板

抽象:从被研究对象中舍弃个别的、非本质的或与研究主旨无关的次要特征,而抽取与研究内容有关的共性内容加以考察,形成对研究问题正确、简明扼要的认识。

2.类的域和方法

类和对象都有域和方法。

域是事物静态特征的抽象,也称属性或数据成员。
方法是事物动态特征的抽象,也称操作或成员方法。

3.对象创建和声明
创建对象:new Fruit();        ————分配在堆上
声明一个对象引用:Fruit f;     ———— 分配在栈上
初始化对象引用:f=new Fruit();

方法中定义的基本类型变量和对象的引用变量都是在内存中分配的。由new创建的对象存放在内存中。

4.三大基本特征:封装(encapsulation)、继承(inheritance)和多态(polymorphism)。

(1)封装

封装:利用抽象数据类型(类)将数据和基于数据的操作绑定在一起,数据被保存在抽象数据类型内部,系统只有通过被授权的操作方法才能够访问数据。封装是基于安全性的考虑,主要表现在定义为private。

特点
①数据和基于数据的操作方法构成一个统一体;
②类的操作方法实现细节被隐藏起来,只是通过操作接口名称进行调用,操作内部的变动不会影响接口的使用。

面向对象程序设计其中的一个关键是具有“高内聚,松耦合”的特点,这个特点就是通过封装和组合技术的综合运用来实现的。封装是利用访问控制符来实现,组合通过对象内部的属性引用来实现。
(2)继承

继承:使用关键字extends使两个类发生继承关系,新定义的类称为子类,子类可以从父类那里继承相应的属性和方法。一个类只允许有一个父类(单继承)。

注:
Object是所有类的共同祖先。
被final修饰的类称为最终类,它不能有子类。

继承的设计用途:
①是面向对象程序设计中对功能进行复用的重要手段;
②为引用带来了新特点,即使父类的声明可以引用所有子类对象。

(3)多态

多态:一个程序中同名但不同方法共存。Java提供两种多态机制——重载和覆盖。

重载(overloading):在类中定义了多个同名而不同内容参数的成员方法时,称这些方法是重载。
注:同名同参数但不同类型返回值的方法不是重载,不能通过编译。

覆盖(overriding):子类对父类参数相同、返回类型相同的同名方法重新进行定义。
注:
同名的static和非static不能相互覆盖;
当方法前有final修饰时,此方法不能在子类中进行覆盖;
抽象类中如果存在抽象方法,则具体子类必须对抽象方法进行覆盖。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值