1. 自定义数据类型概述
任何编程语言都需要将现实生活中的事物抽象成代码。这时可以使用自定义的数据类型(类)来描述(映射)现实事物。
类就是数据类型,与之前学习的所有引用数据类型相同,自定义类也是一种数据类型。只是自定义类型并非Java为我们预先提供好的类型,而是我们自己定义的一种引用数据类型用来描述一个事物。
2. 类的定义格式及使用格式
代码映射现实事物的过程就是定义类的过程。每个成员变量与要描述的事物属性变量名对应,数据类型对应。
这时,我们便可以将一个事物的多个属性值组织成一个完整的事物作为操作单位。
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
3. 自定义类型注意事项与内存图
这里完成的是不完整的自定义类型,更为完整的自定义类定义方式会在面向对象时详细解释。
与引用类型数组类似,同为引用类型的自定义类型直接打印对象的引用变量,结果为对象地址值,这里可以通过内存图简单解释。
4. ArrayList集合概述
虽然在Java中数组是运算速度最快的容器,但是在实际开发过程中,使用最频繁的数据容器并不是数组,而是ArrayList集合。
ArrayList是Java集合框架体系(Java Collections Framework)中的一员,ArrayList与数组类似,均将元素从0开始编号,但是它比数组更方便,长度可变就是方便处之一,并且集合与数组访问数据的方式也不同,集合可以调用功能强大的方法来满足不同需求。
5. ArrayList集合的使用格式
ArrayList同为引用类型,符合引用类型的使用方式,如下:
导包:import java.util.ArrayList;
创建对象:
与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型:
类名<集合内元素类型>变量 = new类名<集合内元素类型>();
ArrayList<String> xxXX= new ArrayList<String>();
注意:集合中只能存储引用数据类型,存储基本类型时,存储的类型为对应每个基本类型对应的引用数据。
int Integer
double Double
char Character
ArrayList<Integer> yyYY= new ArrayList<Integer>();
ArrayList<Double> zzZZ= new ArrayList< Double >();
调用方法:
public boolean add(元素类型 e) 直接向集合添加元素
public int size() 获取集合长度
public 元素类型 get(int index) 根据指定索引获取集合元素
public 元素类型 remove(int index) 根据指定索引删除集合元素
public元素类型set(int index, 元素类型obj)修改指定索引出的值为新值
如:
ArrayList<String> list= new ArrayList<String>();
String s = “我爱Java”;
String s2 = “我喜欢Java”;
list.add(s); //向集合中添加索引为0的元素
list.add(s); //向集合中添加索引为1的元素
list.add(“我与Java在一起”); //向集合中添加索引为2的元素
String data = list.get(1); //获取集合中索引为1的元素
System.out.println(data): //打印出刚刚获取到的值
for(int i=0 ; i<list.size() ; i++) { //遍历集合
System.out.println(list.get(i));
}
list.remove(1); //删除索引为1的元素