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	书名:英文	出版社:光明出版社
            * */
    
  • 相关阅读:
    2017.10.25总结与回顾
    2017.10.24总结与回顾
    CSS盒子模型
    2017.10.23学习知识总结回顾及编写新网页
    JAVA与mysql之间的编码问题
    想写好代码,送你三个神器
    Vue+highligh.js实现语法高亮(转)
    Vue.JS实现复制到粘帖板功能
    npm install、npm install --save与npm install --save-dev区别(转)
    ES7与ES8新特性
  • 原文地址:https://www.cnblogs.com/sogeisetsu/p/11922830.html
Copyright © 2011-2022 走看看