Java-static关键字修饰变量 方法 初始化块
原创约 611 字大约 2 分钟...
初始化块.md
102-Java-static关键字修饰变量&方法&注意
本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。
static: 静态的,该类的所有对象共享。
- static关键字
- static可以修饰的元素
示例 Chinese.java
class Chinese {
String name;
static String country;//属性
String age;
static{//代码块
System.out.println("你好!");
}
static void sing(){//方法
System.out.pringln("北京欢迎你!");
}
}
需要注意的问题
- 只能修饰类成员,不能修饰局部变量。
静态变量
- 所有对象共享
- 也称为类变量
- 用static修饰的成员变量,它们在类被载入时创建,只要类存在,static变量就存在(参考java虚拟机视频)
- 两种方式访问:
- 直接访问:类名.属性;
- 实例化后访问:对象名.属性
- 所有对象共享
示例代码:
package static关键字;
public class Order {
// public static Order() {//static 不能修饰构造方法
//
// }
/**
* 所有静态变量,通过类名,变量名可以调用Order.count;
* 也可以通过该类的实例化对象来访问到o1.count;
*/
static int count = 0;//订单的数量
public Order() {
count++;
}
/**
* 类加载器将Order.class加载进内存时,
* 会执行静态初始化块,并且只执行一次
*/
static {
System.out.println("static{}");
}
/**
* 所有静态方法,通过类名,方法名可以调用Order.sort();
* 也可以通过该类的实例化对象来访问到o1.sort();
*/
static void sort(Order[] orders) {
//id++;//不行 static方法不能访问非静态属性
//getId();//不行 static方法不能访问非静态方法
System.out.println("sort(Order[] orders)");
}
private int id;//订单的单号
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
package static关键字;
public class Test {
public static void main(String[] args) {
Order o1 = new Order();
Order o2 = new Order();
Order o3 = new Order();
System.out.println(Order.count);//3
System.out.println(o1.count);//3
System.out.println(o2.count);//3
System.out.println(o3.count);//3
Order.sort(new Order[3]);//sort(Order[] orders)
o1.sort(new Order[3]);//sort(Order[] orders)
o2.sort(new Order[3]);//sort(Order[] orders)
o3.sort(new Order[3]);//sort(Order[] orders)
}
}

分割线
相关信息
以上就是我关于 Java-static关键字修饰变量&方法&初始化块 知识点的整理与总结的全部内容,另附源码
Powered by Waline v2.15.4