静态方法只能访问静态,非静态方法可以访问所有,静态中没有this关键字
被static修饰的成员变量,叫做静态变量
特点:
- 被该类所有对象共享
- 不属于对象,属于类
- 随着类的加载而存在,优先于对象存在
调用方式:
- 类名调用
- 对象名调用
下面是Student类的创建
import javax.sound.midi.Soundbank;
import java.sql.SQLOutput;
public class Student {
private String name;
private int age;
private String gender;
public static String teacherName;
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 + "}";
}
public void study(){
System.out.println(name+"正在学习!");
}
public void show(){
System.out.println("name:"+name+","+"age:"+age+","+"gender:"+gender+","+"teacherName:"+teacherName);
}
}
下面是对该类的测试详情:
public class StudentTest {
public static void main(String[] args) {
Student.teacherName = "张益达老师";
Student s1 = new Student();
s1.setName("张三");
s1.setAge(18);
s1.setGender("男");
// s1.teacherName = "张益达老师";
s1.study();
s1.show();
Student s2 = new Student();
s2.setName("小美");
s2.setAge(21);
s2.setGender("男");
s2.study();
s2.show();
}
}
被static修饰的成员方法,叫做静态方法
特点:
- 多用在测试类和工具类
- javabean类很少会用
调用方式:
- 类名调用
- 对象名调用