类的定义与使用
前言
本篇并未过多的介绍零散的基础的知识,所以需要对类与对象有一定理解,有着一定理解再看此篇一定会有所收获!
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}{.} . 来进行访问.
- 同一个类可以创建对个实例.
类和对象的说明
- 类只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员.
- 类是一种自定义的类型,可以用来定义变量.
- 一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量
- 做个比方。类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图,只设计出需要什么东
西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空
间
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}只调用一次
只调用一次
所以我们可以在构造方法当中去初始化
特性
- 名字必须与类名相同
- 没有返回值类型,设置为void也不行
- 创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次(相当于人的出生,每个人只能出生一次)
- 构造方法可以重载(用户根据自己的需求提供不同参数的构造方法)
IDEA构造方法如何速写?
按住Alt+Ins键
点击constructor
选择需要有几个成员变量的构造方法
想要多选可以摁住ctrl 再进行鼠标点击
点ok, 构造方法就出来啦
this的三种用法
-
this.属性 —> 访问当前对象的属性
-
this() —> 调用当前对象的构造方法
(1). 必须放到构造方法里面
(2). 必须放到当前构造方法的第一行
(3). 调用不能形成环的调用 -
this.func() 调用当前对象的成员方法
今天的分享就到此结束了, 本篇的知识点较为难懂, 但是书读百遍终是会其义自见的. 希望大家都能有所收获!
2022年10月4日16:08:45