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

简述面向对象思想_简述面向对象程序设计的特点简述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关键字修饰。一个类继承抽象类后,必须重写其抽象方法,不同的子类可以有不同的实现。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • kafka使用场景举例_rabbitmq和kafka的区别面试

    kafka使用场景举例_rabbitmq和kafka的区别面试Kafka使用场景

    2022年10月15日
  • 【15】进大厂必须掌握的面试题-容器化和虚拟化面试

    Q1。什么是容器? 我的建议是首先解释对容器化的需求,容器用于提供一致的计算环境,从开发人员的笔记本电脑到测试环境,从过渡环境到生产环境。 现在给出容器的定义,一个容器包含一个完整…

    2020年10月23日
  • 区块链 | 流行的分布式存储平台Swarm和IPFS分析「建议收藏」

    区块链 | 流行的分布式存储平台Swarm和IPFS分析「建议收藏」谈到区块链和分布式计算,最重要的是共识算法(整个网络如何达成一致的决策)和智能合约(实现我们在中心化世界中日常使用的应用)。但是,谈及日常应用程序,这些属性还不足以支持当今世界的需求。如果我们只依靠上述这两项,就难以想象像在Netflix上那样观赏喜爱的电影或电视剧、像在脸书上那样存储或分享值得纪念的视频或照片,或在区块链上玩喜爱的在线游戏(如DOTA)。我们缺少一个强大、安全和去中心化的内容存储以及分发系统,服务于当今的应用程序。下面,我们将探索和评估一些***的分布式存储平台。本文为系

  • selenium-PO模式

    selenium-PO模式PO模式:全称pageObject模式,使测试代码具有理想的可维护性参考:​​​​​​PO设计模式|Selenium优点:测试代码与页面的定位代码(如定位器或者其他的映射)相分离. 该页面提供的方法或元素在一个独立的类中,而不是将这些方法或元素分散在整个测试中….

  • DataList_ItemDataBound常用方法

    DataList_ItemDataBound常用方法因为DataList绑定时候是区分奇数列和偶数列的,所以每行都执行的写法是 if((e.Item.ItemType==ListItemType.Item)||(e.Item.ItemType==ListItemType.AlternatingItem)){Labellab=(Label)e.Item.FindControl(“Label9”);

    2022年10月13日
  • 机房收费系统——组合查询

    机房收费系统——组合查询机房收费系统——组合查询

发表回复

您的电子邮箱地址不会被公开。

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