面向对象(一)—对象、类和数组

105 阅读2分钟

对象和类、数组

对象和类

  1. 现实世界是由很多对象组成的

    • 现实世界是先有对象,再抽出类
    • 代码中先创建类,再创建对象
  2. 一个类可以创建多个对象

    • 同一个类的多个对象,结构相同,数据不同
  3. 类是一种数据类型

    只能包含:

    • 描述对象所共有的特征:------变量 (属性——静的)
    • 对象所共有的行为:----------方法 (行为——动的)
  4. new后,成员变量有默认值

  5. 创建对象语法:

    类名 引用 = new 类名(); 其中:new 类名() 是在创建对象

    因对象为数据,所以声明引用来指代数据

    引用类型与基本类型内存分布

  6. 访问成员变量、访问方法

    通过点来操作,语法:

    引用.成员变量 引用.方法名();

  7. 等号

    引用类型与基本类型之间赋值

    基本类型之间画等号——在赋值

    引用类型之间画等号----指向同一个对象(变量装的是地址)

    基本数据类型与引用类型对比

    • 8种基本类型:可以直接赋值
    • 除了8种之外:类、接口、数组----引用类型(new出的)
  8. null

    null

    空,表示没有指向对象

    若引用的值为null,则不能再进行点操作,否则会出现NullPointerException异常


方法

重载

  1. 签名: 方法名+参数列表
  2. 重载:同一个类中,方法名相同,参数列表不同

构造方法

  1. 构造方法常常用于给成员变量初始化
  2. 与类同名,没有返回值类型
  3. 构造方法是在创建对象时被自动调用
    • 若自己不写构造方法,则编译器默认给一个无参构造
    • 若自己写了,则不再默认提供无参构造
  4. 构造方法可以重载

this

  1. this指代当前对象,谁调指的就是谁

  2. 用法:

    • this.成员变量---访问成员变量
    • this.方法()-----访问方法
    • this()--------调构造方法

数组

  • 数组是同一数据类型的集合,数组一旦创建后,大小就不可变;
  • 可以通过索引访问数组元素,但索引超出范围将报错;
  • 数组元素可以是值类型(如int)或引用类型(如String),但数组本身是引用类型;
 int[]    arr   = new int[4];         //基本类型数组
 Cell[]   cells = new Cell[4];        //引用类型数组
 int[][]  cells = new int[4][];       //二维数组

遍历数组

for循环方式

public class Main {
    public static void main(String[] args) {
        int[] ns = { 1, 4, 9, 16, 25 };
        for (int i=0; i<ns.length; i++) {
            int n = ns[i];
            System.out.println(n);
        }
    }
}

for each 循环方式

public class Main {
    public static void main(String[] args) {
        int[] ns = { 1, 4, 9, 16, 25 };
        for (int n : ns) {
            System.out.println(n);
        }
    }
}

\