1.static的应用举例
代码:
package test1;
public class CircleTest {
public static void main(String[] args) {
Circle c1 = new Circle();
Circle c2 = new Circle();
Circle c3 = new Circle(3.4);
System.out.println("c1的id:" + c1.getId());
System.out.println("c2的id:" + c2.getId());
System.out.println("c3的id:" + c3.getId());
System.out.println("创建的圆的个数为:" + Circle.getTotal());
}
}
class Circle {
private double radius;
private int id;
public Circle() {
id = init++;
total++;
}
public Circle(double radius) {
this.radius = radius;
id = init++;
total++;
}
private static int total;// 记录创建圆的个数
private static int init = 1001;// 多个对象共享
public double findArea() {
return Math.PI * radius * radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public int getId() {
return id;
}
public static int getTotal() {
return total;
}
}
输出:
c1的id:1001
c2的id:1002
c3的id:1003
创建的圆的个数为:3
2.课后练习:账户信息
编写一个类实现银行账户的概念,包含的属性有“帐号”、“密码”、“存款余额”、“利率”、“最小余额”,定义封装这些属性的方法。账号要自动生成。
编写主类,使用银行账户类,输入、输出3个储户的上述信息。
考虑:哪些属性可以设计成static属性。
Account类:
package exer1;
public class Account {
private int id;// 账号
private String pwd = "000000";// 密码
private double balance;// 存款余额
private static double interestRate;// 利率
private static double minMoney = 1.0;// 最小余额
private static int init = 1001;// 用于自动生成id
public Account() {
id = init++;
}
public Account(String pwd, double balance) {
id = init++;
this.pwd = pwd;
this.balance = balance;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public static double getInterestRate() {
return interestRate;
}
public static void setInterestRate(double interestRate) {
Account.interestRate = interestRate;
}
public static double getMinMoney() {
return minMoney;
}
public static void setMinMoney(double minMoney) {
Account.minMoney = minMoney;
}
public int getId() {
return id;
}
public double getBalance() {
return balance;
}
@Override
public String toString() {
return "Account [id=" + id + ", pwd=" + pwd + ", balance=" + balance + "]";
}
}
AccountTest类:
package exer1;
public class AccountTest {
public static void main(String[] args) {
Account acct1 = new Account();
Account acct2 = new Account("123456", 2021129);
Account.setInterestRate(0.012);
Account.setMinMoney(100);
System.out.println(acct1);
System.out.println(acct2);
System.out.println(acct1.getInterestRate());
System.out.println(acct2.getMinMoney());
}
}
输出:
Account [id=1001, pwd=000000, balance=0.0]
Account [id=1002, pwd=123456, balance=2021129.0]
0.012
100.0