java-静态域与静态方法

静态域与静态方法

  • 静态域:即static关键字,每个类中只有一个这样的域,每个类中的静态域被所有实例所共享,该静态域属于类,不属于任何独立的对象。
  • 静态常量:使用final关键字修饰的常量,即不允许再修改,但被所有实例共享。
  • 静态方法:一种不能向对象实施操作的方法。没有隐式参数即没有this参数。

静态方法使用场景:

  • 不需要访问对象状态,其所需参数都是显示参数提供。
  • 一个方法只需要访问类的静态域。

工厂方法:常用静态工厂方法来构造对象。

 

对象构造:

package baseDemo;

import java.util.Random;

/**
 * 重载:方法名相同,参数不同的即为重载。
 * 用this(...)调用另一个构造器
 * 无参构造器
 * 对象初始化块
 * 静态初始化块
 * 实例域初始化块
 */
public class ConstructorTest {
    public static void main(String[] args) {
        Employee1[] staff = new Employee1[3];
        staff[0] = new Employee1("Harry", 40000);
        staff[1] = new Employee1(2000);
        staff[2] = new Employee1();

        for (Employee1 employee1 : staff) {
            System.out.println(employee1);
        }
    }

}

class Employee1 {
    private static int nextId;

    private int id;
    private String name = "";
    private double salary;

    //静态初始化块
    static {
        Random random = new Random();
        nextId = random.nextInt(1000);
    }

    //对象初始化块
    {
        id = nextId;
        nextId++;
    }

    //实例域初始化块
    public Employee1(String n, double s) {
        name = n;
        salary = s;
    }

    public Employee1(double s) {
        //使用this关键字调用同类中的另一个构造器
        this("Employee #" + nextId, s);
    }

    public Employee1() {

    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "Employee1{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", salary=" + salary +
                '}';
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值