Java-类和对象

1. 类和对象

1.1 什么是类?

  • 类是对某一事物的统称,是一个集合,例如人类,动物等等,类之中可以有对该集合的属性描述以及行为描述

1.2 什么是对象?

  • 对象是类当中某一个唯一,独立,特殊的个体
  • 对象的创建:类名 对象名 = new 构造方法(可能需要的参数);

1.3 构造方法

  1. 功能:初始化当前类对象中保存的成员变量数据。
  2. 一个类当中没有显式的声明构造方法的时候,Java编译器会默认的为其提供一个无参的构造方法,供其使用。
  3. 如果在一个类当中显式的声明了构造方法,不管式无参还是有参,Java编译器都不会再提供对应的构造方法。
  4. 在一个类当中,构造方法可以有多个,根据参数个数,数据类型的不同,来完成不同的功能。(使用到了方法重载的概念)。
  5. .但是构造方法的参数类型以及个数不能同时相同,哪怕是两个数据类型相同的不同数据也不可以,因为编译器只看数据类型,而不看具体的类型名。

1.4 重载

  • 定义:方法的方法名相同,参数个数、数据类型不同但不能同时相同,且发生在同一个类内。
  • 优点:简化了开发的压力,简化了程序员的记忆压力。
  • 作用: 通过调用同一个方法名,传递不同的参数来完成不同的功能。

1.5 成员变量与局部变量的对比

  1. 作用: 成员变量是对该类对象的属性描述,描述当前类拥有哪些属性;而局部变量是用来在方法或代码块执行过程中用来保存必要的数据。
  2. 位置: 成员变量定义在class大括号内部,以及其他大括号外部;而局部变量定义在方法括号或者代码块括号之内。
  3. 初始值: 成员变量在未经过构造方法为其初始化赋值之前,为对应数据类型的零值;局部变量未赋值不能使用,不能参与除赋值操作之外的任何操作。
  4. 作用域: 成员变量存储在堆区的类对象内存空间内,所以持有当前类对象的引用的变量在何处,成员变量在该处皆有用;局部变量作用域有且只在当前大括号内。
  5. 生存周期:成员变量随着类对象的创建开始,被GC机制回收时而结束;局部变量生存周期从定义位置开始,到当前作用域的大括号结束。

1.6 零值

  • 基本数据类型:
    byte\short\int : 对应零值为0;
    long : 对应零值为0L;
    float : 对应零值为0.0F;
    double : 对应零值为0.0;
    char : 对应零值为 ‘\0’;
    boolean : 对应零值为false;
  • 引用数据类型:
    所有的引用数据类型的零值全部为null,代表空引用。

1.7 匿名对象

  1. 格式:new 构造方法(所需要的参数);
  2. 用途:
    1.使用匿名对象直接调用类内的成员方法。
    2.匿名对象可以直接作为方法的参数。
    注意: 不要使用匿名对象操作成员变量,因为可能会有误会,每次匿名对象的创建都是创建一个新的类对象内存空间,可能会导致数据的丢失。
  3. 优点:
    1.在使用之后,会立即被GC处理。
    2.解决了内存浪费的问题,减少了栈区没必要的浪费,提高效率,简化代码书写。
  4. 从内存角度分析匿名对象的特点:
    通过对内存的观察可以发现,使用类对象实际上使用的就是保存在堆区的类对象的内存空间,栈区中保存的只是对堆中内存的引用,那么当我们只需要暂时的使用某个类中的成员方法时,可以使用匿名对象,直接操作保存在堆区的内存空间,从而节省下了栈区中的那一部分内存空间,减少了内存的没必要浪费。
发布了8 篇原创文章 · 获赞 6 · 访问量 681

猜你喜欢

转载自blog.csdn.net/cccccv_/article/details/104549593