面向过程与面向对象的区别
面向过程与面向对象有哪些区别?
-
面向过程(Procedure Oriented)
- 按自顶向下的步骤依次执行的过程解决方法,每一个步骤可定义为一个模块
- 优点:性能高、流程和步骤清晰、容易理解
- 不足:复用率低、扩展性差、维护难度高
- 按自顶向下的步骤依次执行的过程解决方法,每一个步骤可定义为一个模块
-
面向对象(Object Oriented)
- 将构成问题的事物拆解成各个对象,建立对象的目的是为了描述每一个事物在整个解决问题步骤中的行为
- 优点:易扩展、代码复用率高、利于后期发展
- 不足:一定程度上增加系统开销
- 将构成问题的事物拆解成各个对象,建立对象的目的是为了描述每一个事物在整个解决问题步骤中的行为
❓如何抽取现实当中的对象
- 发现物体 == 计算器语言中的一个类
- 这个物体有什么 == 类中的属性
- 这个物体能做什么 == 类的方法
设计类时遵循的原则
- 属性和方法的设置是为了解决与无问题
- 关注主要属性和方法
- 如果没有必要,勿增加额外的类、属性与方法
❗️构造方法(重点):
-
无返回值
-
方法名必须和同名相同
-
在一个类,不写任何构造方法,默认提供一个无参数的构造方法,一旦编写任何带参数的构造方法,默认提供的无参构造方法将消失
this关键字
- 在类中的普通方法或者构造方法中,可以通过 this.属性名 调用这个类中的属性
- 在类中的普通方法或者构造方法中,可以通过 this.方法名 () 调用这个类中的普通方法
- 在类中的构造方法中,可以通过 **this(根据类中自己定义的构造方法的参数情况)**进行调用构造方法
💥注意!在构造方法中,调用本类其他的构造方法,只允许书写在第一行
方法重载
同名不同参,一个类中方法名相同,参数列表不同(1.参数的个数不同 2.参数的类型不同)
知识回顾:
修饰符 | 直观理解 | 具体说明 |
---|---|---|
static | 静态的 | 可以修饰属性和普通方法,特点是,可以直接用类名.属性名或者类名.方法名直接访问,无需通过new关键字 创建对象后,再调用 |
访问修饰符 | 直观理解 | 具体说明 |
---|---|---|
不加任何修饰符 | 默认的 | 本类可以访问,本包以下的类可以访问 |
public | 公共的 | 一个项目的任何地方均可以使用 |
private | 私有的 | 只能在本类中访问 |