java怎么区别成员变量与局部变量,怎么为他们赋值;方法重载与类的重置需要注意什么?来实例帮助分析下。
在类中根据变量创建的位置不同可以分为局部变量、成员变量(全局变量或者实例变量)、类变量。
局部变量,声明在方法体、语句块中的变量。它的作用域有限,只对当前最近的一对“{ }”里面的程序体有效。注意的是,局部变量在声明后必须初始化。一般在声明时初始化最好(int x=0;)养成良好的习惯。
全局变量,声明在类中方法体之外的变量。类中的每个方法体可以使用。但需要注意的是,必须用“Object.成员名”。全局变量只对调用它的对象产生影响。例如在类中,声明了一个全局变量 int age; 当前类创建了两个对象personOne、personTwo。personOne.age=20,personTwo.age=25;那么在输出的时候,是相互不影响的。结果分别为20、25。在全局变量的创建中可以不手动初始化。JAVA虚拟机会自动给全局变量初始化。如果你定义的是int型,自动初始化为0。定义的boolean,自动初始化为false。定义的object型,自动初始化为null。
类变量,声明在类中方法体之外的变量。在成员变量前加 static即 static int x;就样就声明了一个x类变量。它的作用域是当前类。注意的类变量的值等于它最后一次被修改的值。例如:static int age;当前类的两个对象personOne、personTwo分别来调用,personOne.age=20,personTwo.age=25;那么在输出的时候,只输出25、25。类变量通过“类名.类变量名”。
局部变量,声明在方法体、语句块中的变量。它的作用域有限,只对当前最近的一对“{ }”里面的程序体有效。注意的是,局部变量在声明后必须初始化。一般在声明时初始化最好(int x=0;)养成良好的习惯。
全局变量,声明在类中方法体之外的变量。类中的每个方法体可以使用。但需要注意的是,必须用“Object.成员名”。全局变量只对调用它的对象产生影响。例如在类中,声明了一个全局变量 int age; 当前类创建了两个对象personOne、personTwo。personOne.age=20,personTwo.age=25;那么在输出的时候,是相互不影响的。结果分别为20、25。在全局变量的创建中可以不手动初始化。JAVA虚拟机会自动给全局变量初始化。如果你定义的是int型,自动初始化为0。定义的boolean,自动初始化为false。定义的object型,自动初始化为null。
类变量,声明在类中方法体之外的变量。在成员变量前加 static即 static int x;就样就声明了一个x类变量。它的作用域是当前类。注意的类变量的值等于它最后一次被修改的值。例如:static int age;当前类的两个对象personOne、personTwo分别来调用,personOne.age=20,personTwo.age=25;那么在输出的时候,只输出25、25。类变量通过“类名.类变量名”。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-11-20
class overload
{
///一个普通的方法,不带参数
void test()
{
System.out.println("No parameters");
}
///重载上面的方法,并且带了一个整型参数
void test(int a)
{
System.out.println("a: " + a);
}
///重载上面的方法,并且带了两个参数
void test(int a,int b)
{
System.out.println("a and b: " + a + " " + b);
}
///重载上面的方法,并且带了一个双精度参数,与上面带一个参数的重载方法不一样
double test(double a)
{
System.out.println("double a: " + a);
return a*a;
}
public static void main(String args[])
{
overload o= new overload ();
o.test();
o.test(2);
o.test(2,3);
o.test(2.0);
}
}本回答被网友采纳
{
///一个普通的方法,不带参数
void test()
{
System.out.println("No parameters");
}
///重载上面的方法,并且带了一个整型参数
void test(int a)
{
System.out.println("a: " + a);
}
///重载上面的方法,并且带了两个参数
void test(int a,int b)
{
System.out.println("a and b: " + a + " " + b);
}
///重载上面的方法,并且带了一个双精度参数,与上面带一个参数的重载方法不一样
double test(double a)
{
System.out.println("double a: " + a);
return a*a;
}
public static void main(String args[])
{
overload o= new overload ();
o.test();
o.test(2);
o.test(2,3);
o.test(2.0);
}
}本回答被网友采纳
第2个回答 2013-11-20
Class Person{
int a;这个是成员变量,可以不赋值,程序会根据定义的类型赋值
Person(){ a=10;局部变量,必须赋值,否则程序报错
System.out.println(“就是这么回事!~~”);
}
}
int a;这个是成员变量,可以不赋值,程序会根据定义的类型赋值
Person(){ a=10;局部变量,必须赋值,否则程序报错
System.out.println(“就是这么回事!~~”);
}
}