static关键字

1、static:静态的;

2、static可以用来修饰属性、方法、内部类和代码块

3、使用static关键字修饰属性:静态变量(类变量)

3.1属性,按照是否使用static来修饰属性又分为:静态变量(类变量)和没有加static的非静态变量(实例变量)

静态变量(类变量):在一个类中我们建造了多个对象,它们公用一个静态变量,当一个对象修改静态变量,那么其他对象调用静态变量调用的就是修改后的静态变量

非静态变量(实例变量):在一个类中我们创建了多个对象,他们相互独立互不影响,当一个对象的非静态变量改变时,其它对象的非静态变量不会受到影响改变

3.2static修饰属性的其他说明

3.2.1静态变量随着类的加载而加载

3.2.2因为类加载好才创建了类的对象,所以静态变量在对象创建之前就加载好了

3.2.3因为类只加载了一次,所以静态变量也只加载了一次只存有一份静态变量,保存在方法区的静态域中

3.2.4静态变量由于加载早可以通过类和对象调用

非静态变量是在对象创建时加载的可以通过对象来调用,但是由于它是在类之后加载的,所以不能通过类来调用非静态变量。

4、使用static来修饰方法:静态方法

4.1静态方法随着类的加载而加载,可以直接通过类去直接调用

4.2和静态变量相似静态方法也可以通过类和对象来进行调用,也可以直接用方法名来调用

非静态方法只能通过对象来调用不能通过类来调用

4.3静态方法只能调用静态方法和静态变量

非静态方法可以调用静态方法和非静态方法,也可以调用静态变量和非静态变量

5static关键字注意:

在静态方法中,不能使用this和super关键字

6.在开发中

6.1如何确定一个属性需不需要static关键字去声明

>当多个对象的这个属性都是相同时,那么这个属性可以用static关键字去声明

>常量也经常用static关键字去声明

6.2如何确定一个方法需不需要static关键字去声明

>操作静态属性的方法,一般都是静态方法需要用static关键字去声明

>工具类的方法一般都用static关键字去声明(作用是不用再去造对象通过对象去调用,可以直接调用或者通过类去调用)

*编写一个类实现银行账户的概念,包含的属性有帐号”、“密码”、“存款余额”、“利率”、"最小余额”

*定义封装这些属性的方法。账号要自动生成。

编写主类,使用银行账户类,输入、输出3个储户的上述信息。

考虑:哪些属性可以设计成static属性。

public class Account {


        private int id;
        private String pwd="0000";
        private double balance;
        private  static double interestRate;
        private static double minmoney=1.0;
        private static int init=1001;//生产账号
        public Account(String pwd,double balance){
            this.pwd=pwd;
            this.balance=balance;
            id=init++;
        }
        public int getId() {
            return id;
        }

        public String getPwd() {
            return pwd;
        }

        public void setPwd(String pwd) {
            this.pwd = pwd;
        }

        public double getBalance() {
            return balance;
        }

        public void setBalance(double balance) {
            this.balance = balance;
        }

        public static double getMinmoney() {
            return minmoney;
        }

        public static void setMinmoney(double minmoney) {
            text3.Account.minmoney = minmoney;
        }

        public static double getInterestRate() {
            return interestRate;
        }

        public static void setInterestRate(double interestRate) {
            Account.interestRate = interestRate;


        }

    @Override
    public String toString() {
        return "Account{" +
                "id=" + id +
                ", pwd='" + pwd + '\'' +
                ", balance=" + balance +
                '}';
    }

}
public class Accounttext {
    public static void main(String[] args) {
        Account p1=new Account("1002",2000);
//   double q= p1.getBalance();
//  int d=  p1.getId();
//   String c= p1.getPwd();
//   double a= Account.getMinmoney();
//    Account.setInterestRate(0.03);
//  double b=  Account.getInterestRate();
//  System.out.println("客户的id:"+d+",密码:"+c+",余额:"+q+",银行利息:"+b+"最低存款:"+a);
System.out.println(p1);
   }



}

在这里可以重写toString方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值