06 Java面向对象编程(三)——对象的创建分析

三、对象的创建分析

类与对象的关系:

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

对象——是抽象概念按的具体实例。

创建与初始化对象:

1.使用new关键字创建对象

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

package com.oop.demo01;

//学生类
public class Student {
    //属性:字段
    String name;
    int age;

    //方法
    public void study(){
        System.out.println(this.name+"is studying");
    }

}





package com.oop.demo01;

//一个项目应该只有一个main方法
public class Application {
    public static void main(String[] args) {

        //类:抽象的,实例化
        //类实例化后会返回一个自己的对象
        //student对象就是一个Student类的具体实例


        Student xiaoming = new Student();
        Student xiaohong = new Student();

        xiaoming.name = "小明";
        xiaoming.age = 3;
        System.out.println(xiaoming.name);


        xiaohong.name = "小红";
        xiaohong.age = 2;
        System.out.println(xiaohong.name);

    }

}

2.构造器

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

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

作用:

  • 1.new的本质就是在调用构造方法
  • 2.初始化对象的值

注意点:定义有参构造后,若想使用无参构造,要显示定义一个无参构造。

Alt+insert 快捷键,生成有参构造器

image-20210903194253082

package com.oop.demo01;

//java--> class
public class Person {
    //一.一个类即使什么也不写,它也会存在一个方法(构造方法),非显示但存在


    //二.显示的定义构造器
    String name;

    //实例化初始值
    //1.使用new关键字,本质是在调用构造器
    //无参构造(显示定义)
    public Person(){
        this.name="zhangsan";
    }

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

    //Alt+insert 快捷键,生成有参构造器


}

package com.oop.demo01;

//一个项目应该只有一个main方法
public class Application {
    public static void main(String[] args) {

        //实例化一个对象new
        //使用new关键字,本质是在调用构造器
        Person person = new Person();
        System.out.println(person.name);
        Person person2 = new Person("lisi");
        System.out.println(person2.name);

    }

}

3.堆、栈、方法区

image-20210903200538559

左边是栈,右边是堆,堆里有个特殊的地方叫方法区

package com.oop.demo01;

public class Pet {
    String name;
    int age;

    public void shout() {
        System.out.println("");
    }
}



package com.oop.demo01;

//一个项目应该只有一个main方法
public class Application {
    public static void main(String[] args) {

        Pet dog = new Pet();
        dog.name = "旺财";
        dog.age = 3;
        dog.shout();

        Pet cat = new Pet();

    }

}

小结:

1.类与对象

​ 类是一个模板,对象是一个具体实例。

2.方法

​ 定义、调用

3.对象的引用

​ 除了八大基本类型,都可以看做引用类型。

​ 对象是通过引用来操作的:栈–>堆

4.属性 字段Field 成员变量

​ 默认初始化:

​ 数字:0 0.0

​ char: u0000

​ boolean:false

​ 引用:null

5.对象的创建和引用

​ -必须使用new关键字创建对象,构造器

​ -对象的属性 person.name

​ -对象的方法 person.sleep()

6.类

​ 静态的属性 属性

​ 动态的属性 方法

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值