java基础--初始化

1.用构造器初始化

构造器:方法名与类名相同,没有返回值类型,只要完成对象的初始化工作

构造器是在创建对象时自动调用的,这就确保了在操作对象之前他已经被初始化。

构造器有默认构造器即无参构造器,和带参构造器,当用户没有创建构造器时,java便会提供一个默认的构造器,一但用户手动添加了一个构造器,java便不会提供默认的构造器了

注:自动初始化会在构造器调用之前发生,不能阻止自动初始化。

2.方法重载

重载:方法名相同,参数列表不同,与方法的返回值类型无关

区分重载方法:一般通过参数列表来区分重载方法。(两个方法的参数的顺序不同也可以区别重载方法,但是一般不这样做,因为不利于代码的维护;通过返回值来判断重载方法也是行不通的)

基本类型的重载:如果传入的数据类型小于方法中声明的形参的参数类型,则实际类型就会被提升。如一个方法接收float类型的参数,传的时候传入了一个int类型如5,则int类型就会转化为float类型变成5.0。如果传入的参数大于方法中声明的形参的参数类型,这时就只有通过类型转化来执行窄化转化,如果不这么做编译器就会报错。char类型有所不同,如果找不到接收char类型参数的值,这时char就直接提升至int类型


3.this关键字

表示对当前对象的引用


4.数组的初始化

数组简单的说就是用来存放一组相同数据类型的集合,它的声明方式有二种,一种是int[] i ,另一种是int i[];推荐使用第一种,第二种格式是符合C和C++程序员的习惯。

数组的初始化可以出现在代码的任何地方,基本类型的数组如果没有赋初值,java会根据它的类型给一个默认的初值。非基本类型的数组存放的是引用类型,只有当生成对象后,引用才指向对象,否则引用为null,例:

Person[] p = new Person[5] ;此时还没生成对象,引用为空;当p[0] = new Person()后引用才指向对象

数组初始化的方式:静态初始化和动态初始化

静态初始化:程序员在定义数组时并赋值

动态初始化:先定义,在赋值

  1. int[] i = {1,2,3} //{ }相当于new (静态初始化)
  2. int[] i = new int[]{1,2,3}(静态初始化)
  3. 先定义数组如:int[] i = new int[10] 然后(循环)给变量赋值例:for(int j=0;j<10;j++){ i[j]=j;} (动态初始化)

5.成员的初始化

java保证所有变量在使用前都能初始化,局部变量必须先赋值在使用,否则会出现编译时错误。成员变量java会根据它的类型赋一个初值

6.初始化的顺序

在类的内部,变量定义的先后顺序决定了初始化的顺序

7.静态数据的初始化顺序

先初始化静态变量,然后才是非静态变量

静态数据只初始化一次

8.对象的创建过程

  1. 当首次创建某个类型的对象时,或某个类的静态方法,静态属性首次被访问,java解析器就会查找路径,定位到他的class文件中
  2. 然后加载class文件,有关静态初始化的所有动作都会被执行。所有静态初始化只有在class文件首次加载时执行一次
  3. 当用new创建对象时,就会在堆上为该对象分配足够的存储空间
  4. 该存储空间会被清零,在给该对象中的基本类型赋默认值,引用赋为null
  5. 执行所有定义于字段处的初始化操作
  6. 执行构造器





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值