Java学习日记-----关键字static

时间:2021-01-10 16:50:17

static 静态的:

可以修饰:属性、方法、代码块(或初始化块)、内部类

 

Java学习日记-----关键字static

一、static修饰属性

类变量(static修饰的属性)  所有由此创建的对象,都共用一个属性;(存放在静态域)

              类变量随着对象的加载而加载,而且独一份。(不依赖与对象,且早于对象加载)

实例变量(非static修饰的属性)所有由此创建的对象,都各自使用自己的属性

二、static修饰方法

类变量(static修饰的方法)  所有由此创建的对象,都共用一个方法;(存放在静态域)

              类变量随着对象的加载而加载,而且独一份。(不依赖与对象,且早于对象加载)

              可以通过“类.类方法”来调用

实例变量(非static修饰的方法)所有由此创建的对象,都各自使用自己的属性

static(属性、方法、代码块(或初始化块)、内部类)生命周期早于非static的........而且回收的晚。因此占用空间较大。

 

 

练习

Java学习日记-----关键字static

package test;

public class TestAccount {
    public static void main(String[] args) {
        Account a1=new Account("abcd1", 1000);
        Account a2=new Account("adsdf",1000000);
        System.out.println(a1);
        System.out.println(a2);
    }
}
class Account{
    private int  id;
    private String passworld;
    private int balance;
    private static double rate=0.05;
    private static int minbalance=1;
    private static int inint=1000;
    public Account(String passworld,int balance) {
        this.id=inint++;
        this.passworld=passworld;
        this.balance=balance;
    }
    public String getPassworld() {
        return passworld;
    }
    public void setPassworld(String passworld) {
        this.passworld = passworld;
    }
    public int getBalance() {
        return balance;
    }
    public void setBalance(int balance) {
        this.balance = balance;
    }
    public static int getMinbalance() {
        return minbalance;
    }
    public static void setMinbalance(int minbalance) {
        Account.minbalance = minbalance;
    }
    @Override
    public String toString() {
        return "Account [id=" + id + ", passworld=" + passworld + ", balance=" + balance + "]";
    }

    
}