zoukankan      html  css  js  c++  java
  • 4.4 静态域与静态方法

    4.4 静态域与静态方法


    4.4.1 静态域
      如果将域定义为static,每个类中只有一个这样的域,而每一个对象对于所有的实例域却都有自己的一份拷贝。

    class Employee
    {
        private static int nextId = 1;
        private int id;
        ... 
    }

      每个雇员对象都有自己的id域,但所有的类的实例将共享一个nextId域,举例说如果有1000个Employee对象,则有1000个实例域id,但是只有一个静态域nextId。即便没有Employee对象,静态域nextId仍然是存在的。这个静态域nextId属于类,但不属于独立的对象。
     
    4.4.2 静态常量
      静态常量的使用比较常见,如:

    public class Math
    {
        ...
        public static final double PI = 3.1415926;
        ... 
    }

      在程序中,可以采用Math.PI的形式获得这个常量。
      如果关键字static被省略,PI就变成了Math类的一个实例域。需要通过Math类的对象访问PI,并且每一个Math对象都有它自己的一份PI拷贝。

    4.4.3 静态方法
      静态方法是一种不能向对象实施操作的方法。例如,Math类的pow方法就是一个静态方法。
      Math.pow(x, a)
      用来计算幂函数,在运算的时候,不适用任何Math对象,即没有隐式的参数。
      可以认为静态方法是没有this参数的方法(在非静态方法中,this参数表示这个方法的隐式参数)
      因为静态方法不能操作对象,所以不能在静态方法中访问实例域,但是静态方法可以访问自身的静态域。
      

    package class_;
    
    public class StaticTest_4_3 {
        public static void main(String args[])
        {
            Employee[] staff = new Employee[3];
            staff[0] = new Employee("Tom", 40000);
            staff[1] = new Employee("Kobe", 50000);
            staff[2] = new Employee("James", 50000);
        }
    }
    
    class Employee
    {
        private static int nextId = 1;
    
        private String name;
        private double salary;
        private int id;
    
        public Employee(String n, double s)
        {
            name = n;
            salary = s;
            id = 0;
        }
    
        public String getName()
        {
            return name;
        }
    
        public double getSalary()
        {
            return salary;
        }
    
        public int getId()
        {
            return id;
        }
    
        public void setId()
        {
            id = nextId;
            nextId++;
        }
    
        public static int getNextId()
        {
            return nextId;
        }	
    }                        
    

      

      
     

    能让一个男孩子热血的,不仅有梦想,还有姑娘。
  • 相关阅读:
    jmeter分布式配置
    APP自动化测试获取包名的两种方法
    Monkey自动化测试命令
    jmeter之http请求用csv读取中文乱码
    jmeter断言之响应code:200
    使用 form 和 iframe 实现图片上传回显
    sublime3 破解
    在cmd下面执行.py文件时提示ModuleNotFoundError 但是 IDE 不报错
    windows 开启 nginx 监听80 端口 以及 禁用 http 服务后,无法重启 HTTP 服务,提示 系统错误 123,文件目录、卷标出错
    python打包exe
  • 原文地址:https://www.cnblogs.com/Mr24/p/6414355.html
Copyright © 2011-2022 走看看