照片:Lagos TechieonUnsplash
说到面向对象的编程,我发现许多教程使这个概念的理解变得复杂。为了很好地理解它,让我们了解它所解决的问题。
在过去,我们有程序性编程,它将一个程序划分为一组函数,这些函数对数据进行操作。
但是随着程序的增长,我们得到了许多相互之间相关的函数。
当我们对一个函数进行修改时,可能会破坏其他函数,这是有问题的。
因此,OOP(面向对象的编程)来解决这个问题。它有4个小概念。封装、抽象、继承和多态性。
1- 封装
这意味着将一组相关的字段和功能创建为一个单元,称为对象。
我们把这些字段称为属性,把这些功能称为方法。
例子。
一个教师有一些属性,例如基本工资、加班费、工资率,作为一个方法,例如getWage(),以及更新属性值的setters和获取属性值的getters。
package com.selcote.abstraction;
public class Employee{
正如你所看到的,getWage()方法没有参数,它访问对象的属性并对其进行操作,不需要向它传递参数。这也是最好的做法之一,没有参数的方法。
参数的数量越少,使用和维护该函数就越容易。
除此之外,我们还将属性设为私有,我们可以通过设置器和获取器来访问它们,这就将结构化数据对象的值或状态隐藏在一个类中,防止未经授权的人直接访问它们。
2- 抽象
这种技术是关于从外部隐藏细节的,这给我们带来了很多好处。
我们可以通过将许多对象的方法变成私有的来隐藏它们,而只暴露少数的公共方法。
因此,通过这样做,我们可以使我们的对象界面更加简单。
使用和理解一个具有较少方法和属性的对象,要比一个具有许多方法和属性的对象好。
同时,这个概念也减少了变化的影响,这意味着如果你改变了任何私有的或内部的方法,这将不会泄漏到外面。因为这些方法或属性都不被这个包含对象的外部所知道。
另外,我们可以只向外界公开一个接口,而实现将在运行时被定义。
例子。
package com.selcote.abstraction;
public interface Car {
package com.selcote.abstraction;
public class ManualCar implements Car {
@Override
@Override
package com.selcote.abstraction;
public class AutomaticCar implements Car {
让我们测试一下汽车功能。
package com.selcote.abstraction;
public class CarTest {
Car car1 = new ManualCar();
的输出。
turn on the manual car
客户端程序只知道汽车和汽车提供的功能。
内部的实现细节对客户端程序是隐藏的。
3- 继承性
这种机制使我们能够消除多余的代码。
让我们考虑一下html元素,如TextBox、Select、CheckBox等。这些元素有一些共同点,如hidden和innerHtml属性以及click()和focus()等方法。
与其为每一种类型的 Html 元素重新定义这些属性和方法,我们可以在一个叫做 HtmlElement 的通用对象中定义这些属性和方法,并让其他对象继承它。
4- 多态性(Polymorphisme
如果我们试着理解这个组成名称,Poly 意味着许多,而 morphism 意味着形式,所以 :
多态性=许多形式
这是一种技术,可以摆脱if和else或switch语句。
所以,多态性是指一个方法能够根据它所作用的对象做不同的事情。换句话说,多态性允许你定义一个接口并有多个实现。
例子。
public class Animal{
class Dog extends Animal{
输出。
Barking
class Cat extends Animal{
输出。
Meow
总结。
OOP解决了很多问题,简化了编程领域。
封装 => 减少复杂度 + 增加可重复性
抽象 => 减少复杂度 + 减少代码变化的影响
继承 => 消除冗余的代码
多态性 => 重构if/switch case语句
在评论中与我分享你的想法,并拍手叫好:-)
另外,请考虑在媒体上关注我,并订阅我的频道:Selcote(解决问题的社区),以获得更多精彩内容。
推荐书籍
清洁代码。敏捷软件工匠精神手册
首要的设计模式。聪明的指南》(A Brain-Friendly Guide
清洁的架构
► 电脑和显示器
新的苹果MacBook Pro
戴尔27英寸Ultrasharp U2719D显示器
双臂支架桌面支架
USB C枢纽多端口适配器
我用于编码的IDE。
- 英特利杰
-Vscode
面向对象的编程5分钟》最初发表在《Dev Genius》杂志上,人们通过强调和回应这个故事来继续对话。