一、引用数据类型
1、类的类型
类的类型为两种:
- 第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用。
- 第二种,我们自己创建的类,按照类的定义标准,可以在类中包含多个方法与属性,来供我们使用。
2、类的定义
- 类的定义格式
创建java文件,与类名相同
public class 类名{
数据类型 属性名称1;
数据类型 属性名称2;
…
}
通过类的定义格式,来进行手机类的描述,如下所示
public class Phone {
/*
* 属性
*/
String brand;// 品牌型号
String color;// 颜色
double size; // 尺寸大小
}
3、类的使用格式
格式如下:
导包:我们将所有的类放到同一个文件夹下,可以避免导包。
创建对象:数据类型 变量名 = new 数据类型();
调用方法:目前我们定义的自定义类不涉及方法,只是属性(自定义类中的方法部分在面向对象部分讲解)
访问属性:变量名.属性 (这是当前的方式,后期会采取调用方法的方式替代掉直接访问的方式来完成对属性的访问。)
4、自定义类型注意事项与内存图
例子:
public class Test {
public static void main(String[] args) {
//定义了一个Phone类型的变量p
Phone p = new Phone();
/*
* 通过p,使用Phone中的属性
*/
//访问p中的brand品牌属性
p.brand = "苹果6s";[L1]
//访问p中的color颜色属性
p.color = "白色";[L2]
//访问p中的size尺寸大小属性
p.size = 5.5;[L3]
System.out.println("手机品牌为" + p.brand[L4] );
System.out.println("手机颜色为" + p.color[L5] );
System.out.println("手机尺寸大小为" + p.size[L6] );
}
}
- 通过 p.属性名 就可以对属性进行操作
- 与引用类型数组类似,引用类型的自定义类型的变量,直接变量时,结果为对象地址值,这里可以通过内存图简单解释。
二、ArrayList集合
ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类)。在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。
1、集合创建
导包:import java.util.ArrayList;
创建对象:与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型:
ArrayList<要存储元素的数据类型> 变量名 = new ArrayList<要存储元素的数据类型>();
- 集合中存储的元素,只能为<>括号中指定的数据类型元素;
- “<要存储元素的数据类型>”中的数据类型必须是引用数据类型,不能是基本数据类型;
下面给出8种基本数据类型所对应的引用数据类型表示形式:
基本数据类型 | 对应的引用数据类型表示形式 |
byte | Byte |
short | Short |
Int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
我们通过举几个例子,来明确集合的创建方式:
- 存储String类型的元素
ArrayList<String> list = new ArrayList<String>();
- 存储int类型的数据
ArrayList<Integer> list = new ArrayList<Integer>();
- 存储Phone类型的数据
ArrayList<Phone> list = new ArrayList<Phone>();
2、集合常用方法
ArrayList集合提供的一些常用方法,如下表:
接下来,我们来学习下ArrayList集合提供的一些常用方法,如下表:
方法声明 | 功能描述 |
boolean add(Object obj) | 将指定元素obj追加到集合的末尾 |
Object get(int index) | 返回集合中指定位置上的元素 |
int size() | 返回集合中的元素个数 |
ArrayList集合提供的一些常用方法,如下表:
方法声明 | 功能描述 |
boolean add(int index, Object obj) | 将指定元素obj插入到集合中指定的位置 |
Object remve(int index) | 从集合中删除指定index处的元素,返回该元素 |
void clear() | 清空集合中所有元素 |
Object set(int index, Object obj) | 用指定元素obj替代集合中指定位置上的元素 |
- boolean add(int index, Object obj)
- 功能:在集合中指定index位置,添加新元素obj
- 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用add(1,“javaWeb”)后,集合list中的元素为[“java”,“javaWeb”,“JavaEE”]。
- Object set(int index, Object obj)
- 功能:用指定元素obj替代集合中指定index位置的元素
- 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用set(0,“javaWeb”)后,集合list中的元素为[“javaWeb”,“JavaEE”]。
- Object remve(int index)
- 功能:从集合中删除指定index处的元素,返回该元素
- 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用remove(0)后,集合list中的元素为[“JavaEE”],返回值为“java”。
- void clear()
- 功能:清空集合中所有元素
- 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用clear()后,集合list中的元素为空[]。
通过代码演示上述方法的使用。ArrayListDemo01.java
import java.util.ArrayList;
public class ArrayListDemo01 {
public static void main(String[] args) {
// 创建ArrayList集合
ArrayList<String> list = new ArrayList<String>();
// 向集合中添加元素
list.add("stu1");
list.add("stu2");
list.add("stu3");
list.add("stu4");
// 获取集合中元素的个数
System.out.println("集合的长度:" + list.size());
// 取出并打印指定位置的元素
System.out.println("第1个元素是:" + list.get(0));
System.out.println("第2个元素是:" + list.get(1));
System.out.println("第3个元素是:" + list.get(2));
System.out.println("第4个元素是:" + list.get(3));
}
}
3、集合遍历
- import java.util.ArrayList;
- public class ArrayListDemo0 {
- public static void main(String[] args) {
- //创建ArrayList集合
- ArrayList<Integer> list = new ArrayList<Integer>();
- //添加元素到集合
- list.add(13);
- list.add(15);
- list.add(22);
- list.add(29);
- //遍历集合
- for (int i = 0; i < list.size()[L1] ; i++) {
- //通过索引,获取到集合中每个元素
- int n = list.get(i)[L2] ;
- System.out.println(n);
- }
- }
- }