前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【测开技能】Java系列(三十)静态方法和静态字段

【测开技能】Java系列(三十)静态方法和静态字段

作者头像
雷子
发布2022-09-29 20:26:19
2830
发布2022-09-29 20:26:19
举报

前一篇:

【测开技能】Java系列(二十 九)接口

这一篇,我们开始去分享静态方法和静态字段


正文

在实例中,我们可以给实例定义不同的字段。实例字段的特点是,每个实例都有独立的字段,各个实例的同名字段互不影响。

代码语言:javascript
复制
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;
        }
    }

结果

可以看到,实例化后的字段无论怎么修改都是不影响的。

那么如何定义静态的字段呢

代码语言:javascript
复制
public  static int price;

如何使用呢

代码语言:javascript
复制
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是什么?看下结果

可以看到,静态字段,一个类的实例化后修改了静态字段,这个类的其他实例化对应的这个静态字段的值也会发生变化的。可以看到,静态字段不属于类实例独享的,而是共享的,有了静态字段,肯定有静态方法

如何定义静态方法呢

代码语言:javascript
复制
public static void setPrice(int price) {
    Manto.price = price;
}

如何使用呢

代码语言:javascript
复制
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;
        }
    }

执行结果

可以看到静态方法是不用实例化类就可以访问到的。

接口中也可以定义静态变量

代码语言:javascript
复制
interface   Manto {
    public static final int price = 1;
    public static final int FEMALE = 2;
}

可以简写成

代码语言:javascript
复制
interface   Manto {
    int price = 1;
}

如何使用呢

代码语言:javascript
复制
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;
    }

结果打印:

到这里,今天的分享就结束了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档