首页
Preview

面向对象编程

什么是类?

类是对象外观的蓝图/轮廓。

什么是对象?

对象是类的实例。

既然我们已经了解了结构,为什么还需要类?

尽管结构和类有相似之处,但它们在编程中有不同的用途。虽然结构用于将相关数据分组在一起,但类提供了一种将数据和行为封装到单个实体中的方式。以下是即使存在结构,类仍然有价值的一些原因:

  • 抽象:类允许你定义复杂的数据类型,这些类型封装了数据和方法(函数)。这个概念被称为抽象,你可以隐藏内部实现细节并公开与对象交互的干净接口。这有助于构建模块化和可维护的代码。
  • 继承:类支持继承,这是一种强大的机制,使你可以创建一个类的层次结构,其中子类从其父类继承属性和行为。继承促进了代码重用,因为你可以在基类中定义常见功能并在派生类中进行专门化。
  • 多态性:多态性允许你在基类中定义方法并在派生类中重写它们。这允许以相同的接口对不同类的对象进行统一处理。当你想编写可以与不同类型的对象一起使用的通用代码时,多态性非常有用。
  • 封装:类提供了一种实施封装的方法,即将数据和方法捆绑在一起并控制它们的访问。你可以定义只能在类内部访问的私有成员以及可以从外部访问的公共成员。封装有助于维护数据完整性并防止未经授权的修改。
  • 模块化和组织:类提供了一种模块化和组织化的方式来组织代码。你可以在类中定义相关数据和方法,从而更容易理解和维护代码库。类可以分组到单独的文件中并组织到命名空间中,促进更好的代码组织。
  • 面向对象编程(OOP)范例:类是面向对象编程中的基本概念,这是一种流行的设计和构建软件系统的范例。OOP促进了代码可重用性,模块化和抽象化,使开发复杂应用程序更容易。尽管结构适用于简单的数据分组,但类提供了促进代码组织,模块化和代码重用的附加功能。它们为构建更大,更易于维护和可扩展的软件系统提供了基础。

什么是方法和字段?

类中不同的变量和函数称为它的方法或字段。它们有助于定义该类的对象的属性。

什么是构造函数?

构造函数是类的成员函数。它用于初始化类实例的数据成员。其名称与类的名称相同。

有哪些不同类型的构造函数?

构造函数:

1.复制构造函数:此构造函数将新对象成员的值分配给传递的旧对象成员。

2.默认构造函数:当我们创建一个对象时,默认构造函数会生效。

3.参数化构造函数:参数化构造函数使用传递的参数初始化对象的数据变量。

什么是封装?

封装是将具有相似数据和相似目的的方法和变量绑定为单个单元并控制对其的访问的过程。

什么是抽象?

抽象是仅向用户显示必要的详细信息,并在后台隐藏其他详细信息的过程。

什么是接口?

接口提供了一个类的方法概述,而不实际定义方法。

什么是多态性?

OOPS给我们特殊的能力,可以在需要时重新定义子类的同一方法(覆盖),还可以使用相同名称创建许多方法,使用不同的参数和不同的功能(重载),这称为多态性。

什么是继承?

继承是一种将一个类的特性和属性用于另一个类而不重写代码的过程。

抽象类和接口之间的区别?

a.抽象类可以具有可能/不可能是抽象的方法,即一些方法也可以具有代码。但是,接口始终是抽象的。

b.一个类可以一次继承多个接口,但不能一次继承多个抽象类。

c.接口/抽象方法的方法始终是公共的,但其实现被隐藏。

d.一旦将方法添加到抽象类中,它将添加到其所有子类中。但是,在接口的情况下,我们必须为每个子类单独定义它们。

e.最重要的是,抽象类应主要用于密切相关的对象,而接口最适合为不相关的类提供共同的功能。

抽象方法和私有方法之间的区别?

a.私有方法不能被继承,而抽象方法可以被继承。

b.私有方法无法在其自己的类之外访问,而抽象方法是公共的,只是它的实现被隐藏,并且是每个子类的类特定的。

有哪些不同类型的访问修饰符?

修饰符|说明

默认|声明仅在包内可见(包私有)

私有|声明仅在类内可见

受保护的|声明在包内或所有子类内可见

公共|声明任何地方都可见

如何在不使用关键字的情况下实现抽象类/接口?

创建一个具有给出错误消息的普通类。现在,当这个类被继承并被覆盖时,它将给出理想的实现。什么是消息传递?

面向对象编程中的消息传递是一种机制,用于对象之间通过发送消息来进行通信和交互。它涉及在对象上调用方法,这可以导致信息交换、执行特定行为或修改对象的状态。

静态关键字和 final 关键字有什么区别?

a. 静态关键字用于表示类成员。它通常与方法和变量一起使用,以指示它是类的一部分,而不是对象的一部分。另一方面,final 关键字用于声明一个常量变量,并绑定用户不得访问方法、变量或类。

b. 静态变量可以重新初始化,而 final 变量不能重新初始化。

译自:https://medium.com/@chandnijha630/object-oriented-programming-7847f56e6f33

版权声明:本文内容由TeHub注册用户自发贡献,版权归原作者所有,TeHub社区不拥有其著作权,亦不承担相应法律责任。 如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

点赞(0)
收藏(0)
阿波
The minute I see you, I want your clothes gone!

评论(0)

添加评论