学习笔记-类与对象的创建

学习来源: 【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili

类与对象的关系

  • 类是一种抽象的数据类型,他是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物
  • 对象是抽象的概念的具体实例
//Student类
package com.oop.demo02;

//学生类
public class Student {
    //属性:字段
    String name; //初始值null
    int age; //初始值0

    //方法
    public void study(){
        System.out.println(this.name + "在学习");
    }

}



/*  main方法
    public static void main(String[] args) {
        类:抽象的、实例化
        类实例化后会返回一个自己的对象
        zhangsan对象就是一个Student类的具体实例

        Student zhangsan = new Student();
        Student wangwu = new Student();

        zhangsan.name = "张三";
        zhangsan.age = 3;

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

        wangwu.name = "王五";
        wangwu.age = 3;

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


                }

 */

创建与初始化对象

  • 使用new关键字创建对象
  • 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用
  • 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点
    1. 必须和类的名字相同
    2. 必须没有返回类型,也不能写void
  • 构造器必须要掌握
package com.oop.demo02;

//java-->class
//File --> Project Structure-->out路径->复制粘贴out文件夹过来即可
public class Person {
    //一个类即使什么都不写,它也会存在一个方法(在.class文件可以看到,无参构造器)

    //显示的定义构造器
    //使用new关键字,本质是在调用构造器
    //用来初始化值
    String name;
    public Person(){
        this.name = "zhangsan";//this指向当前对象的引用
        //this.属性名称
        //指的是访问类中的成员变量,用来区分成员变量和局部变量(重名问题)
    }
    //有参构造:一旦定义了有参构造,无参构造就必须显示定义
    public Person(String name){
        this.name = name;
    }
    //alt + insert:快捷键创建一个构造函数
}

/*
    public static void main(String[] args) {
        Person person = new Person("王五");
        System.out.println(person.name);//王五

     构造器:
     1. 和类名相同
     2. 没有返回值
     作用:
     1. new 本质在调用构造方法
     2. 初始化对象的值
     注意点:
     1. 定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造
 */

创建对象内存分析

package com.oop.demo03;

public class Application {
    public static void main(String[] args) {
        Pet dog = new Pet();
        dog.age = 3;
        dog.name = "旺财";
        dog.shout();
        System.out.println(dog.age);
        System.out.println(dog.name);

        Pet cat = new Pet();

    }
}


package com.oop.demo03;

public class Pet {
    String name;
    int age;
    public void shout(){
        System.out.println("叫了一声");
    }
}

小结

  1. 类与对象

    类是一个模板:抽象,对象是一个具体的实例

  2. 方法

    定义,调用

  3. 对象的引用

    基本类型(8)

    引用的类型:

    对象是通过引用来操作的:栈——->堆

  4. 对象的属性:字段Field 成员变量

    默认初始化:

    • 数字:0
    • char:u0000
    • boolean:false
    • 引用:null

    定义:修饰符 属性类型 属性名 = 属性值!

  5. 对象的创建和使用

    • 必须使用new关键字创造对象,需要构造器 Person xxx = new Person();
    • 对象的属性 xxx.name
    • 对象的方法 xxx.sleep()

  6. 静态的属性 属性
    动态的行为 方法

  7. 面向对象的三大特性:封装、继承、多态

posted @ 2022-06-20 21:16  夏夜晚风-  阅读(38)  评论(0编辑  收藏  举报