1、static 用于修饰成员变量和成员方法
注意事项:
(1)被static的类可以被所有的对象共享
(2)可以直接使用类名来进行调用,静态的加载优先于对象,例如在对象之前就可定义,随着类的加载而加载
例子如下:
public class Test1 {
public static void main(String[] args) {
student set1 = new student();
set1.name = "刘亦菲 ";
set1.age = 18;
set1.grade = "岁 毕业于---学院";
set1.student();
student.age = 20;
student set2 = new student();
set2.name = "陈瑶 ";
//set2.age = 18;
set2.grade = "岁 毕业于---学院";
set2.student();
}
}
class student{
String name;
static int age;
String grade;
public void student() {
System.out.println(name + age + grade );
}
}
(3)当创建一个对象后给起变量赋值,再次创建另一个对象,加上static后其未添加的变量的值会和第一个对象的变量值一样,例子如下:
public class Test1 {
public static void main(String[] args) {
student set1 = new student();
set1.name = "刘亦菲 ";
set1.age = 18;
set1.grade = "岁 毕业于---学院";
set1.student();
student set2 = new student();
set2.name = "陈瑶 ";
//set2.age = 18;
set2.grade = "岁 毕业于---学院";
set2.student();
}
}
class student{
String name;
static int age;
String grade;
public void student() {
System.out.println(name + age + grade );
}
}
(4)成员变量和成员方法如果全部是带static静态类型的,
则不需要new一个对象,直接使用类进行赋值和调用
例如:
package creat_java;
public class Test1 {
public static void main(String[] args) {
student.name = "刘亦菲 ";
student.age = 18;
student.grade = " 毕业于---学院";
student.set();
}
}
class student{
static String name;
static int age;
static String grade;
public static void set() {
System.out.println(name + age + grade );
}
}
(5)静态的方法可以调用静态的方法
例子:
public class Test1 {
public static void main(String[] args) {
student.name = "刘亦菲 ";
student.age = 18;
student.grade = " 毕业于---学院";
student.set();
}
}
class student{
static String name;
static int age;
static String grade;
//被调用的一方
public static void set1() {
System.out.println("静态方法中调用静态方法");
}
//调用静态方法的一方
public static void set() {
System.out.println(name + age + grade );
set1();
}
}
(6)静态方法:
静态方法中可以调用静态方法和静态成员变量
不可以调用非静态成员方法和成员变量
静态所修饰的方法是随着类的加载而加载的,
类优先于对象
(7)非静态方法
可以调用静态方法和静态变量
可以调用非静态方法和非静态变量
非静态的方法是随着对象的调用而加载的。
(8)this
在非静态的方法中才会有this这个对象,其作用是
调用这个方法当前的对象