类与对象

创建与初始化对象

  • 使用new关键字创建对象
  • 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化(String初始为null,int初始为0)以及对类中构造器的调用
  • 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:
    • 1.必须和类的名字相同
    • 2.必须没有返回类型,也不能写void
//构造器详解
//java --> class(project structure->module->add->out)	查看class文件
public class Person {

    //一个类即使什么都不写,它也会存在一个方法
    //显式的定义构造器

    String name;
    int age;

    //实例化初始值
    //1.使用new关键字,本质是在调用构造器,必须要有构造器
    //2.用来初始化值
    public Person(){
        this.name="qinjiang";
    }

    //有参构造器:一旦定义了有参构造器,无参就必须显式定义
    public Person(String name){
        this.name=name;
    }

    //alt + (Fn笔记本) + insert  自动生成一个构造器

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

/*
    public static void main(String[] args) {
        //new 实例化了一个对象
        Person person = new Person("kuangshen",23);
        System.out.println(person.name);    //qinjiang
    }

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

    Alt+Fn+Insert

    this
 */
  • 创建对象内存分析

  • 示例
public class Pet {
    public String name;     //属性前加public以便其他packages调用
    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);
    }
 */
  • 类与对象小结
public class Application {
    public static void main(String[] args) {
        /*
        1.类与对象
            类是一个模板:抽象,对象是一个具体的实例
        2.方法
            定义、调用!
        3.对应的引用
            引用类型:基本类型(8)
            对象是通过引用来操作的:栈-->堆
        4.属性:字段Field 成员变量
            默认初始化:
                数字:0    0.0
                char:u0000
                boolean:false
                引用:null
            修饰符 属性类型 属性名 = 属性值!
        5.对象的创建和使用
            -必须使用new关键字创建对象,构造器 Person kuangshen = new Person()
            -对象的属性 kuangshen.name
            -对象的方法 kuangshen.sleep()
        6.类
            静态的属性   属性
            动态的行为   方法
         */
    }
}

posted @ 2021-11-15 22:02  wydilearn  阅读(45)  评论(0)    收藏  举报