持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第5天
6.1 包装类
在java里的类型可以分为两大类:值类型与引用类型
*值类型就是基本数据类型(int,char,float,long,short,bolean,byte,double)
*引用类型,是指除了基本的变量类型之外的所有类型(如通过 class 定义的类型)。
所有的类型在内存中都拥有一定的存储空间(形参在使用的时候也会分配存储空间,在调用完方法之后,这块存储空间会自动消失),值类型只有一块存储空间(分配在stack,栈)而引用类型有两块存储空间(一块在stack中,一块在heap中,堆)。
所以为了解决八种基本类型不能当成Object类型变量使用的问题,java提出了Wrapper Class 的概念
| 基 本 数 据 类 型 | 包 装 类 |
|---|---|
| byte | Byte |
| short | Short |
| int | Interger |
| long | Long |
| char | Character |
| float | Float |
| double | Double |
| boolean | Boolean |
6.1.1 toString
作用就是:描述自身状况的一个函数,但是如果要使用它需要重新自定义toString方法,如下。
private double weight;
private String color;
public Apple(){ }
public Apple(String color, double weight)
{
this.color=color;
this.weight=weight;
}
//此处省略color和weight的setter和getter方法
.......
//
public void info() {
System.out.println("我是一个水果!重"+weight+"g");
}
public String toString()
{
return"this is an"+ color+"apple"+"重"+weight;
}
public static void main(String[] args) {
var p=new Apple();
p.setColor("黄");
p.setWeight(33);
//p.info();//输出:我是一个水果!重33.0g
System.out.println(p);//输出:this is an黄apple重33.0
}
}
注意,代码第三行有一个无参构造器,因为给p定义的是一个Apple(),是无参的。
如果将代码改为,var p=new Apple("yellow",33),则无需定义一个无参构造器。
6.1.2 ==和equals方法
equals的使用方法:str1.equals(str2)