java基础——创建对象与内存分布

类与对象的关系

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

    • 动物、植物、手机、电脑。。。
    • Person类,Pet类,Car类,这些类都是用来描述和定义某一类具体事物应该具备的特点和行为
  • 对象是抽象概念的具体实例

    • 张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例
    • 能力体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念

创建与初始化对象

  • 使用new关键字创建对象

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

  • 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:

      1. 必须和类的名字相同
      2. 必须没有返回类型, 也不能写void
  • 构造器必须要掌握

构造器:(特殊的方法--->构造方法)
    1. 和类的名字相同
    2. 没有返回值
作用:
    1. new的本质是在在调用构造器
    2. 初始化对象的值
注意点:
    1. 定义有参构造之后,如果想使用无参构造,显示的定义一个无参构造
    
快捷键:Alt + Insert
      this. (等价于 类名字. )
public class Person {

    //一个类即使什么都不写,它也会存在一个方法
    //显示的定义构造器
    String name;
    int age;

    //实例化初始值
    // 1. 使用new关键字,必须要有构造器。(本质是在调用构造器)
    // 2. 用来初始化值
    public Person(){
        
    }
    //有参构造:一旦定义了有参构造,就必须定义无参构造
    public Person(String name) {
        this.name = name;
    }
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}
/*
    public static void main(String[] args) {
        //实例化了一个对象.
        Person person = new Person("二哈");
        System.out.println(person.name);
    }
 */

创建对象的内存分布

image

实例分析:

public class Pet {
    public String name;
    public int age;
    //无参构造
    public void shout(){
        System.out.println("叫了一声小子,别跑");
    }
}
/*
    public static void main(String[] args) {

        Pet dog = new Pet();
        dog.name ="黑豹";
        dog.age = 3;
        dog.shout();

        System.out.println(dog.name);
        System.out.println(dog.age);
    }
 */

课后总结:

1.  类与对象
    类是一个模板:抽象 ; 对象是一个具体实例。
2.  方法:定义、调用
3.  对象的引用
    引用类型:基本类型(8)
    对象都是通过引用来操作的: 栈---->堆
4.  属性:字段 field 成员变量
    默认初始化:
    数字:0, 0.0
    char:u0000
    boolean :alse、
    引用类型:null
    
    属性的定义:修饰符  属性类型 属性名 = 属性值;
5.  对象的创建使用
    - 必须是使用new关键字来创建对象,构造器  Person dong = new Person();
    - 对象的属性  dong.name;
    - 对象的方法  dong.study();
6.  类
    静态的属性   属性
    动态的行为   方法   
posted @ 2021-05-26 16:14  放慢_脚步  阅读(53)  评论(0编辑  收藏  举报