8. 类与对象(上)

类的定义与使用

前言

本篇并未过多的介绍零散的基础的知识,所以需要对类与对象有一定理解,有着一定理解再看此篇一定会有所收获!

public 类名 {
	// 1、字段 / 属性  (成员变量)

    // 2、行为 / 方法   (成员方法)
}

类名使用大驼峰

例如现在让我们去定义一个狗类

public class Dog {
    // 字段 / 属性  (成员变量):类的内部  方法的外部
    public String name;//狗的名字
    public int age;//狗的年龄
    public String color;//狗的颜色

    //行为 / 方法   (成员方法)
    public void wag() {//狗会摇尾巴
        System.out.println(name +"摇尾巴!");
    }
    public void bark() {//狗会叫
        System.out.println("汪汪!");
    }
    public void show() {
        System.out.println("名字:"+name+" "+"年龄:"+age+" "+"颜色:" +color);
    }
}

建议一个.java文件只定义一个类

类的实例化

Dog现在是一个类型所以我们现在可以使用Dog类型来定义一个变量

    public static void main(String[] args) {
        Dog dog;
    }

那么这个类创建的变量如何初始化呢?
这时候我们就需要用到类的实例化

用类类型创建对象的过程,称为类的实例化,在java中采用new关键字,配合类名来实例化对象

    public static void main(String[] args) {
        // 通过new关键字 去实例化了一个对象
        Dog dog = new Dog();
    }

那么这个对象具体是如何存储的呢?
下面我会用一张图来解开这个疑问

在这里插入图片描述

是不是突然看了这个图解开了心中的疑问

  • new 关键字用于创建一个对象的实例.
  • 关于成员变量以及成员方法,我们可以使用 . \color{red}{.} . 来进行访问.
  • 同一个类可以创建对个实例.

类和对象的说明

  1. 类只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员.
  2. 类是一种自定义的类型,可以用来定义变量.
  3. 一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量
  4. 做个比方。类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图,只设计出需要什么东
    西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空

this引用

    public static void main(String[] args) {
        // 通过new关键字 去实例化了一个对象
        Dog dog1 = new Dog();
        dog1.name = "小帅";
        dog1.age = 12;
        dog1.color = "红色";
        dog1.show();
        Dog dog2 = new Dog();
        dog2.name = "小美";
        dog2.age = 22;
        dog2.color = "黄色";
        dog2.show();
        Dog dog3 = new Dog();
        dog3.name = "小强";
        dog3.age = 32;
        dog3.color = "蓝色";
        dog3.show();
    }

在这里插入图片描述
是不是第一感觉非常冗余! \color{red}{是不是第一感觉非常冗余!} 是不是第一感觉非常冗余!

set()方法实现初始化

当我们使用对象的时候,去对成员变量一个一个进行初始化赋值,未免显得有些慢
这时候我们可以使用set()方法去对成员变量进行初始化

    public void set(String name, int age, String color) {
        this.name = name;
        this.age = age;
        this.color = color;
    }

当我们在狗类当中加上这个方法,那么之前的代码就可以写成

    public static void main(String[] args) {
        // 通过new关键字 去实例化了一个对象
        Dog dog1 = new Dog();
        dog1.set("小帅",12,"红色");
        dog1.show();
        Dog dog2 = new Dog();
        dog2.set("小美",22,"黄色");
        dog2.show();
        Dog dog3 = new Dog();
        dog3.set("小强",32,"蓝色");
        dog3.show();
    }

在这里插入图片描述
这样来看我们的代码就很简洁了

什么是this引用

this 代表的是当前对象的引用

this 什么时候加呢?
建议能加就加

构造方法

如果不想通过set() 方法去初始化赋值,那么我们就可以使用构造方法去进行赋值

    public Dog() {
        System.out.println("不带参数的构造方法");
    }

在这里插入图片描述

运行效果

在这里插入图片描述
构造方法(也称为构造器)是一个特殊的成员方法,名字必须与类名相同,在创建对象时,由编译器自动调用,并且
在整个对象的生命周期内 只调用一次 \color{green}只调用一次 只调用一次

所以我们可以在构造方法当中去初始化

特性

  1. 名字必须与类名相同
  2. 没有返回值类型,设置为void也不行
  3. 创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次(相当于人的出生,每个人只能出生一次)
  4. 构造方法可以重载(用户根据自己的需求提供不同参数的构造方法)

IDEA构造方法如何速写?

按住Alt+Ins键
在这里插入图片描述

点击constructor

在这里插入图片描述

选择需要有几个成员变量的构造方法
想要多选可以摁住ctrl 再进行鼠标点击
在这里插入图片描述

点ok, 构造方法就出来啦
在这里插入图片描述

this的三种用法

  1. this.属性 —> 访问当前对象的属性

  2. this() —> 调用当前对象的构造方法
    (1). 必须放到构造方法里面
    (2). 必须放到当前构造方法的第一行
    (3). 调用不能形成环的调用

  3. this.func() 调用当前对象的成员方法

在这里插入图片描述
今天的分享就到此结束了, 本篇的知识点较为难懂, 但是书读百遍终是会其义自见的. 希望大家都能有所收获!

2022年10月4日16:08:45

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱听歌的阿漓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值