工具类的类名要见名知意, 比如要写一个类专门进行数学计算, 那么这个类的类名可以取为 Math, 如果要写一个类专门操作数组, 那么这个类的类名可以取为 ArrUtil.
不要创建工具类的对象,因此需要私有化工具类的构造方法。工具类不是用来创建一类事物的, 创建它的对象没有任何意义. 例如对于 Javabean 类 Student, 描述了学生, 创建这个类的对象即学生是有实际意义的, 创建一个 Student 类的对象就表示一个学生.
工具类的方法都定义为静态的,方便调用。例如:
public class ArrUtil {
private ArrUtil(){}
public static int getMax(...){...} // 求最大值
public static int getMin(...){...} // 求最小值
public static int getSum(...){...} // 求和
public static int getAvg(...){...} // 求平均值
}
练习:
定义数组工具类
需求:在实际开发中,经常会遇到一些数组使用的工具类。
请按照如下要求编写一个数组的工具类:ArrayUtil
提供一个工具类方法 printArr,用于返回整数数组的内容。
返回的字符串格式如:[10, 20, 50, 34, 100](只考虑整数数组,且只考虑一维数组)
提供这样一个工具方法 getAerage,用于返回平均分。(只考虑浮点型数组,且只考虑一维数组)
定义一个测试类 TestDemo,调用该工具类的工具方法,并返回结果。
工具类:
public class ArrayUtil {
// 私有化构造方法,不让外界创建其对象
private ArrayUtil() {
}
// 其他方法定义为静态的,方便调用
// 拼接字符串并返回,只考虑整数数组,只考虑一维数组
public static String printArr(int[] arr) {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
sb.append(arr[i] + "]");
} else {
sb.append(arr[i]).append(", ");
}
}
return sb.toString();
}
// 返回平均值,只考虑浮点型数组,只考虑一维数组
public static double getAverage(double[] arr) {
double sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
double average = sum / arr.length;
return average;
}
}
测试类:
public class TestDemo {
public static void main(String[] args) {
// 测试工具类中的两个方法是否正确
int[] arr1 = { 1, 2, 3, 4, 5 };
String str = ArrayUtil.printArr(arr1);
System.out.println(str);
double[] arr2 = { 1.1, 2.2, 3.3, 4.4, 5.5 };
double average = ArrayUtil.getAverage(arr2);
System.out.println(average);
}
}
执行结果:
[1, 2, 3, 4, 5]
3.3
练习:
定义学生工具类
需求:定义一个集合,用于存储 3 个学生对象。
学生类的属性为:name、age、gender。
定义一个工具类,用于获取集合中最大学生的年龄。
Javabean 类:
public class Student {
private String name;
private int age;
private String gender;
public Student() {
}
public Student(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取
* @return age
*/
public int getAge() {
return age;
}
/**
* 设置
* @param age
*/
public void setAge(int age) {
this.age = age;
}
/**
* 获取
* @return gender
*/
public String getGender() {
return gender;
}
/**
* 设置
* @param gender
*/
public void setGender(String gender) {
this.gender = gender;
}
public String toString() {
return "Student{name = " + name + ", age = " + age + ", gender = " + gender + "}";
}
}
工具类:
import java.util.ArrayList;
public class StudentUtil {
// 私有化构造方法
private StudentUtil() {
}
// 静态方法
public static int getMaxAge(ArrayList<Student> list) {
int max = list.get(0).getAge();
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
int currentAge = stu.getAge();
max = Math.max(max, currentAge);
}
return max;
}
}
测试类:
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
// 创建一个集合用来存储学生对象
ArrayList<Student> list = new ArrayList<>();
// 创建三个学生对象
Student stu1 = new Student("zhangsan", 23, "男");
Student stu2 = new Student("lisi", 24, "女");
Student stu3 = new Student("wangwu", 25, "男");
// 把学生对象添加到集合中
list.add(stu1);
list.add(stu2);
list.add(stu3);
// 调用工具类的方法
int maxAge = StudentUtil.getMaxAge(list);
System.out.println(maxAge);
}
}
执行结果:
25
标签:name,int,gender,age,工具,public,String
From: https://www.cnblogs.com/Chengkai730/p/18401995