java类属性默认值_关于JAVA中变量的初始化及类属性的默认
值问题学步园
先看两个例程:hi.baidu/chinsung/blog/item/ab38bc128a2363ccc2fd786e.html
1.VariableInitialization.java
public class VarialbleInitialization {
public static void main(String args[]) {
java面试题csdnint x, y;
y=x+1;
System.out.println(y);
}
}
利⽤JAVAC编译后提⽰:Variable x may not be initialized.显⽰在第四⾏中⽤到的x可能未被初始化,不可参与运算。
2.ClassAttribute.java
public class ClassAttribute {
public static void main(String args[]) {
Circle aCircle=new Circle();
System.out.println("半径为:"+aCircle.radius+"/n⾯积为:"+aCircle.showArea());
}
}
class Circle {
int radius;
double showArea() {
return Math.PI*Math.pow(radius, 2);
}
}
运⾏结果为:
半径为:0
⾯积为:0.0
⾮但没有报错,还给出了可⽤的运⾏结果。Circle类中的radius并没有赋初值,但却可以正常使⽤,⽽例1⾥main()⽅法中的x未赋初值却被告有错。其实问题就在这⾥,在JAVA中:
Local variables must be initialized before they can be used.
⽽在类定义中的属性若不赋予初值,则JAVA会⾃动赋予这个属性⼀个默认值,以下为类的属性的默认值表:
数据类型 默认值
boolean false
char '/u0000'
整形(byte,short,int,long) 0
浮点型(float, double) +0.0f或+0.0d
参考型 null
总结为⼀句话便是类⾥定义的数据成员称为属性,属性可不赋初值,若不赋初值则JAVA会按上表为其添加默认值;⽅法⾥定义的数据成员称为变量,变量在参与运算之前必须赋初值。
1、⼀个变量作为类成员使⽤的时候,如果没有被初始化,java会为其分配默认值:
Boolean false
Char '/u0000'(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d
如果在⼀个⽅法中定义⼀个变量,java不会给其分配默认值,就必须我们来给他初始化,否则将得到编译错误的提⽰;
Trackback: tb.blog.csdn/TrackBack.aspx?PostId=133124
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论