java——初始化(构造函数和innt函数)

        先说一下什么是初始化,初始化就是在最开始定义成员变量时给它一个初始的值,这个时候你就会问了,既然后面还要给它赋值为什么要给它初始化呢,不是多此一举么,首先这个初始化是为了防止程序运行时候出现未知的错误,或者bug。

        初始化一般在构造函数中进行,它定义了函数的初始值,使程序可以正常运行,在new对象时构造函数就会自动被执行,它只会被执行一次,之后想修改需要自己再添加一个innt(初始化)方法,这个方法时外部的方法不会自动执行,需要手动调用。

不多说了上代码自己体会:

构造方法的作用:对对象初始化

(1)一般函数是用于定义对象应该具备的功能。而构造函数定义的是,对象在调用功能之前,在建立时,应该具备的一些内容。也就是对象的初始化内容。

(2)构造函数是在对象建立时由JVM调用, 给对象初始化。一般函数是对象建立后,当对象调用该功能时才会执行。

(3)普通函数可以使用对象多次调用,构造函数就在创建对象时调用。

(4)构造函数的函数名要与类名一样,而普通的函数只要符合标识符的命名规则即可。

(5)构造函数没有返回值类型。

 

构造函数要注意的细节:

(1)当类中没有定义构造函数时,系统会指定给该类加上一个空参数的构造函数。这个是类中默认的构造函数。当类中如果自定义了构造函数,这时默认的构造函数就没有了。

备注:可以通过javap命令验证。

(2)在一个类中可以定义多个构造函数,以进行不同的初始化。多个构造函数存在于类中,是以重载的形式体现的。因为构造函数的名称都相同。

public class Init {
    //创建构造方法的初始化
    int a;
    char b;
    short s;
    float f;
    long lo;
    double dou;
    byte e;
    boolean flag;
    Object obj;
//这些基本类型都会保证有一个初始的值。
//可见,java会为类的基本类型的变量提供一个初始值,各类型初始值不同,非基本类型初始为null。
//注意,这里的变量必须是类变量,注意,只会为类变量提供初始化,而局部变量不会。
//如果局部变量没有初始化,会收到一个出错信息(方法内定义一个变量要用的话需要给它初始化赋一个值,不然会报错)。
    public static void main(String[] args) {
        Init init = new Init();
        init.print();
    }

    public void print() {
        System.out.println("int a=" + a + " char b=" + b  +
                " short s=" + s + " float f=" + f + " long lo=" +
                lo + "\n double dou=" + dou + " byte e=" + e + " boolean flag="
                + flag + " Object obj=" + obj);
    }
}

 

运行结果:

int a=0 char b=  short s=0 float f=0.0 long lo=0

 double dou=0.0 byte e=0 boolean flag=false Object obj=null

 

public class InitTest {
    //构造函数中的初始化
    int i;
    Object obj;
    public InitTest(){
        System.out.println("before i="+i+"  obj="+obj);//初始化之前
        i = 1;
        obj = new Object();
        System.out.println("after i="+i+" obj="+obj);//初始化之后
    }
//由此可见,不论是基本类型,还是其他的类。java默认的初始化是最先发生的,位于一切方法之前。
    public static void main(String [] args){
        InitTest init = new InitTest();
    }
}

运行结果:

before i=0  obj=null

after i=1 obj=java.lang.Object@4554617c

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值