前一篇:
这一篇,我们开始去分享静态方法和静态字段
正文
在实例中,我们可以给实例定义不同的字段。实例字段的特点是,每个实例都有独立的字段,各个实例的同名字段互不影响。
public class Main {
public static void main(String[] args) {
Manto manto=new Manto();
Manto manto1=new Manto();
manto.setBirst("beijing");
manto1.setBirst("shanghai");
System.out.println(manto.getBirst());
System.out.println(manto1.getBirst());
}
}
class Manto {
public String birst;
public String getBirst() {
return birst;
}
public void setBirst(String birst) {
this.birst = birst;
}
}
结果
可以看到,实例化后的字段无论怎么修改都是不影响的。
那么如何定义静态的字段呢
public static int price;
如何使用呢
public class Main {
public static void main(String[] args) {
Manto manto=new Manto();
Manto manto1=new Manto();
manto.price=100;
System.out.println(manto1.price);
manto1.price=101;
System.out.println(manto.price);
}
}
class Manto {
public String birst;
public static int price;
public String getBirst() {
return birst;
}
public void setBirst(String birst) {
this.birst = birst;
}
}
定义后,可以直接赋值,修改manto的price,那么manto1的price是什么?看下结果
可以看到,静态字段,一个类的实例化后修改了静态字段,这个类的其他实例化对应的这个静态字段的值也会发生变化的。可以看到,静态字段不属于类实例独享的,而是共享的,有了静态字段,肯定有静态方法
如何定义静态方法呢
public static void setPrice(int price) {
Manto.price = price;
}
如何使用呢
public class Main {
public static void main(String[] args) {
Manto.setPrice(100);
System.out.println(Manto.price);
}
}
class Manto {
public String birst;
public static int price;
//静态方法
public static void setPrice(int price) {
Manto.price = price;
}
public String getBirst() {
return birst;
}
public void setBirst(String birst) {
this.birst = birst;
}
}
执行结果
可以看到静态方法是不用实例化类就可以访问到的。
接口中也可以定义静态变量
interface Manto {
public static final int price = 1;
public static final int FEMALE = 2;
}
可以简写成
interface Manto {
int price = 1;
}
如何使用呢
public class Main {
public static void main(String[] args) {
System.out.println(huajuan.getprice());
}
}
class huajuan implements Manto{
public static int getprice() {
return price;
}
}
interface Manto {
int price = 1;
}
结果打印:
到这里,今天的分享就结束了。