在这里我们将用代码进行讲解
static修饰属性:编写两个类
A类:
public class A {
//成员属性
String name;
//静态属性
static String age;
}
测试类Test:
public class Test01 {
public static void main(String[] args) {
A a = new A();
A a1 = new A();
a.name="aaa";
a1.name="bbb";
System.out.println(a.name);//aaa
System.out.println(a1.name);//bbb
a.age="12";
System.out.println(a.age);//12
a1.age="22";
System.out.println(a.age);//22
System.out.println(a1.age);//22
}
}
小结:
知识点:static修饰属性
注意:静态属性属于类属性,直接用类名调用
成员属性:属于对象属性,每一个对象独有一份
静态属性:属于类属性,所有对象都共享一份
static修饰方法:属于静态方法,使用类名调用
MyArrays类:
public class MyArrays {
public static void sort(int[] array){
for (int i=0;i<array.length-1;i++){
for (int j=0;j<array.length-i-1;j++){
if (array[j]>array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
}
测试类Test类:
public class Test01 {
public static void main(String[] args) {
int[] arr = {79,81,23,18,22};
MyArrays.sort(arr);
for (Integer i:arr){
System.out.println(i);//排序 - 18,22,23,79,81
}
}
}
小结:static修饰方法时,使用类名.方法名调用,比如诸多的工具类
静态代码块:
static{
....
}
A类:
public class A {
String str1;
static String str2;
//静态代码块
static {
// str1 = "Throwanexception5";//报错了
str2 = "Throwanexception6";
System.out.println(str2);
}
//代码块
{
str1 = "Throwanexception3";
str2 = "Throwanexception4";
System.out.println(str1);
System.out.println(str2);
}
//构造方法
public A(){
str1 = "Throwanexception1";
str2 = "Throwanexception2";
System.out.println(str1);
System.out.println(str2);
}
}
测试类:
public class Test {
public static void main(String[] args) {
A a1 = new A();
A a2 = new A();
}
}
运行时截图:
小结:
构造方法:在对象创建时调用的,既可以初始化成员变量也可以初始化静态变量
代码块:创建对象时运行,既可以初始化成员变量也可以初始化静态变量
静态代码块:类加载到方法区时调用,只能初始化静态变量