JavaSE06

面向对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值