简述面向对象思想_简述面向对象程序设计的特点

简述面向对象思想_简述面向对象程序设计的特点简述Java中的面向对象(OOP)思想Java是一种面向对象的语言,那么什么是面向对象(ObjectOrientedProgramming)?首先,什么是对象(Object)?Java中有一种

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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关键字修饰。一个类继承抽象类后,必须重写其抽象方法,不同的子类可以有不同的实现。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167213.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 下载swf文件(游戏)的方法[通俗易懂]

    下载swf文件(游戏)的方法[通俗易懂]网页内的swf下载,通常能够能过缓存、数据抓包的方式获取。但对于一些网站(如4399),具有了保护功能,很难通过上面两个办法下载。失败的尝试:1)国内某个弟弟写的小程序这个东西原文在知乎,好象

    2022年7月2日
    84
  • 整理了十五道为数不多的tomcat面试题,错过就没了!

    整理了十五道为数不多的tomcat面试题,错过就没了!当容器启动时,会读取在webapps目录下所有的web应用中的web.xml文件,然后对xml文件进行解析,并读取servlet注册信息。然后,将每个应用中注册的servlet类都进行加载,并通过反射的方式实例化。(有时候也是在第一次请求时实例化)在servlet注册时加上如果为正数,则在一开始就实例化,如果不写或为负数,则第一次请求实例化。

    2022年6月6日
    29
  • Idea激活码最新教程2023.2.3版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2023.2.3版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2023 2 3 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2023 2 3 成功激活

    2025年5月27日
    0
  • mysql左连接丢失null值的问题

    mysql左连接丢失null值的问题一、前言      如题所示,我们有的时候直接使用左连接查询,当右表不存在该数据的时候,是可以查出带有null的列。可是当在where条件中有右表相关的筛选条件时,我们惊奇的发现查询的结果不带null值了,换句话说就是查出来的结果比预期的少。      博主之前遇到过这个问题…

    2022年5月6日
    35
  • s一般怎么称呼自己的m_75.9%的职场人,都不知道怎么称呼自己的领导

    s一般怎么称呼自己的m_75.9%的职场人,都不知道怎么称呼自己的领导包邮送!人力资源制度手册纸质版和电子版23套制度覆盖员工入职到离职各环节82份表格制度配套全面规范附赠电子版可复制可编辑原价49元纸质版+电子版包邮送!!!最后30本!扫码回复【100】立抢!来源:猎聘(ID:liepinwang)作者:放学堵他谁能想到「怎么称呼别人」这样看似简单到不能再简单的问题,居然会成为让职场萌新发懵,甚至打怵的究极难题。不要以为这是什么夸张的说…

    2022年6月23日
    85
  • mysql 分区 扩充_mysql分区LVM扩容

    mysql 分区 扩充_mysql分区LVM扩容场景:mysql的数据库目录为/data随着数据量的增加,该分区不够用了,准备添加一块ssd硬盘,扩容该分区!下面是测试环境的整个过程:测试环境:在原有LVM卷标上添加一块50G的新硬盘对LVM进行扩容1、将添加的新硬盘进行分区:fdisk/dev/sdaWARNING:DOS-compatiblemodeisdeprecated.It’sstronglyrecommendedto…

    2022年6月20日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号