6.类和对象

1. 面向对象与面向过程
1. 面向过程性能高于面向对象,因为类调用时需要实例化,对于内存的开销比较大,比较消耗性能,所以当优先考虑性能时,会选择面向过程的语言。
2. 面向对象具有封装、继承、多态三个特性。所以面向对象语言可以设计出低耦合的程序,而且程序易维护、易复用、易拓展。
2. 类和对象

类:一组具有相同属性、方法的对象的统称

对象:类的具体化表现

3.定义
  1. 定义类
public class Demo{}
  1. 声明对象
类名 对象名 = new 构造方法(参数值列表);
// 对象名.属性名
// 对象名.方法名(参数值列表)
4.NullPointerException

空指针异常:当引用类型的变量没有引用数据时,调用对象的属性和成员方法引发此异常

5. 成员变量和局部变量
  1. 成员变量(属性):类中所有成员变量都可以访问
  2. 局部变量:在方法中声明的变量、形参,在条件结构或循环中定义的变量
  3. 区别:
    1. 默认值:局部变量没有默认值,使用前必须赋值
    2. 作用域:局部变量必须在方法内或者结构循环语句内使用,全局变量可以在所有成员方法中使用
    3. 优先级:如果方法中有与全局变量重名的局部变量,优先调用局部变量
6. 构造方法
  1. 语法
// 构造方法语法  没有返回值类型 没有返回值类型 没有返回值类型
权限访问修饰符 类名 (参数列表){}
  1. 分类

    1. 隐式 -- 显式
    2. 有参 -- 无参
  2. 作用

创建对象时调用,并初始化属性值

7. 方法重载
  1. 同一个类中
  2. 方法名相同
  3. 参数列表不同
8. this关键词
  1. 可以在类,成员方法,构造方法中使用
  2. 在成员方法中可以调用成员变量和成员方法
  3. 在构造方法中可以调用成员变量、成员方法,this()可以调用同类其他构造方法

注意:this()在构造方法中必须放在第一行

注意事项:
1. 对象名中储存的是地址值
2. 系统默认提供一个公共无参构造,如果手动声明一个有参构造,默认的会被覆盖
原文地址:https://www.cnblogs.com/forelim/p/14684275.html