常宁市建设局网站,长沙旅游商贸职业技术学院,网站维护要做哪些工作,内部网站的作用1 static 静态变量
1.1 静态变量的使用
static变量也称作静态变量#xff0c;也叫做类变量
静态变量被所有的对象所共享#xff0c;在内存中只有一个副本
当且仅当在类初次加载时会被初始化
静态变量属于类
通过类名就可以直接调用静态变量
也可以通过对象名.静态变量…1 static 静态变量
1.1 静态变量的使用
static变量也称作静态变量也叫做类变量
静态变量被所有的对象所共享在内存中只有一个副本
当且仅当在类初次加载时会被初始化
静态变量属于类
通过类名就可以直接调用静态变量
也可以通过对象名.静态变量名调用
static 变量 public class Student{private String name;private static String schoolName;private static int count;public Student(String name){this.name name;count;}public void showStuInfo(){System.out.println(学生的姓名是 this.name ,学校的名字是 Student.schoolName);}public static void main(String[] args){Student.schoolName 实验中学;Student s1 new Student(张三);Student s2 new Student(李四);Student s3 new Student(王五);s1.showStuInfo();s2.showStuInfo();s3.showStuInfo();System.out.println(学生的数量是 Student.count);System.out.println(学生的数量是 s1.count);}
}
1.2 实例变量和静态变量区别
静态变量属于类该类不生产对象通过类名就可以调用静态变量
实例变量属于该类的对象必须产生该类的对象才能调用实例变量。
静态变量随着类的加载存在于方法区中
实例变量随着对象的建立存在于堆内存中。
静态变量在程序开始时创建在程序结束时销毁
实例变量在对象创建时创建在对象被销毁时销毁。
2 静态方法
static修饰的方法叫静态方法也叫做类方法
静态方法中不能直接访问非静态成员变量和非静态成员方法
静态方法中不能使用 this 关键字
通过类名可以直接调用静态方法
也可以通过对象名.静态方法名调用
静态方法和静态方法访问 public class Student{private String name;private int age;private int studentId;private static String classRoom;public static void showClassRoom(){//静态方法中不能使用this关键字System.out.println(教室3301)}public static void main(String[] args){Student.showClassRoom();}
}
3 静态块
3.1 静态块的使用
静态代码块在类加载时执行并且只执行一次
静态代码块中不能有this关键字
静态块可以有多个按照顺序执行 public class Emp{static{System.out.println(欢迎);}static{System.out.println(再次光临);}
}
3.2 静态块、匿名构造块、构造函数
执行顺序 public class Son{static{System.out.println(静态块1);}private String name;public Son(String name){this.name name;System.out.println(构造方法);}{System.out.println(匿名构造块);}static{System.out.println(静态块3);}public static void main(String[] args){Son s1 new Son(张三);Son s2 new Son(李四);Son s3 new Son(王五);}
}
输出如下 静态块1 静态块3 匿名构造块 构造方法 匿名构造块 构造方法 匿名构造块 构造方法 执行的顺序为静态块 -- 匿名块 -- 构造方法
4 静态引入
如果我们需要频繁引用某一个类下的方法比如 java.lang.Math 类下相关的数据计算类或者是用于进行单元测试的 org.junit.Assert 类下各种用于断言的方法就可以采用静态引用从而可以省去对前边类名的重复书写。 import static java.lang.Math.random;
import static org.junit.Assert.assertTrue;public class test {public static void main(String[] args) {double random random(); //Math中的方法System.out.println(random);assertTrue(random 0.3); //Assert中的方法new test().normalMethod();}//静态引入的方法在普通方法中同样使用public void normalMethod(){double random random();System.out.println(random);assertTrue(random 0.7);}
}
通过静态引入的方法在普通方法和静态方法中都可以使用。