美文网首页
面向对象

面向对象

作者: Finlay_Li | 来源:发表于2019-03-29 20:24 被阅读0次

    什么是面向对象,什么又是面向过程?

    1. 两者都是一种编程的思想
    2. 面向对象:将功能封装进对象中,强调具备了功能的对象。
    3. 面向过程:强调的是功能行为

    经典案例:把大象装入冰箱中
    面向过程: 1 打开冰箱 2 把大象装入冰箱中 3 关上冰箱
    强调的是打开,存储,关上这些功能行为
    面向对象: 1 存在几个对象(人,大象,冰箱) 2 这些对象要有的功能是什么 3 人只需要关心他该做的

    面向对象的优点

    1. 复杂的事情简单化(超市买东西--拿袋子装)
    2. 前期的良好设计,可具备很好的可扩展性
    3. 万事万物皆对象

    类和对象


    • 现实生活中一类具有共性事物的描述。是抽象的。如所有的人
    • 对象
    1. 定义
      类的实例化,如果创建了一个类中的多个对象,每个对象都拥有各自的一引用地址,互不干扰。

    2. 创建
      new +构造器:
      类名 对象名 = new 构造器;

    3. 作用
      调用该类的成员:属性和方法

    4. 对象的生命周期:Java内存管理和垃圾回收机制
      1)内存管理
      1 分配:由JVM分配内存空间
      2 释放:由JVM提供垃圾回收机制释放

    2)内存空间
    1 栈(Stack):局部变量,对象的引用
    2 堆(Heap):new关键字创建的对象
    3 元空间:元空间实际存储于电脑硬盘(常量池,类的描述信息)

    3)JVM垃圾回收机制
    1 垃圾回收(GC) — 垃圾回收机制自动释放垃圾对象所占内存的机制
    2 垃圾对象 — 内存中不再被使用的对象
    3 机制执行 —GC自动处理,无法干预
    4 System.gc(); 只能告诉JVM这个对象可以先释放掉了,但jvm亦不会立即处理
    但是加快垃圾释放
    5 java8中永久区已经取消,由元空间代替。元空间实际存储于电脑硬盘

    类的成员

    • 属 性(Field)
    1. 定义
      类的成员变量

    2. 语法格式
      修饰符 类型 属性名 =初始化值 ;

    3. 分类:成员变量与局部变量
      1)成员变量:在方法体外,类体内声明的变量称为成员变量。
      1 实例变量(不以static修饰)
      2 类变量(以static修饰)
      2)局部变量:在方法体内部声明的变量称为局部变量。
      1 形参(方法参数列表中定义的变量)
      2方法局部变量(在方法内定义)
      3 代码块局部变量(在代码块内定义)

    4. 成员变量和局部变量的特性
      1)成员变量
      定义在类中,在整个类中都可以被访问。
      分为类成员变量和实例成员变量,实例变量存在于对象所在的堆内存中。
      有默认初始化值。
      权限修饰符可以根据需要,选择任意一个
      2)局部变量
      只定义在局部范围内,如:方法内,代码块内等。
      局部变量存在于栈内存中。作用的范围结束,会自动释放。
      没有默认初始化值,每次必须显式初始化。
      声明时不指定权限修饰符

    5. 成员变量和局部变量的初始化

    1)成员变量
    byte 、short、int ——> 0
    long ——>0L
    flote ——> 0.0F
    double ——> 0.0
    char ——> ‘\u0000’(表示为空)
    boolean ——> false
    引用数据类型 ——> null

    2)局部变量: 创建时要直接显示赋值

    1. 初始化值的方式
      1)默认值
      2)直接显示赋值
      3)构造器(构造方法)
    • 方法(Method):
    1. 语法格式:
      修饰符 返回值类型 方法名 ( 参数列表) {
      功能操作语句;
      [return;]
      }

    2. 方法中的参数值传递:

      1)基本数据类型:当将基本数据类型作为参数,传递给方法,方法运行结束后,原值不会发生改变
      <传递值>
      2)引用数据类型:当将引用数据类型,作为参数传递给方法,方法运行结束后,原值会发生改变
      <传递地址值>

    相关文章

      网友评论

          本文标题:面向对象

          本文链接:https://www.haomeiwen.com/subject/fabrbqtx.html