3. 对象的创建分析

类与对象的关系

  • 类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物。

  • 对象是抽象概念的具体实例

    • 张三就是人的一个具体实例,张三家的旺财就是狗的一个具体实例。

    • 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念。

 

创建与初始化对象

  • 使用 new 关键字创建对象

  • 使用 new 关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化,以及对类中构造器的调用。

/**
* 学生类
*/
public class Student {

   //属性:也可以称为 字段
   String name;
   int age;

   //方法
   public void learn(){
       //this关键字:指代的是当前类 Student
       System.out.println(this.name + "在学习!");
  }
}
/**
* 启动类
*/
public class Apeliction {
   public static void main(String[] args) {
       /**
        * 类:是抽象的,需要实例化
        * 类实例化之后会返回一个自己的对象
        * student对象,是 Student 类的具体实例
        *
        * 变量类型 变量名 = 变量值();
        */
       Student xiaoming = new Student();
       Student xh = new Student();

       xiaoming.name = "小明";
       xiaoming.age = 20;

       System.out.println(xiaoming.name);
       System.out.println(xiaoming.age);

       xh.name = "小红";
       xh.age = 20;
       System.out.println(xh.name);
       System.out.println(xh.age);
  }
}
  • 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。

  • 构造器特点:

    1. 必须和类的名称相同

    2. 必须没有返回类型,也不能写 void

public Person01() {

}
  • 构造器作用:

    1. new 本质在调用构造方法

    2. 初始化对象的值

  • 注意点:

    1. 定义有参构造之后,如果想使用无参构造,必须要显示的定义要给无参构造

/**
* 启动类
*/
public class Apeliction {
   public static void main(String[] args) {

       /**
        * new 实例化了一个对象
        */
       Person01 person01 = new Person01();
       System.out.println(person01.name);
  }
}
public class Person01 {
   //定义属性
   String name;
   int age;

   /**
    * 定义无参构造方法
    * 在做 new 动作之前,会先调用构造方法
    * 特点:
    *     1.和类名称一致
    *     2.没有返回值
    * 作用:
    *     1.new 的本质是调用构造方法
    *     2.初始化对象的值
    */
   public Person01(){
       this.name = "张俊";
  }

   /**
    * 定义有参构造
    * 注意点:
    *     如果创建了有参构造后,在想使用无参构造时,则必须显示的创建一个无参构造,否则无法使用
    */
   public Person01(String name){
       this.name = name;
  }
}

创建对象内存分析

 

posted @ 2021-03-11 00:23  初夏_雨露  阅读(62)  评论(0)    收藏  举报