ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

程序设计的思想和要点

2022-03-08 21:02:14  阅读:297  来源: 互联网

标签:封装 思想 Person 自顶向下 要点 程序设计 eat 属性


程序设计分为结构化程序设计和面向对象程序设计,面向对象程序设计也有着结构化程序设计的影子。

程序设计的主要原则有自顶向下、逐步求精、模块化、结构化编码、限制使用 GOTO 语句五个原则。其中,前三个原则在面向对象程序设计中同样非常重要。

  1. 自顶向下:在设计一个程序时,应该优先考虑总体,后考虑细节。先从最顶层目标开始设计,逐步使问题具体化。
  2. 逐步求精:在设计一个函数时,优先遵循“自顶向下”的原则,后从头开始将一些计算拆分成一个个函数,逐步地、一层一层地细化计算。
  3. 模块化:一个复杂的问题是由若干个小问题组成的,因此,将若干个小问题拆分成一个个子问题,最后组装成一个模块。模块化的目的是做到程序易于维护、代码高可读性。

我认为,在程序设计时,遵循自顶向下、逐步求精、模块化三个原则,能够写出高质量的程序(代码)。这样做的目的,首要目标是为了自己,如果代码可阅读性低,在后期遇到业务更改的需求时,需要浪费了大量时间去重新理解。其次也是为了团队和团队成员,代码阅读性高,程序模块化程度高,可以帮助队友快速加入到协作当中。

现在,大部分的语言都是面向对象程序设计,其中,对象、类、封装、继承、多态性五个概念极其重要。

类,是一组结构化类型的数据,其定义了成员属性、方法,具有结构化的特征。类被实现之后得到的东西,称之为对象。对象是对类的具体实现,是一个具体的东西

// 结构化类型数据——类
class Person {
  // 成员属性
  private String name;
  private int age;

  Person(String name, int age) {
    this.name = name;
    this.age = age;
  }

  public void eat() { System.out.print("eat something."); }
}

public static void main(String[] args) {
  Person p = new Person(); // p 是 Person 类的实例,也就是对象
}

如上的过程,就是封装,所谓的封装是把属性和方法组合成一个类。类的继承是对类的扩展,提高代码可重用性,体现出多态性。

顾名思义,Person 就是人类,人类所具有的公共属性被封装到此类中,Student、Teacher 同属于人类范畴,因此,提高代码重用,使 Student、Teacher 继承 Person。Student、Teacher 也因此具有了 Person 所有的属性和方法。

class Student extends Person {}
class Teacher extends Person {
  @Override
  public void eat() {
    System.out.print('teacher eat something.');
  }
}

Teacher 继承 Person 得来的eat()方法最终打印的结果是 teacher eat something.,而不是 eat something.。子类继承父类之后,可以表现出不同的行为,这种特征称之为多态性

我认为可以把面向对象程序设计的五个概念与结构化程序设计的三个原则结合起来进行程序设计。首先,开发程序时始终保持“模块化”开发的原则,接着在解决问题时,要“自顶向下”解决主要目标,其次,“逐步求精”细化程序。在具体的操作时,要把所用到的属性和方法“封装”成类,在之后的开发过程中发现有其他类都使用到了之前类中的属性和方法,就可以考虑将共同属性封装成一个父类,然后子类“继承”父类,从而实现多态性。

标签:封装,思想,Person,自顶向下,要点,程序设计,eat,属性
来源: https://www.cnblogs.com/shiramashiro/p/15982355.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有