面向对象
面向对象VS面向过程
- 面向过程
- 优点:性能比面向对象高,类的调用需要实例化,开销大,比较消耗资源
- 缺点:没有面向对象易维护、易复用、易扩展
- 面向对象
- 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
- 缺点:性能比面向过程低
- 特点:是一种符合人们思考习惯的思想,将复杂事物简单化,程序员由执行者转变为指挥者,指挥对象实现功能。
- 二者不可分割,对于描述复杂的事物,为了从宏观把握、从整体合理分析,我们需要面向对象的思路分析整个系统,但具体到微观操作,仍需要面向过程的思路去处理。
面向对象
- 本质:以类的方式组织代码,以对象的组织(封装)数据。
类是一个模板,抽象的,对象是一个具体实例 - 抽象
- 三大特性:
- 类是对象的模板
- 方法回顾
- return:方法执行结束并放回结果 break:跳出switch;结束循环
- 方法的调用:
- 静态方法 (static) 类名.方法名 类加载时就会加载static类型的方法
- 非静态方法 先new一个对象(实例化),通过对象.方法名调用
- 值传递和引用传递:
类和对象的创建
- 类是一种抽象的数据类型,是对某一类事物整体的描述,并不代表某一具体事物 (人),包含属性和方法
- 对象是抽象概念的具体实例 (小明)
- 对象的创建 new :除了分配内存空间外,还会给创建好的对象进行默认初始化以及对类构造器的调用
Student student=new Student();
student.name="zs";
student.study();
- 构造器
- 一个类即使什么都不写也会存在一个方法,该方法为类的默认无参构造方法
- 如果定义了有参构造方法,默认的无参构造失灵,要使用则必须显示定义
- 特点:
- 方法名必须和类名相同
- 必须没有返回类型,也不能写void
- 作用:
- 使用new关键字创建对象必须要有构造器(本质是调用构造器)
- 初始化对象的值
Person(){
this.name="zs";
}
Animal dog=new Animal();