<五>初始化

1.类的对象通过构造方法进行初始化:

构造方法的名称与类名完全相同,包括大小写。

不接受任何参数的构造方法叫做默认构造方法。如果类中已经自定义了一个构造方法,编译器就不会自动构建默认构造方法了。

构造方法没有返回值。

2.方法重载:

         每个重载的方法必须有一个独一无二的参数列表,参数的类型不同,参数的顺序不同都能称为重载。

3.this关键字

         对象在调用类的方法时,编译器做了一些暗操作,把对象的引用作为方法的第一参数传递进去,以便通知方法时那个对象在调用它。

关键字this就表示了调用方法的那个对象的引用。

如果在方法内部调用同一个类的另一个方法就不必使用this,因为当前方法中的this引用会自动应用于同一类的其他方法。

在构造方法中可以使用this调用其他的构造方法,但是必须将构造方法的调用置于最起始处,因此,一个构造方法中只能用一次this调用另一个构造方法。

使用this.成员数据,代表类的数据成员,避免与同名的参数产生歧义。

标有static的方法,就是没有this的方法。在static方法的内部不能调用非静态方法。Static方法可以被类直接使用。

4.成员初始化:

在类的成员数据中,即使不明确赋值初始化,程序也会自动赋予默认的初始化值。

可以使用构造方法来进行初始化,但是注意无法阻止自动初始化的进行,它将在构造方法被调用之前发生。

在类的内部,变量定义的先后顺序决定了初始化的顺序,即使变量定义散布于方法定义之间,它们仍旧会在任何方法(包括构造)被调用之前得到初始化。

静态数据只占一份存储区域,static关键字不能应用于局部变量,它只能作用于域。还可以显示地以静态块方式进行数据初始化。

先初始化静态对象,然后是非静态对象。

对象的创建过程

              即使没有显式地使用static关键字,构造方法也是静态方法。当首次创建某个类的对象时,或者是该类的静态方法或静态域被访问时,java解释器必须查找类路径,以定位类的.class文件。

              载入.class文件,进行静态域初始化,静态初始化只在class对象首次加载时候进行一次。

               使用new关键字创建对象时,首先在堆上为对象分配足够的存储空间。

               这块存储空间被清零,并自动将对象中所有基本类型数据设置成默认值。

               执行所有出现于字段定义处的初始化动作。

               执行构造方法。

5.数组的初始化:

           数组只是相同类型的,用一个标识符名称封装到一起的一个对象序列或者基本类型数据序列,数组是通过方括号下标操作符[]来定义使用的。

           定义一个数组只是定义了一个数组引用,可以再任何地方初始化,也可以使用{}在定义处初始化。数组之间的相互赋值是引用之间的赋值。

           数组也可以在定义处通过这种方式初始化:int[] a = new int[10];

6.可变参数列表使用:

           如果方法在定义时,使用方法名(类型…参数名)形式,这调用该方法时可以传递任意个参数进去,即参数个数是可变的。

7.枚举类型(enum):

           枚举类型的创建:publicenum 枚举类型名{具名值1,具名值2,具名值3}

           创建enum时,编译器会自动添加一些有用的特性,比如创建toString()方法,ordinal()方法,static values()方法,声明顺序。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值