一、介绍
这里我们介绍的自定义数据类型就是定义我们JAVA中的类,类是我们JAVA编程的基本的单位,写好了类,就相当于学好JAVA的基本构成。
二、内容
1.1 自定义数据类型概述
任何编程语言都需要将现实生活中的事物抽象成代码。这时可以使用自定义的数据类型(类)来描述(映射)现实事物。
类就是数据类型,与之前学习的所有引用数据类型相同,自定义类也是一种数据类型。只是自定义类型并非Java为我们预先提供好的类型,而是我们自己定义的一种引用数据类型用来描述一个事物。
1.2 类的定义及使用
1.2.1 类的定义格式及使用格式
代码映射现实事物的过程就是定义类的过程。每个成员变量与要描述的事物属性变量名对应,数据类型对应。
这时,我们便可以将一个事物的多个属性值组织成一个完整的事物作为操作单位。
a) 类的定义格式
创建文件,与类名相同
public class 类名{
数据类型 属性名称;
数据类型 属性名称2;
…
}
如:
class Person {
String name;
int age;
…
}
b) 类的使用格式
类在定义出来之后,必须被使用,不使用虽然没有语法错误,但是没有意义。
自定义类的使用方式与以往的引用数据类型完全相同,如下:
导包:我们将所有的类放到同一个文件夹下,可以避免导包。
创建对象:数据类型 变量名 = new 数据类型();
调用方法: 由于我们定义的类型并不完整,所以现在不涉及调用方法,而是访问属性访问属性:对象名. 属性名 (这是当前的方式,后期会采取调用方法的方式替代掉直接访问的方式来完成对属性的访问。)
如:
Person p = new Person();
p.name = “AngelaBaby”;
p.age = 18;
Person p2 = new Person();
p2.name = “黄晓明”;
p2.age = 36;
System.out.println(p.name); //打印结果:AngelaBaby
System.out.println(p.age); //打印结果:18
System.out.println(p2.name); //打印结果:黄晓明
System.out.println(p2.age); //打印结果:36
1.2.2 自定义类型练习
我们可以将现实生活中的任何事物抽象成一个类,请自定义并使用一种数据类型。如人类、动物类、汽车类、衣服类、玩具类等。
/*
自定义类型 人类
属性
姓名 String
年龄 int
性别 String
身高 double
是否热爱java boolean
*/
public class Person
{
//姓名
String name;
//年龄
int age;
//性别
String sex;
//身高
double height;
//是否喜欢java
boolean isLoveJava;
}
/*
测试自定义类型 Person类
注意事项
自定义类就是引用数据类型 每个对象的属性都有默认值
static修饰的方法 只能调用static修饰的方法或成员变量
指的是
在同一个类中直接访问时,必须使用static修饰
如果通过对象名.方法名 或者 对象名.属性名的方式访问 不需要static饰
*/
public class Test_Person{
public static void main(String[] args){
Person p = new Person();
p.name = "柳岩";
p.age = 38;
p.sex = "女";
p.height = 1.65;
p.isLoveJava = true;
System.out.println("姓名:"+p.name);
System.out.println("年龄:"+p.age);
System.out.println("性别:"+p.sex);
System.out.println("身高:"+p.height);
System.out.println("是否喜欢java:"+p.isLoveJava);
System.out.println("-------------------");
Person p2 = new Person();
System.out.println(p2);
System.out.println(p2.name);
System.out.println("年龄:"+p2.age);
System.out.println("性别:"+p2.sex);
System.out.println("身高:"+p2.height);
System.out.println("是否喜欢java:"+p2.isLoveJava);
}
}
/*
自定义数据类型 商品类
商品属性
商品编号 String
商品名称 String
商品单价 double
商品数量 int
商品金额 double
创建文件,与类名相同
public class 类名{
数据类型 属性名称;
数据类型 属性名称2;
…
}
*/
public class GoodsItem
{
//商品编号
String id;
//商品名称
String name;
//商品单价
double price;
//商品数量
int number;
//商品金额
double money;
}
/*
测试类 测试自定义类型商品类
导包 测试类 与 被测试类在同一个文件夹下 不需要导包
创建对象 数据类型 变量名 = new 数据类型();
调用方法 没有方法不调用
访问属性
变量名.属性名 获取值/赋值
*/
public class Test_GoodsItem{
public static void main(String[] args)
{
GoodsItem gs = new GoodsItem();
gs.id = "01";
gs.name = "少林寺酥饼核桃";
gs.price = 15.50;
gs.number = 22;
gs.money= gs.price * gs.number;
String id= gs.id;
System.out.println(id);
System.out.println(gs.money+20.01);
}
}
1.2.3 自定义类型注意事项与内存图
这里完成的是不完整的自定义类型,更为完整的自定义类定义方式会在面向对象时详细解释。
与引用类型数组类似,同为引用类型的自定义类型直接打印对象的引用变量,结果为对象地址值,这里可以通过内存图简单解释。