预备知识点
Java自定义类
我们可以把类的类型为两种:
第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用。
第二种,我们自己创建的类,按照类的定义标准,可以在类中包含多个方法与属性,来供我们使用。
这里我们主要介绍第二种情况的简单使用。
自定义类的概述:
我们在Java中,将现实生活中的事物抽象成了代码。这时,我们可以使用自定义的数据类型(类)来描述(映射)现实生活中的事物。
类,它是引用数据类型,与之前学习的所有引用数据类型相同,自定义类也是一种数据类型。只是自定义类型并非Java为我们预先提供好的类型,而是我们自己定义的一种引用数据类型用来描述一个事物。
类的定义与使用:
我们就拿一部手机进行分析,它能用来做什么呢?它可以打电话,上网,聊微信等,这些就是手机所提供的功能,也就是方法;手机也有它的特征,如颜色、尺寸大小、品牌型号等,这些就是手机的特征,也就是属性。
通过类的定义格式,来进行手机类的描述,如下所示:
public class Phone {
/*
* 属性
*/
String brand;// 品牌型号
String color;// 颜色
double size; // 尺寸大小
}
上述代码,就是创建一个类的的过程,类的名称我们给起名为Phone,类中包含了三个属性(brand品牌型号、color颜色、size尺寸大小)。注意,类中定义的属性没有个数要求。
Phone类定义好后,我们就可以使用这个类了,使用方式和使用引用数据类型Scanner类相似。格式如下:
- 导包:我们将所有的类放到同一个文件夹下,可以避免导包。
- 创建对象:数据类型 变量名 = new 数据类型();
- 调用方法:目前我们定义的自定义类不涉及方法,只是属性(自定义类中的方法部分在面向对象部分讲解)
- 访问属性:变量名.属性 (这是当前的方式,后期会采取调用方法的方式替代掉直接访问的方式来完成对属性的访问。)
当有了Phone数据类型的变量后,我们就可以使用Phone类中的属性了。对属性的访问我们来演示一下,如下所示:
public class Test {
public static void main(String[] args) {
//定义了一个Phone类型的变量p
Phone p = new Phone();
/*
* 通过p,使用Phone中的属性
*/
//访问p中的brand品牌属性
p.brand = "苹果X";
//访问p中的color颜色属性
p.color = "白色";
//访问p中的size尺寸大小属性
p.size = 6.5;
System.out.println("手机品牌为" + p.brand );
System.out.println("手机颜色为" + p.color );
System.out.println("手机尺寸大小为" + p.size );
}
}
下面以构造完全二叉树为例,再次理解自定义类:
树节点的构造为:
/**
* 构造树节点
*/
public class Tree {
//节点的值
int value;
//节点的左子节点
Tree left;
//节点的右子节点
Tree right;
//类的有参构造方法
public Tree(int j){
this.value=j;
}
}
完全二叉树的构造如下:
public class Main {
public static void main(String[] args) {
//以数组形式构造Test类的对象,tests是一个可以容纳了三个Test对象的一维数组
Tree[] tests = new Tree[10];
//遍历数组的长度,分别进行赋值
for(int i=0;i<tests.length;i++