12-面向对象进阶
static
- 含义:static表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量;被static修饰的成员变量叫做静态变量,被修饰的成员方法叫做静态方法
- 特点:被该类所有对象共享;跟对象无关,随着类的加载而加载,优先于对象存在
- 调用方式:类名调用(推荐),对象名调用
- static内存:在堆内存中开辟的静态区,存放static静态变量
- 语法::public static String teacherName;
工具类
-
含义:工具类就是能帮我们做一些事情,但是不描述任何事物的类
-
注意:
- 类名见名知意
- 私有化构造方法
- 方法定义为静态
-
例
package io.xiaoduo.staticPackage;import java.util.ArrayList;public class Utils {private Utils() {}// 打印数组public static String printArr(int[] arr) {StringBuilder result = new StringBuilder("[");for (int i = 0; i < arr.length; i++) {if (i == arr.length - 1) {result.append(arr[i]);} else {result.append(arr[i]).append(", ");}}result.append("]");return result.toString();}// 获取平均分public static double getAerAge(double[] arr) {double result = 0.0;for (int i = 0; i < arr.length; i++) {result += arr[i];}return result / arr.length;}// 求集合中最大年龄public static int getMaxAge(ArrayList<Student> stuList) {int max = 0;for (int i = 0; i < stuList.size(); i++) {if (stuList.get(i).getAge() > max) {max = stuList.get(i).getAge();}}return max;} }
static的注意事项
- 静态方法只能访问静态变量和静态方法
- 非静态方法可以访问所有,非静态和静态都可以访问
- 静态方法中没有this关键字
- 非静态方法中的this是由虚拟机赋值的,在形参的最前面,是隐藏的,指向当前方法的调用者