理解:
1,类方法==>类.类方法
2,随着类的加载而加载,也是内存中的一部分。
3,静态方法只可以调用静态的属性和静态的方法,非静态的方法则可以调用静态的属性和方法。
4,静态的方法里面是不可以有this和super关键字。(加载的时候还没有对象,而this和super代表这个对象)
注:静态的结构(static的属性、方法、代码块、内部类)的生命周期是早于非静态的结构,同时消失也晚于非静态的结构。
应用:1,相同的属性不需要重复设置。
2,方法不依赖于具体的对象用静态。
3,使用静态的变量可以实现累加的效果,因为在内存中只有一份。
练习:
package com.yz; //编写一个类实现银行的概念,包含的属性有账号,密码 //,存款金额,利率,最小金额,实现封装这些概念,使用银行账户类, //输入输出3个储户的上述信息,看看什么时候使用静态变量?为什么呢? public class TestAccount { public static void main(String[] args) { Account a1=new Account("helloworld1", 18888); Account a2=new Account("helloworld2", 232323); Account a3=new Account("helloworld3", 232323555); System.out.println(a1.getId()); System.out.println(a1.getPassword()); System.out.println(a2.getId()); } } class Account{ private int id; //账号 private String password; //密码 private double balance; //余额 private static double rate=0.0;//利率 private static double min=0.0;//最小余额 private static int init=1000; public Account(String password,double balance){ this.balance=balance; this.password=password; this.id=init++; } public int getId() { return id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public double getBalance() { return balance; } public void setBalance(double balance) { this.balance = balance; } public double getRate() { return rate; } public void setRate(double rate) { this.rate = rate; } public double getMin() { return min; } public void setMin(double min) { this.min = min; } }