-
static表示静态【一个村的人用一口井】
- 静态对象随着类的加载而加载,优于对象出现的
-
静态变量:修饰成员变量
- 特点:被所有对象共享
- 调用方法
- 类名调用**
- 对象名调用
-
静态方法;修饰成员方法
- 特点:多用在测试类和工具类
- 调用方法
- 类名调用**
- 对象名调用
- 案例1:
- 需求
- 1.学生类:姓名、年龄
- 2.测试类:集合存放学生信息
- 3.工具类:求最大的年龄
- 学生类
package com.day2;public class Student {private String name;private int age;public Student() { }public Student(String name, int age) {this.name = name;this.age = age;}public String getName() { return name; }public void setName(String name) { this.name = name; }public int getAge() { return age; }public void setAge(int age) { this.age = age; } }
- 工具类
package com.day2;import java.util.ArrayList;public class StudentUtil {private StudentUtil(){}//静态方法static int getStudentAgeMax(ArrayList<Student> list){int maxage = 0;for (int i = 0; i < list.size(); i++) {int age = list.get(i).getAge();if (age > maxage){maxage = age;}}return maxage;} }
- 测试类
package com.day2;import java.util.ArrayList;public class StudentTset {public static void main(String[] args) {Student student1 = new Student("张三",15);Student student2 = new Student("李四",18);Student student3 = new Student("西卡",56);Student student4 = new Student("市民卡",25);ArrayList<Student> list = new ArrayList<>();list.add(student1);list.add(student2);list.add(student3);list.add(student4);int studentAgeMax = StudentUtil.getStudentAgeMax(list);System.out.println(studentAgeMax);} }
- 需求
-
总结:
- 静态方法中,只能访问静态
- 非静态方法可以访问所有
- 非静态方法可以访问静态变量或者静态方法
- 也可以访问非静态的成员变量和非静态的成员方
- 静态方法中没有this关键字