Java笔记,构造函数(二)

构造方法的作用:

  • 1.创建对象
  • 2.创建对象的同时,给实例变量赋值

成员变量之实例变量,属于对象级别的变量,这种变量必须先有对象才能有实例变量。

实例变量没有手动赋值的时候,系统默认赋值,那么这个系统默认 值是在什么时候完成的呢?是在类加载的时候吗?

答案:不是,因为类加载的时候只加载了代码片段,还没来得及创建对象。所以此时实例变量并没有初始化。

实际上,实例变量的内存空间是在构造方法执行过程当中完成开辟的,完成初始化的。
系统在默认赋值的时候,也是在构造方法执行当中完成的赋值。

实例变量默认值:
 类型: 默认值:
  byte,short,int,long 0
 float,double 0.0
 boolean false
 引用数据类型 null

详细看代码和注释,相信你会懂的。

“构造器02”类(Constructor02.class)

public class Constructor02 {
    
    

    public static void main(String[] args) {
    
    

        // 创建对象act1
        Account act1 = new Account();

        // 查看对象的实例变量的值
        System.out.println("账号1:"+act1.getActno()); // 账号1:null
        System.out.println("余额1:"+act1.getBalance()); // 余额1:0.0
        System.out.println("******************");


        // 给对象act1的实例变量赋值
        act1.setActno("6236...");
        act1.setBalance(100.0);

        // 再次查看
        System.out.println("账号1:"+act1.getActno());  // 账号1:6236...
        System.out.println("余额1:"+act1.getBalance());  // 余额1:100.0
        System.out.println("******************");


        // 创建对象act2, 传递实参,调用带参数构造方法
        Account act2 = new Account("7256...",200);

        System.out.println("账号2:"+act2.getActno()); // 账号2:7256...
        System.out.println("余额2:"+act2.getBalance()); // 余额2:200.0
        System.out.println("******************");

    }
}

“账户”类(Account.class)

class Account{
    
    

    // 账户
    private String actno;

    // 余额
    private double balance;

    // 无参数构造方法
    public Account() {
    
    
        // 如果没有给实例变量赋值,系统会默认赋值
        // 初始化实例变量的值
        // actno = null;
        // balance = 0.0
    }

    // 带参数构造方法
    public Account(String actno,double balance) {
    
    
        this.actno = actno;
        this.balance = balance;
    }

    // getter和setter方法
    public String getActno() {
    
    
        return actno;
    }

    public void setActno(String actno) {
    
    
        this.actno = actno;
    }

    public double getBalance() {
    
    
        return balance;
    }

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

猜你喜欢

转载自blog.csdn.net/weixin_44630560/article/details/105732462