当前位置: 代码迷 >> Java相关 >> 问一个菜鸟级的问题,请老鸟们帮助~谢谢。。。
  详细解决方案

问一个菜鸟级的问题,请老鸟们帮助~谢谢。。。

热度:45   发布时间:2007-05-30 02:01:20.0
问一个菜鸟级的问题,请老鸟们帮助~谢谢。。。
我想知道成员变量是只在一个类中有效还是在整个程序中全局有效呢?
打个比方有一个程序中共有三个类一个公共类MAIN方法另外两个类A1 和A2 如果我在A1中定义一个变量int x
那么x在A2中是否也有效呢???
期待回答。。
----------------解决方案--------------------------------------------------------
LZ涉及到的问题是变量的作用域和生存期,JAVA中变量的生存期不需要我们关心,因为有垃圾收集器,至于你说的有效是什么意思呢?要看你X的访问属性是什么!
----------------解决方案--------------------------------------------------------
以下是引用cx521007在2007-5-30 2:01:20的发言:
我想知道成员变量是只在一个类中有效还是在整个程序中全局有效呢?
打个比方有一个程序中共有三个类一个公共类MAIN方法另外两个类A1 和A2 如果我在A1中定义一个变量int x
那么x在A2中是否也有效呢???
期待回答。。

在A2中无效
----------------解决方案--------------------------------------------------------

明白了谢谢~


----------------解决方案--------------------------------------------------------
成员变量的访问限制为包含它的大括号内,出了大括号就只能通过类的引用访问它.
----------------解决方案--------------------------------------------------------

感谢各位的帮忙:)我还想问一个问题
我知道一个变量的初始化就是指给其赋值,那static{...}主要用来初始化静态变量及静态方法。能不能帮我分析一下这句话呢~非常感谢~


----------------解决方案--------------------------------------------------------

静态变量可以用类名+方法名直接调用
比如
class A
{
static void a()
{}
}
A.a()
就可以了
不然的话
A b=new A();
b.a();


----------------解决方案--------------------------------------------------------
以下是引用cx521007在2007-5-30 22:24:50的发言:

感谢各位的帮忙:)我还想问一个问题
我知道一个变量的初始化就是指给其赋值,那static{...}主要用来初始化静态变量及静态方法。能不能帮我分析一下这句话呢~非常感谢~

你说的应该是静态初始化,通常一个程序的入口点是main方法,但是如果有静态初始化,程序就先运行里面的语句。
public class Test
{
static
{
name="java";
System.out.println("Begin");
}
public static void main(String args[])
{
System.out.println(name);
System.out.println("Finish");
}
static String name;
}
在这个程序中,先把name附值为"java",然后输出"Begin",然后输出name的值,然后输出"Finish".


----------------解决方案--------------------------------------------------------

哦我明白了谢谢各位朋友的帮忙:)


----------------解决方案--------------------------------------------------------
  相关解决方案