您的位置:首页 > 编程语言 > Java开发

Java中的作用域及构造器

2016-06-18 21:03 330 查看
1、作用域决定了在其内定义的变量名的可见性和生命周期,在Java中,作用域由花括号的位置决定。作用域里定义的变量只能用于作用域之前。如在下面这段代码中,第一个for循环中的变量i在花括号结束后,生命周期已经结束。在变量i生命周期结束之后,可以重新定义i,比如说第二个for循环里的i,否则不允许。

for (int i = 0; i < N; i ++)
{
a[i] = i;
}
for (int i = 0; i < N; i ++)
{
b[i] = i;
}</span>


2、Java对象不具备和基本类型一样的生命周期,当使用new创建一个Java对象时,它可以存活于作用域之外,在下面的这个例子中引用s在作用域终点,即最后的花括号处已经消失,但s指向的String对象仍然继续占据内存空间,这个String对象的生命周期并没有结束。

{
String s = new String(“a string”);
}

构造器

构造器是以类名命名的方法,没有任何返回值。

1、构造器是一种特殊的方法,没有返回值,但与void不同,构造器不返回任何东西,new表达式确实返回了对象的引用,但构造器本身没有任何返回值。

2、构造器是隐式的静态方法,但构造器不能被继承,而静态方法可以被继承。

3、如果没有定义构造器,则Java会生成默认的不带任何参数的构造器,若已经定义了构造器,则编译器不会帮你自动创建默认构造器。

4、若有几个构造器,则只能在构造器内调用另一个构造器,但不能调用两个构造器,且被调用的构造器要放在最起始处。就像下面所示代码一样。

class Person
{
private String name;
private int age;

Person()
{

}

Person(String name)
{
this.name = name;
}

Person(String name,int age)
{
this(name);//在构造器中调用构造器,只能放在最前面
//this(); 构造器中不能调用两个以上构造器
this.age = age;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: