使用Java的编程编程-PO
#java #oop #backend #backenddevelopment

便便是一个编程程序,其中一切都表示为对象。关于此范式的程序由一个对象源传递消息的来源。最终,这种消息的交换将在这些对象中产生状态修改(数据)。

对象具有特征(属性)和行为(母亲)。每个对象均来自一个类,即真实世界对象抽象。类是一个模板,例如结构的“植物”,从中创建对象。

程序羊毛与Bolâ食谱有一个共同的类比,仅描述了“需要做的事情,但面向对象的停机时间包括“ IE,IE,IE,执行动作)和目标。

在程序语言中,行为是在过程,功能或子例子中定义的。在OO计划中,母体的各种行为。一个物体的母亲是消息的invocados。

    每当创建羊毛对象时,在内存中分配空间。课程不会在内存中消耗空间。

编程对象时,我们有好处:

  • 我做更多的幻想要理解,因为方式是构造的,使它们象征着真实的世界元素,
  • 由于责任针对对象
  • 回复道:henter是便便的支柱之一,允许对象继承特征和行为,避免重复代码。

管理方向编程的支柱。

  • variãldereferencia

我们可以通过参考差异访问对象。参考的差异只能是一种类型。无法更改参考差异后声明。

Cachorro cachorro = new Cachorro();

在上面的示例中,狗是对狗类型(类)的引用的差异。参考的差异可以将类或接口作为类型。

可以通过各种类型的参考变量(只要这些类型在同一层次结构中)来引用一个对象,这是参考差异或超级类别的相同类型的对象。

例如,如果狗类从动物类延伸,我们可能会说:
Animal rex = new Cachorro();

在这种情况下,雷克斯将是动物类型的差异和新狗()创建新的狗类型对象的差异。在编译时,我们无法访问整个或特定的狗属性,例如整个“ bark()”,因为编译器仅知道参考的类型。由于Barking()在动物参考类型的类型中不存在(仅存在于狗类中),因此无法访问它。但是,在执行时,REX将是狗类型(执行时间/对象类型的类型)。在这种情况下,我们可以说服编译器,雷克斯对象将在执行,执行铸件时是狗的类型,并且我们可以使用狗的狗。

Animal rex = new Cachorro();
((Cachorro) rex).latir(); //casting para Cachorro

  • 对象的状态
    对象中所有存储的数据的集合被指定为其状态。在OO中使用的术语中,属性对象的各种数据。
    例如,cachoro具有以下属性:名称,颜色,分支,年龄等。

  • 构建者必须定义初始状态vâlidai
    最终,需要用母亲的状态初始化对象才能被视为徒劳。示例:

Cachorro cachorro = new Cachorro(“Rex”, “marrom”, “Pitbull”,”médio”, “filhote”).

在这种情况下,我们知道狗类有一个建筑商,他定义了当我们创建狗类型时,我们必须告知名称,颜色,评分和年龄的属性。

  • 对象的属性集和所有欺凌者(可见)构成其接口(不与我们可以定义为对象类型的接口混淆)。
  • 较小的阶级至少在理论上是频率较小的修改,从而有助于代码的稳定性,因此倾向于更加凝聚力。

封装
它包括隐藏和保护详细信息的详细信息,不允许班级外部的元素访问其属性,避免访问和直接修改“任何人”对象。有了这一点,我们可以控制班级中的数据如何操纵,因此,母亲和属性实施的细节仅限于重要的:班级本身。

在便便中,一个属性或物体外部不可见的属性称为“私人”,当可见时,它被称为“药丸”。 例如,当我们踏上汽车的油门时,我们不需要知道汽车如何加速的细节,即在此过程中使用哪些机制。我们只需要踏上加速器,而汽车就可以执行动作,而不必像这样曝光。

对象隐藏数据和行为的能力被称为隐藏。这是封装的重要方面。

继承使对象能够从另一个对象接收行为和陈述。
当我们使用对象上的继承时,我们就继承了其上方所有对象的特征,就像我们继承了祖先的特征一样。来自上述对象的特征的继承被视为直接继承,而另一个对象则被视为间接继承。例如,在Famãlia中,孩子直接从父亲那里继承,并间接从宏伟的人和伟大的祖母那里继承。

这样,当一个对象继承时,我们说正在使用的类“一个”关系。我们继承了我们称为子类的类,以及共享我们称为超类的特征。

例如:班级从动物那里继承。我们说狗是动物,在这种情况下,狗是子类(或女儿阶级),动物是超类,建立了它们之间的继承之间的关系。

在这种继承的关系中,可以继承私人实例的提名和变量的妈妈(只能通过motters and setters药丸访问)。

  • 在某些语言中,有母亲的海象,一个物体可以从其他几个语言那里继承。
  • 小心!具有胜利者和固定器的模型可能正在掩盖矮人的模型。

多态性

“多态性”一词来自希腊警察=许多,morphos =形状。在编程中,它由相同动议采取不同形式的能力组成。
例如,通过继承所有父级,可以改变其行为以适应所讨论的对象,从而导致所有相等的类但具有不同行为的类。

例如,汽车和面包继承了汽车。每辆车都有整体加速,但是每辆车都以一种方式加速,触发汽车的机制和范围是不同的。这样,两者都将将整体继承到汽车加速,但会改变其行为,每种行为都会以不同的方式加速。
也就是说,从同一类继承的不同对象是以不同方式实现的座右铭

  • 像所有Java类一样,从对象继承,Java的所有对象都被视为Polyman。

Method Overload Overload使同一类具有不止一次的所有名称。为此,您的Parano列表必须不同,以便编译器可以区分它们。退货,访问修饰符和洗衣异常的类型也可能不同。

