zoukankan      html  css  js  c++  java
  • java static学习

    原创,转载请注明来源sogeisetsu的博客园
    static,在类里面定义公共的属性,它可以统一修改,并只占一个内存。从而达到方便修改和少占内存的目的
    先放上代码,您可以先越过代码,看后面的讲解内容

    class Boook {//随意定义一个类
        private int value;
        private String name;
        static String pub = "科大出版社";//static,在类里面定义公共的属性,它可以统一修改,并只占一个内存。从而达到方便修改和少占内存的目的
        public Boook(int value, String name) {
            this.name = name;
            this.value = value;
        }
        public String getInfo(){
            return "|-"+"价格:"+this.value+"	书名:"+this.name+"	出版社:"+this.pub;
        }
    }
    
    public class StaticStudy {
        public static void main(String[] args) {
            System.out.println("static学习");
            //调用Boook
            Boook a1 = new Boook(12, "数学");
            Boook a2 = new Boook(19, "国语");
            Boook a3 = new Boook(14, "英文");
            System.out.println(a1.getInfo());
            System.out.println(a2.getInfo());
            System.out.println(a3.getInfo());
            /*
            * |-价格:12	书名:数学	出版社:科大出版社
              |-价格:19	书名:国语	出版社:科大出版社
              |-价格:14	书名:英文	出版社:科大出版社*/
            //改变一个的公共属性,全都改变。
            a1.pub="青岛出版社";
            System.out.println(a1.getInfo());
            System.out.println(a2.getInfo());
            System.out.println(a3.getInfo());
            /*
            * |-价格:12	书名:数学	出版社:青岛出版社
              |-价格:19	书名:国语	出版社:青岛出版社
              |-价格:14	书名:英文	出版社:青岛出版社
            * */
            //建议用Boook.pub来修改
            Boook.pub="济南出版社";
            System.out.println(a1.getInfo());
            System.out.println(a2.getInfo());
            System.out.println(a3.getInfo());
            /*
            * |-价格:12	书名:数学	出版社:济南出版社
              |-价格:19	书名:国语	出版社:济南出版社
              |-价格:14	书名:英文	出版社:济南出版社
            * */
        }
    }
    
    

    先随意定义一个类,名称为Boook,功能为写书的价格,书名和出版社。

    class Boook {//随意定义一个类
        private int value;
        private String name;
        static String pub = "科大出版社";//static,在类里面定义公共的属性,它可以统一修改,并只占一个内存。从而达到方便修改和少占内存的目的
        public Boook(int value, String name) {
            this.name = name;
            this.value = value;
        }
        public String getInfo(){
            return "|-"+"价格:"+this.value+"	书名:"+this.name+"	出版社:"+this.pub;
        }
    }
    

    书名和价格都是普通的属性,出版社是static属性,因为这些书都是一个出版社的,用static属性只占一个内存,可以节省内存。并且也易于修改。
    附上ststic内存图
    ststic内存图
    先调用一个

    		Boook a1 = new Boook(12, "数学");
            Boook a2 = new Boook(19, "国语");
            Boook a3 = new Boook(14, "英文");
            System.out.println(a1.getInfo());
            System.out.println(a2.getInfo());
            System.out.println(a3.getInfo());
            /*
            * |-价格:12	书名:数学	出版社:科大出版社
              |-价格:19	书名:国语	出版社:科大出版社
              |-价格:14	书名:英文	出版社:科大出版社*/
    

    返回

    		|-价格:12	书名:数学	出版社:科大出版社
              |-价格:19	书名:国语	出版社:科大出版社
              |-价格:14	书名:英文	出版社:科大出版社
    

    修改出版社a1.pub="青岛出版社";,改变一个的公共属性,全都改变。
    返回

    		|-价格:12	书名:数学	出版社:青岛出版社
              |-价格:19	书名:国语	出版社:青岛出版社
              |-价格:14	书名:英文	出版社:青岛出版社
    

    可以看到,修改一个对象的公共属性,那所有对象相应的公共属性都会改变
    公共属性建议用类名.公共属性来修改。比如这个Boook类用Boook.pub来修改。Boook.pub="济南出版社";修改成济南出版社,来看一下返回值

    		|-价格:12	书名:数学	出版社:济南出版社
              |-价格:19	书名:国语	出版社:济南出版社
              |-价格:14	书名:英文	出版社:济南出版社
    

    static方法

    static方法,可以直接通过类名称来调用
    static方法只能调用static调用的属性或方法

    class Boook {//随意定义一个类
        private int value;
        private String name;
        static String pub = "科大出版社";//static,在类里面定义公共的属性,它可以统一修改,并只占一个内存。从而达到方便修改和少占内存的目的
        public Boook(){
    
        }
        public Boook(int value, String name) {
            this.name = name;
            this.value = value;
        }
        public String getInfo(){
            return "|-"+"价格:"+this.value+"	书名:"+this.name+"	出版社:"+this.pub;
        }
        //static方法,可以直接通过类名称来调用
        //static方法只能调用static调用的属性或方法
        public static void setPub(String p){
            Boook.pub=p;//不要用this
        }
    }
    

    static方法,可以直接通过类名称来调用

    Boook.setPub("光明出版社");//static方法,可以直接通过类名称来调用
            System.out.println(a1.getInfo());
            System.out.println(a2.getInfo());
            System.out.println(a3.getInfo());
            /*
            * |-价格:12	书名:数学	出版社:光明出版社
              |-价格:19	书名:国语	出版社:光明出版社
              |-价格:14	书名:英文	出版社:光明出版社
            * */
    
  • 相关阅读:
    【Docker】解析器指令之 escape
    【Docker】解析器指令之 syntax
    【Docker】Dockerfile 解析器指令
    【Docker】Dockerfile 格式
    【Docker】Dockerfile 介绍
    【Docker】Spring Boot 和 Docker
    【Docker】理解 Docker 中的 OverlayFS
    【Docker】使用 OverlayFS 存储驱动
    【Docker】选择存储驱动
    kuangbin专题 专题一 简单搜索 Fire! UVA
  • 原文地址:https://www.cnblogs.com/sogeisetsu/p/11922830.html
Copyright © 2011-2022 走看看