• java中static修改成员变量和函数和其他使用


    一、通过static修饰的成员变量初始化只会初始化一次

    //静态变量初始化只会初始化一次
    public class zuishuai {
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            //double[] my = new double[14];
            people a = new people();
            a.num+=1;
            System.out.println("现已创建人数:"+a.num);
            a.num+=1;
            System.out.println("现已创建人数:"+a.num);
            a.num+=1;
            System.out.println("现已创建人数:"+a.num);
        }
    
    }
    class people{
        public static int num;
        public people() {
            num=0;
        }
    }
    /*
    输出:
     现已创建人数:1
    现已创建人数:2
    现已创建人数:3
    */

    静态代码块中:

    当new一个类对象时,static修饰的成员变量首先被初始化,随后是普通成员,最后调用Person类的构造方法完成初始化。也就是说,在创建对象时,static修饰的成员会首先被初始化

    并且,当再次new该类的对象时,static修饰的类成员不会被再次初始化,在程序运行过程中,static只会在第一次new时被初始化

    二、static修饰的方法可以无需实例化直接调用

    //静态static修饰的方法可以无需实例化直接调用
    public class zuishuai {
        
        public static void main(String[] args) {
            people a = new people();
            people.opetor();
            //people.opetor1(); 直接调用会报错
            a.opetor1();
        }
    
    }
    class people{
        public static int num;
        public people() {
            num=0;
        }
        public static void opetor() {
            System.out.println("执行静态方法");
        }
        public void opetor1() {
            System.out.println("执行非静态方法");
        }
    }

    三、在把这个类导入其他java文件时,可以不用实例化直接调用static修饰的方法

    主类:

    package qmh;
    import qmh.people;
    
    public class test {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            people.opetor();
        }
    
    }

    people类:

    package qmh;
    
    class people{
        public static int num;
        public people() {
            num=0;
        }
        public static void opetor() {
            System.out.println("执行静态方法");
        }
        public void opetor1() {
            System.out.println("执行非静态方法");
        }
    }

    结果输出:

    执行静态方法

  • 相关阅读:
    单向认证
    电商积分支付系统构建经验与总结
    python decimal.quantize()参数rounding的各参数解释与行为
    mysql 由decimal 引起的 Warning: Data truncated for column
    aliyun centos14.04 trusty 上安装docker1.12.1
    使用 py.test 对 python 代码进行测试
    mysql常用增删改查命令(纯纪录.orm用得基本功都没了。)
    python 协程库gevent学习--gevent数据结构及实战(四)
    http请求头中的content-type属性
    坚持做技术写作
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/13646300.html
Copyright © 2020-2023  润新知