面向对象(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修饰时,此方法不能在子类中进行覆盖;
抽象类中如果存在抽象方法,则具体子类必须对抽象方法进行覆盖。
标签:封装,对象,子类,Object,多态,Oriented,面向对象,抽象,方法 来源: https://blog.csdn.net/WAXXY_/article/details/115266568