观察:母亲©所有河口也可以超负荷。


如果子类具有在超级阶级中宣布的相同座右铭,则称为母亲覆盖。对于整体而言,它必须保持相同的签名。

整体的签名由:可见性修改器,整体返回类型,parano仪表和例外。

观察母亲的索布克:

  • 它必须具有相同类型的返回类型:尽管协变率允许我们更改座右铭的返回类型。
  • 不能具有更限制的访问修饰符:必须具有较小的限制性访问修饰符。
  • 不应发布一个新的或更广泛的检查例外:您可以启动更多受限制的验证例外,并且可以启动任何例外。

母亲©所有愚蠢和建筑商都不能淹没,但可以超负荷。

关系

  1. 关系âand:一种关系是指继承或实施。
  2. 概括:概括使用一种关系的关系之一
  3. 关系有一个:类的一个实例有另一个类实例的参考。
  4. 聚集:在这种关系中,A类和B类的存在并不依赖于彼此。 对于聚合的这一部分,让我们看看学生班和联系课的示例。学生(学生)有联系(联系信息)。 ContactInfo可以在其他地方使用,例如,公司的员工(功能)类也可以使用ContactInfo类。因此,学生可能存在没有接触的情况,并且可以在没有学生的情况下存在联系。这种类型的关系称为聚集。
  5. 组成:在这种关系中,如果没有A类,B类就不可能存在,但是A类可以在没有B类B的情况下存在。

为了给出一个关于构图的想法,让我们看看这个学生班和学生班的示例。学生有一个学生。学生可能没有学生ID存在,但是没有学生可能就不存在。这种关系称为组成。

apptraã§o
抽象是隐藏实现细节并仅显示用户的功能的过程。

抽象的一个常见示例是汽车加速器:踩更强,您会提高速度。但是,驱动程序不知道该动作如何改变他们不需要知道的速度。

在Java中,我们可以通过两种方式进行抽象:抽象类和接口。

关键字摘要可以应用于课程和母亲。

  • 抽象和结束或静态永远不会在一起。

如果实现良好,则针对对象的对象将始终,始终较少依赖于具体实现和更多的抽象。

  1. 抽象类别:一个类包含“保留”一词时,类是抽象的。 无法实例化抽象类(不可能创建抽象类对象),因此它们被预测是为了继承。他们可以拥有所有愚蠢的建筑商,都是具体的。
  2. 母亲©所有摘要:母亲©所有抽象都包含关键词摘要。 没有实施抽象的座右铭(没有身体有身体,并以点和turgula结尾)。所有抽象的妈妈不应标记为私人。
  3. 抽象课和摘要母亲: 如果至少一个母亲在班级中是抽象的,那么整个班级必须是抽象的。 没有任何抽象的妈妈,就可以拥有一个抽象类。 在同一班级中,我们可以同时拥有许多抽象和抽象的母亲。 从抽象类继承的第一个具体类必须为所有抽象妈妈提供实现。 如果子类未实现超级类抽象的妈妈,则还应将其标记为抽象。 在皇家风景中,实施将由最终享受的人所知。在使用时,不知道实现类别或实施细节。

我们什么时候要标记像摘要这样的班级?

  • 形成子类以实施所有抽象母亲。
  • 为了防止对象从该类别出发。
  • 维护对班级的参考。 让你普遍。

接口
界面是一个类的模板(或构造的“植物”),该模板旨在由其他类实现。它只有抽象的妈妈(绝对没有混凝土),所以您的妈妈没有COLPORA ONE,只有签名。

当类实现接口时,它必须在接口中实现这些摘要。因此,我们说界面是“合同”,一组母亲定义所有实施界面的类都必须具有这些母亲。

例如,一个具有所有工资和所有工资的界面。接口中的这​​些时刻没有实现,只有签名,其名称。班级,董事和卖方的班级实施了员工。在这种情况下,所有这些都将被要求实施母亲和所有薪水,以定义他们如何在每个人中工作。

界面的母亲是图案,公共和抽象的。因此,在接口中,我们无需指定公共和抽象关键字。因此,接口的整体实现的访问修改器必须是公开的。

  • 一个小细节:一个界面不能由类继承,而是实现的。但是,接口可以从另一个接口继承,创建接口层次结构。我们说,使用汽车的完整示例,我们说本田拟合的跨类从“本田拟合”类继承,该类别以“汽车”类继承。 “汽车”类实现了“汽车”界面,而“汽车”界面又可以继承(例如)一个称为“ Meiodetransport”的界面,因为即使汽车是“汽车”和“汽车”都是运输工具不是汽车。

  • 母亲©全部默认和所有界面中
    通常,我们将界面的母亲实施到单独的类中。假设有必要添加新母亲©所有接口。我是,我们应该在所有其他类也实现此接口的其他类中实施这个母亲。

为了避免这种类型的问题,从Java出发,除了抽象妈妈外,还引入了在界面中实施母亲和愚蠢的可能性。

  • 接口deMarcaã§o
    空界面。例如可序列化,可克隆和远程接口。他们只能提供某种标记课程。

  • 接口的优势
    帮助我们使用Java的晚期henter。
    他们提供抽象。
    它们提供低耦合:对象彼此独立。

  • 我们什么时候要从类移动到接口?
    形成子类以实施所有抽象的妈妈。
    为了避免创建此类对象。
    维护对类的引用。

如果您想定义可能需要并经常使用抽象类的每个人。
如果您只想定义所有必要的妈妈,请使用接口。

来源:
https://programacao-orientada-a-objetos.online/
https://www.freecodecamp.org/portuguese/news/principios-de-programacao-orientada-a-objetos-em-java-conceitos-de-poo-para-iniciantes/