我的位置: 首页 > 学习专区 > JAVA技术 > Java基础之初始化(1)

Java基础之初始化(1)

2016-02-16 12:11:16
来源:北大青鸟深圳嘉华学校
[导读] 要想当好程序员,没有基础怎么去写呢,所以基础要打好,对于程序员们写好程序是非常关键的,这篇文章就来讲解一下Java基础之中的初始化知识。一、对象创建过程(无继承的情况)Vehicle veh1 = new Vehicle();该句详解如下:(摘自网络)①右边的new Vehicle,是以Vehicle类为模
要想当好程序员,没有基础怎么去写呢,所以基础要打好,对于程序员们写好程序是非常关键的,这篇文章就来讲解一下Java基础之中的初始化知识。
一、对象创建过程(无继承的情况)
Vehicle veh1 = new Vehicle();该句详解如下:(摘自网络)
①右边的“new Vehicle”,是以Vehicle类为模板,在堆空间里创建一个Vehicle类对象。
②末尾的()意味着,在对象创建后,立即调用Vehicle类的构造函数,对刚生成的对象进行初始化。构造函数是肯定有的。如果没创建,Java会补上一个默认的构造函数。
③左边的“Vehicle veh1”创建了一个Vehicle类引用变量。
④“=”操作符使对象引用指向刚创建的那个Vehicle对象。
假设有一个名为Dog的类,接下来创建一个对象:
1.当首次创建型为Dog的对象时(构造器可以看成静态方法),或者Dog类的静态方法/静态域首次被访问时,Java解释器必须查找类路径,以定位Dog.class文件。
2.然后载入Dog.class(这将创建一个Class对象),有关静态初始化的动作都会执行。因此,静态初始化只在Class对象首次加载的时候进行一次。
3.当你用new Dog()创建对象的时候,首先将在堆上为Dog对象分配足够的存储空间。
4.这块存储空间会被清零,这就自动地将Dog中的所有基本类型数据设置成了默认值(对数字来说就是0,对布尔型和字符型也相同),而引用则被置成了null。
5.执行所有出现于域定义处的初始化动作。
6.执行构造器。(摘自thing in java)
二、构造函数/构造器/构造方法/初始化函数:
通过提供构函数,类的设计者可确保每个对象都会得到初始化,初始化时,对象的数据成员被赋予初始值。Java中的对象都至少会有一个构造函数,如果没有定义构造函数,Java编译器会为我们自动生成一个默认构造函数(无参),但是如果定义了一个构造函数(无论是否有参),编译器就不会帮你创建默认构造函数。构造函数能带形式参数,有了形式参数就可以在初始化对象时提供实际参数。
例如:
构造器的名字和类的名字相同,构造器是一种没有返回值的特殊类型的方法。为了让方法名相同而形式参数不同的构造器同时存在,必须用到方法重载。
区分重载的方法:
每个重载的方法都必须有一个独一无二的参数类型列表。
参数顺序的不同也可以区分两个方法。
注意:返回值不同不能用于区分重载方法。
例如:
运行结果如下所示:
Creating new Tree that is1feet tall
Tree is 1 feet tall
overloaded method:Tree is 1 feet tall
String: String first,int: 11
int: 99String: Int first
planting a seedling
重载与重写的区别:
重载的方法名相同,参数列表不同。
重写的方法名,参数列表还有返回值全部相同。(子类对父类方法的重写)(这里暂不详写)
三、默认初始化值:
类的每个基本类型(byte,short,int,long,char,float,double,boolean)数据成员如果没有进行初始化,编译器会保证都有一个默认初始值(具体初始化为什么值看下边代码)。
而对于所有的引用数据类型默认为null。当将引用数据类型的常量或变量初始化为null时,表示引用数据类型的常量或变量不引用任何对象。
而对于方法中的局部变量如果不进行初始化,就会报错。
变量会在任何方法(包括构造器)被调用之前得到初始化。
代码演示如下:
运行结果:
Date type              Initial value
boolean                false
char                        [ ]
byte                        0
short                       0
int                           0
long                        0
double                    0.0
String                      null
array                        null
reference                 null
评论
热点专题
>>
相关文章推荐
>>