大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
简述Java中的面向对象(OOP)思想
Java是一种面向对象的语言,那么什么是面向对象(Object Oriented Programming)?
首先,什么是对象(Object)?Java中有一种思想叫做“万物皆对象”,对象就是具有某些特殊属性(成员变量)和行为方式(方法)的实体。现实生活中的任何事物都可以看作是对象,无论是具体或抽象的事物,比如:一个动物或者是城市的变化。具有两个特征:属性(Property)和行为(Behavior)。
其次,什么是面向对象?
我们先了解什么是面向过程。面向过程是以函数为基础,完成各种操作,强调过程;面向过程的编程语言,强调的是功能行为,注重过程的一步步实现。而面向对象是已对象为基础,完成各种操作主要强调对象、结果。面向对象的编程语言有Java、c++、c#等。面向对象的编程语言,是将功能封装进对象,强调具备某些功能的对象,其实面向对象的语言是基于面向过程的,因为即使是调用某个对象,被调用的对象的方法也是通过面向过程的方式编写的。但面向对象的编程思想更加符合人们的日常思维,将复杂的问题分解为不同领域的简单问题,更便于逻辑分析与分工合作。
最后,面向对象有什么特征?
在面向对象的程序设计中,对象与消息传递分别表现事物及事物之间的相互关系,通过封装(Encapsulation)将对象的定义和对象的实现分开,通过继承(Inheritance)体现类与类之间的相互关系,以及由此带来的实体的多态(Polymorphism)性,构成了面向对象的基本特征。
封装指的是隐藏对象的属性以及实现细节,仅对外提供访问的方法。面向对象的程序设计是将数据成员(Data Member)和属于此数据的操作方法(Method)放在同一实体或对象中,就是封装。封装是为了达到模块化和信息隐藏的目的。
封装有自身的优点:将变化隔离,其他对象在使用该对象的时候可以任意修改可访问的信息,但不会影响其他依赖于此对象的对象,提高了安全性; 同时,一个对象被对立的编写及维护而不影响其他对象,而且该对象可以被来回调用传递,提高了重用性。
当然,它也有自己不可避免的缺点,对象被封装后,变量及方法的访问难度提升,增加了访问步骤。
继承指的是多个类具有共同的属性(成员变量)与行为(成员方法)的时候,将这些共同的部分向上抽取出来定义到一个公共的类中,这时其他类与这个公共的类形成了继承关系,从而在多个类中不需要重复定义公共部分。这个公共的类称为:父类、超类、基类;其他的几个类称为:子类、派生类。
继承有自身的优点:可以实现代码的复用,利用已存在的父类程序代码,编写子类时只需要写子类特有的属性与行为。它也有自身的缺点:父类发生变化时,会造成子类也发生变化,造成“强耦合”关系,这是写程序时需要尽量避免的。Java在定义类时,只允许单继承,不允许多重继承,但可以多层继承,多实现。
多态指的是Java程序在编译与执行时表现出来的不同状态,是继承关系在执行过程中的独特现象。多态针对的是引用数据类型。形成多态的条件首先要有子父类的继承关系(extends),或类与接口的实现关系(implements);其次,子类要重写父类的方法;最后,在调用时,父类的“引用变量”指向子类的对象。接口是指当一个类中的方法都是抽象的时候,这时候可以将该抽象类用另一种形式定义和表示,就是接口(interface)。而接口不可以实例化,只能有实现了该接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化。否则,这个子类就是一个抽象类。抽象类是指含有用abstract关键字所修饰的抽象方法的类,并且这个类也要用abstract关键字修饰。一个类继承抽象类后,必须重写其抽象方法,不同的子类可以有不同的实现。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/167213.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...