我们可以把类分为两种:
1. 一种是java中已经定义好的类,如之前用过的Scanner类、Random类,这些我们直接拿过来用就可以了。
2. 另一种是需要我们自己去定义的类,我们可以在类中定义多个方法和属性来供我们实际的使用。
什么是类呢?在java中,我们可以将现实生活中的事物通过描述来写成代码,我们可以自定义类来描述生活中的事物。比如我们可以将人进行描述,人的姓名,年龄,性别都是人的特有属性,可以在自定义的类中通过变量来进行描述。人会吃饭,睡觉,学习等基本功能,我们可以在自定义的类中使用定义方法的方式来定义这些特有的功能。
定义类的格式
public class 类名{
定义属性:
事物的基本特征,可以通过变量来定义属性,比如人的姓名:private String name = “张飞”;
修饰符 数据类型 变量名 = 值;
定义方法:
用来定义该事物的具体功能的。
修饰符 返回值类型 方法名(参数列表){
}
}
下面通过一段代码来演示类怎么定义:
/* 定义一个类,来描述手机这个事物 */ //定义一个手机类 public class Phone{ //定义手机的属性内容:品牌、颜色、大小等 String brand; String color; double size; }
/* 定义手机类的测试类,用来测试手机类中的功能 */ //定义测试类 public class PhoneTest{ public static void main(String[] args){ //创建手机类的对象 Phone p = new Phone(); //通过对象名.的方式来调用手机类中的属性并进行赋值操作 p.brand = "一加3T"; p.color = "星空蓝"; p.size = 5; //获取手机的信息 System.out.println("型号:"+p.brand+",颜色:"+p.color+",尺寸:"+p.size); } }
运行结果:
自定义类的练习
定义下面的类,并测试:
电饭锅,包含属性(品牌、容量大小、颜色等)
汽车,包含属性(品牌、排量、类型等)
学生,包含属性(姓名,年龄,性别等)
/* 需求:自定义定义电饭锅的类 思路:1、定义电饭锅类,类名ElectricBowl 2、描述电饭锅的属性,也就是定义电饭锅的属性变量 3、定义测试类,给属性赋值,并打印出来 */ //定义电饭锅类 public class ElectricBowl{ //定义电饭锅的属性变量 String brand; double size; String color; }
/* 需求:定义汽车类 思路:1、定义汽车类,类名Car 2、描述汽车的属性,也就是定义汽车的属性变量 3、定义测试类,给属性赋值,并打印出来 */ //定义汽车类 public class Car{ //描述汽车的属性变量 String brand; double displacement; String type; }
/* 定义学生类 */ public class Student{ //定义学生的属性变量 String name; int age; char sex; }
/* 定义测试类,同时定义三个事物(电饭锅、汽车、学生)的测试类 */ //定义测试类 public class Test{ public static void main(String[] args){ //创建电饭锅的对象 ElectricBowl eb = new ElectricBowl(); //对电饭锅的属性进行赋值 eb.brand = "美的"; eb.size = 1.5; eb.color = "白色"; //打印电饭锅的属性内容 System.out.println("品牌:"+eb.brand+",容量大小:"+eb.size+",颜色:"+eb.color); //创建汽车的对象 Car c = new Car(); //对汽车的属性进行赋值 c.brand = "雪佛兰"; c.displacement = 2.0; c.type = "科迈罗"; //打印汽车的属性内容 System.out.println("品牌:"+c.brand+",排量:"+c.displacement+",类型:"+c.type); //创建学生对象 Student s = new Student(); //对学生的属性内容进行赋值 s.name = "张丽"; s.age = 20; s.sex = '女'; //打印学生的属性内容 System.out.println("姓名:"+s.name+",年龄:"+s.age+",性别:"+s.sex); } }
运行结果:
ArrayList集合ArrayList集合也属于引用数据类型,它的定义步骤:
1. 导入包:java.util 包
2. 创建引用数据类型的变量,它的定义有点小区别
数据类型<存储数据的数据类型 > 变量名 = new 数据类型<存储数据的数据类型>();
比如要创建一个字符串类型的数据变量:ArrayList<String> arr = new ArrayList<String>;
3. 通过变量名.方法的方式来调用。
注意:ArrayList集合只存储引用数据类型,不存储基本数据类型,8个基本数据类型有其对应的8个引用数据类型。
ArrayList集合中的一些方法使用
1、add() 向集合中添加元素
2、get() 获取集合中的元素
3、size() 获取集合的长度
下面的一段代码演示了这些方法的使用:
/* ArrayList集合的方法使用 */ //导入ArrayList的包 import java.util.ArrayList; public class ArrayListDemo{ public static void main(String[] args){ //创建ArrayList集合的字符串引用变量 ArrayList<String> array = new ArrayList<String>(); //调用add方法向集合中添加字符串 array.add("Hello"); array.add("Java"); array.add("你好"); //调用方法获取集合的长度 System.out.println("该集合的长度是:"+array.size()); //调用方法通过索引获取集合内的元素内容 System.out.println(array.get(0)); System.out.println(array.get(1)); System.out.println(array.get(2)); } }
运行结果:
ArrayList集合遍历
ArrayList集合的遍历方式和数组遍历方式差不多,都需要使用for循环,下面通过一段代码来演示集合的遍历:
/* ArrayList集合的遍历 */ //导入包 import java.util.ArrayList; public class ArrayList_1{ public static void main(String[] args){ //创建整数集合的引用型变量 ArrayList<Integer> array = new ArrayList<Integer>(); //给该集合添加数值 array.add(123); array.add(456); array.add(789); //通过遍历来对该集合内的数据进行获取:有两个方法在里面:size()、get() for(int i=0;i<array.size();i++){ System.out.println(array.get(i)); } } }
ArrayList集合的其他一些方法使用
add(int 索引,要添加的元素) 给指定索引添加内容
set(int 索引,修改后的元素内容) 在指定索引处修改内容
remove(int 索引) 删除指定索引上的元素
clear() 清空集合中的所有元素
下面的代码演示了这些方法的使用情况:
/* ArrayList集合的其他方法 */ //导入包 import java.util.ArrayList; public class ArrayList_2{ public static void main(String[] args){ //创建整数集合的引用类型变量 ArrayList<Integer> array = new ArrayList<Integer>(); //给集合添加内容 array.add(21); array.add(78); array.add(45); //给指定索引添加元素 array.add(1,8); //在指定索引出修改元素 array.set(0,6); //删除指定索引上的内容 array.remove(1); //清空集合中的所有元素 array.clear(); //遍历集合元素,并把元素进行获取 for(int i=0;i<array.size();i++){ System.out.println(array.get(i)); } } }