static中文意思:静态的
static是和对象无关的。
1.Java中的静态
修饰成员变量 静态属性
修饰成员方法 静态方法
修饰代码块 静态代码块
案例1
class Man {
static String name;//静态的属性 和对象无关的
//静态方法
public static void eat () {
System.out.println("吃饭喝酒");
}
//静态代码块
static {
System.out.println("嘻嘻");
}
}
public class Demo1 {
public static void main(String[] args) {
//咋使用 类.静态的属性
Man.name = "狗蛋";
System.out.println(Man.name);
//使用 类.静态方法名字()
Man.eat();
}
}
static修饰成员变量
语法格式:static 数据类型 变量名; 例如:static string name;
注意事项:
使用static修饰的变量叫静态变量
代码中对象还没有创建的时候,如果加载了类,static修饰的属性已经存在了,和对象没有关系
案例2
class Person {
String name;
int age;
static String country;
}
public class Demo2 {
public static void main(String[] args) {
Person s = new Person
//用s方法调属性并给赋值
s.name = "张三";
s.age = 23;
Person.country = "中国";
//The static field Person.country
//should be accessed in a static way
System.out.println(s.country);//中国
System.out.println(Person.country);//in a static way
s.country = "PRC";
System.out.println(Person.country);//PRC
}
}
总结
类.静态属性
static修饰成员方法
静态方法语法格式
public static 返回值 方法名字(参数){}
调用静态方法:
类.方法名字();
案例3
class Dog {
public void eat () {
System.out.println("普通的成员方法");
}
public static void sleep () {
System.out.println("静态方法");
}
}
public class Demo3 {
public static void main(String[] args) {
Dog.sleep();
//Dog.eat();只能拿对象来调用这个方法eat
Demo3.test();
}
public static void test () {
System.out.println("嘻嘻");
}
}
static 修饰代码块
静态代码块的语法格式:
static{语句体}
只要类加载,静态代码块就会执行而且是优先执行
执行顺序: 静态代码块-》构造代码块-》构造方法
class Cat {
public Cat () {
System.out.println("无参构造方法");
}
{
System.out.println("构造代码块");
}
static {
System.out.println("静态的代码块");
}
}
public class Demo4 {
public static void main(String[] args) {
Cat cat = new Cat();
}
}