1.静态变量
不同的类需要对同一个变量进行操作,就需要定义一个静态变量
public class Pool {
static public int water = 0;//这就是一个静态变量
public void outlet() {
if(water>=2) {
water-=2;
}
else {
water = 0;
}
}
public void inlet() {
water +=2;
}
public static void main(String[] args) {
Pool in = new Pool();
Pool out = new Pool();
System.out.println("水池中的水量为"+water);
System.out.println("向水池注水两次");
in.inlet();
in.inlet();
System.out.println("水池中的水量为"+water);
System.out.println("向水池抽水两次");
out.outlet();
out.outlet();
System.out.println("水池中的水量为"+water);
}
}
同一个类的不用实例对象,共用一个静态变量,如果一个对象将其修改,另一个对象的静态变量也会更改
public class StaticTest {
static int x;
int y;
public StaticTest(int x,int y) {
this.x = x;
this.y = y;
}
public static void main(String[] args) {
StaticTest a = new StaticTest(1, 2);
//StaticTest b = new StaticTest(12, 2);
System.out.println("a.x的值为"+a.x+"\n"+
"a.y的值为"+a.y);
StaticTest b = new StaticTest(12, 2);
System.out.println("b.x的值为"+b.x+"\n"+
"b.y的值为"+b.y);
}
}
2.静态常量
public class Graphy {
final static double PI = 3.1415926;//静态常量
public static void main(String[] args) {
Cricle a = new Cricle(2.0);
Qiu b = new Qiu(2.0);
}
}
class Cricle{//圆类
double radius;
double area;
public Cricle(double radius) {
this.radius = radius;
area = Graphy.PI*radius*radius;
System.out.println("圆的半径为"+radius);
System.out.println("圆的面积为="+area);
}
}
class Qiu{//球类
double radius;
double volume;
public Qiu(double radious) {
this.radius = radious;
volume = 4/3*Graphy.PI*radius*radius*radius;
System.out.println("圆的半径为"+radius);
System.out.println("球的体积为="+volume);
}
}
3.静态方法
public class StaticMethod {
static public void show() {//静态方法
System.out.println("这是一个静态方法A");
}
public static void main(String[] args) {
StaticMethod.show();
}
}
4.静态代码块
public class StaticTest1 {
static {
System.out.println("这里是一个静态代码块");
}
{
System.out.println("这里是非静态的代码块");
}
public StaticTest1() {
System.out.println("这里是构造方法");
}
public void method() {
System.out.println("这里是成员方法");
}
public static void main(String[] args) {
StaticTest1 test = new StaticTest1();
test.method();
}
}