Java面向对象
什么是面向对象编程?
面向:找、拿。
对象:东西。
面向对象编程:找或者拿东西过来编程。
设计对象并使用
设计类,创建对象并使用
类是什么?
类(设计图):是对对象共同特征的描述;
对象:是真实存在的实例。
结论:再Java中,必须先设计类,才能创建对象并使用。
什么是对象?(What is an Object?)
软件世界的对象以现实世界的对象为模型。软件对象在概念上类似于现实世界的对象:它们也由状态和相关行为组成。对象将其状态存储在字段(某些编程语言中的变量)中,并通过方法(某些编程语言中的函数)公开其行为。方法对对象的内部状态进行操作,并充当对象到对象通信的主要机制。
什么是类?(What is a Class?)
Java是一种面向对象的编程语言。
Java 中的所有内容都与类和对象相关联,以及它的属性和方法。类就像一个对象构造函数,或者一个用于创建对象的“蓝图(模板)”。
什么是继承?(What is Inhertance?)
不同种类的物体通常彼此之间有一定的共同点,我们可以把共同属性放在一个父类,由子类去继承父类的状态和行为。
什么是接口?(What is an Interface?)
在 Java 编程语言中,接口是一种引用类型,类似于类,只能包含常量、方法签名、缺省方法、静态方法和嵌套类型。
实现接口,允许类对其承诺提供的行为变得更加正式。接口在类和外部世界之间形成一个协定,这个协定在生成时由编译器强制执行。如果您的类声明实现接口,则该接口定义的所有方法都必须出现在其源代码中,然后类才能成功编译。
接口的使用者只需要关心出/入参,不需要关心具体的业务实现。
什么是多态?(What is Polymorphism?)
Java中的多态性是以不同方式执行单个操作的任务。
当存在继承/实现时,就会发生多态性,即有许多类彼此相关。
Java 中的多态性允许我们使用这些继承的属性来执行不同的任务。因此,允许我们以许多不同的方式实现相同的行动。
什么是抽象类?
抽象类是处理程序抽象的类。一般而言,抽象是面向对象编程的特征,它只“显示”基本信息,“隐藏”不必要的信息。抽象的首要目的是向用户隐藏不必要的细节。抽象是从更大的信息池中选择对用户有益且相关的数据。
面向对象与面向过程的思想
面向过程:亲力亲为,侧重于分析过程。
面向对象:所有事情交给相应的对象完成,侧重于如何创建对象。
可总结为下面三点:
1.都可以实现代码重用和模块化编程,但是面对对象的模块化更深,数据更封闭,也更安全!因为面向对象的封装性更强!
2.面对对象的思维方式更加贴近于现实生活,更容易解决大型的复杂的业务逻辑
3.从前期开发角度上来看,面对对象远比面向过程要复杂,但是从维护和扩展功能的角度上来看,面对对象远比面向过程要简单!
面向对象三大特性
(1)面向对象特性之封装性
为什么要封装?
Java程序设计追求“高内聚,低耦合”
高内聚:类的内部数据操作细节自己完成,不允许外部干涉
低耦合:仅对外暴露少量的方法用于使用
隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露岀来。这就是封装性的设计思想
(2)面向对象特性之继承性
继承关键字:extends
this和super
this:表示当前对象或者构造方法,两种不同用法的区别是:
this.属性。表示当前类的对象,只能在方法当中使用,通常用于在方法中区分成员变量和参数。
this():此时的this()表示,当前类的一个构造对应的构造方法。当this被当作构造方法使用时,它只能写在构造方法的第一行。
super:可以表示父类的对象或者构造方法。
super.属性:表示当前类的父类的对象,用法和this相似
super():表示调用父类的一个构造方法,用法和this相似
继承的特点
1.继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
2.对象的一个新类可以从现有的类中派生,这个过程称为类继承。
3.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
4.派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
5.Java中只允许单继承,但允许多层继承。
(3)面向对象特性之多态性
定义:在Java中,多态是指不同类的对象在调用同一个方法时所呈现出的多种不同行为。
说明:通常来说,在一个类中定义的属性和方法被其他类继承或重写后,当把子类对象直接赋值给父类引用变量时,相同引用类型的变量调用同一个方法所呈现出的多种不同形态。
以上就是今天分享的内容,如果你觉得有用记得点赞收藏,记得评论哦,你们的点赞评论是我继续分享的动力哦~
(以上图片及文字整理于网络,如有侵权联系删除)