//请问如何输出AA类中NUM的值(注意不能在aa类的构造方法中输出num,要在bb类中输出aa类num的值)?
public class aa
{
aa()
{
 int num=100;
}
}
class bb extends aa
{
public static void main(String args[])
{ bb t=new bb();
System.out.println("此处输出aa类中num的值");
}
}

解决方案 »

  1.   

    public static int num=100;
      

  2.   

    无法输出,因为num变量是具备变量
      

  3.   

    public class AA
    {
    AA()
    {
     public static int num=100;
    }
    }
    class BB extends AA
    {
    public static void main(String args[])
    {
                      BB t=new BB();
    System.out.println(aa.num);
    }
    }
    意义?
      

  4.   

    System.out.println("此处输出aa类中num的值"+t.num);
      

  5.   

    num是AA的局部变量,BB继承不了
      

  6.   

    public class AA
    { public static int num=100; AA()
    {
    }
    }
    class BB extends AA
    {
    public static void main(String args[])
    {
                      BB t=new BB();
    System.out.println(aa.num);
    }
    }
      

  7.   

    int num=100; 谁说继承不了?
    ------------------------------
    如果根本不指定访问指示符,就象本章之前的所有例子那样,这时会出现什么情况呢?默认的访问没有关键字,但它通常称为“友好”(Friendly)访问。这意味着当前包内的其他所有类都能访问“友好的”成员,但对包外的所有类来说,这些成员却是“私有”(Private)的,外界不得访问。由于一个编译单元(一个文件)只能从属于单个包,所以单个编译单元内的所有类相互间都是自动“友好”的。因此,我们也说友好元素拥有“包访问”权限。
    友好访问允许我们将相关的类都组合到一个包里,使它们相互间方便地进行沟通。将类组合到一个包内以后(这样便允许友好成员的相互访问,亦即让它们“交朋友”),我们便“拥有”了那个包内的代码。只有我们已经拥有的代码才能友好地访问自己拥有的其他代码。我们可认为友好访问使类在一个包内的组合显得有意义,或者说前者是后者的原因。在许多语言中,我们在文件内组织定义的方式往往显得有些牵强。但在Java中,却强制用一种颇有意义的形式进行组织。除此以外,我们有时可能想排除一些类,不想让它们访问当前包内定义的类。
    对于任何关系,一个非常重要的问题是“谁能访问我们的‘私有’或private代码”。类控制着哪些代码能够访问自己的成员。没有任何秘诀可以“闯入”。另一个包内推荐可以声明一个新类,然后说:“嗨,我是Bob的朋友!”,并指望看到Bob的“protected”(受到保护的)、友好的以及“private”(私有)的成员。为获得对一个访问权限,唯一的方法就是:
    (1) 使成员成为“public”(公共的)。这样所有人从任何地方都可以访问它。
    (2) 变成一个“友好”成员,方法是舍弃所有访问指示符,并将其类置于相同的包内。这样一来,其他类就可以访问成员。
    (3) 正如以后引入“继承”概念后大家会知道的那样,一个继承的类既可以访问一个protected成员,也可以访问一个public成员(但不可访问private成员)。只有在两个类位于相同的包内时,它才可以访问友好成员。但现在不必关心这方面的问题。
      

  8.   

    num的生命周期只在aa()这个函数范围内,而且并没有与外界的访问接口。迷惑...可能吗?
      

  9.   

    照你写的程序,BB中访问不到Num的,Num是aa的局部变量;
      

  10.   

    public class bb extends P
    { /**
     * @param args
     */
    public static void main(String[] args)
    {
    bb t = new bb();
    System.out.println(t.num);

    }

    }class aa{
    int num;
    aa(){
    int num=100;
    }
    }这样就能在bb中输出aa的num了.
    还在,我提醒一下lz,定义类名时,最好首字母大写
      

  11.   

    public class aa
    {   
        public int num;
        aa()
        {
          num=100;
        }
    }
    class bb extends aa
    {
        public static void main(String args[])
        {   bb t=new bb();
            System.out.println(t.num);
        }
    }
      

  12.   

    这里没有num
    {
     int num=100;
    }
    这里num的历史使命已经完成了.
      

  13.   

    public class AA{   
        public static  int num;
        AA()
        {
          num=100;
        }
    }
    class BB extends AA
    {
        public static void main(String args[])
        {   BB t=new BB();
            System.out.println(t.num);
        }
    }
      

  14.   

    同意realsmy(久城) 的说法
    num是aa类构造方法aa()中的局部变量
    只有在aa()方法内可以访问num,当构造方法aa()执行完了以后
    变量num就不存在了,不要说是继承了aa类的bb类的实例了,就是aa类的实例也访问不到num变量
      

  15.   

    楼主sb?
    自己开的帖子,不回,也那几行代码写的真烂,就这样还学程序呢?认真一点好么?靠!
    变量到底放在什么地方?
    class AA{
    public int num;
    // public static in num;这里照样可以得到值
    AA(){
    num = 100;
    }
    }
    public class SomePro extends AA{ /**
     * @param args
     */
    public static void main(String[] args) {
    SomePro sp = new SomePro();

    System.out.println(sp.num);
    }}哪个说得不到变量的?都爬去
      

  16.   

    .......如果能输出,那么java的封装还有什么意义????
      

  17.   

    不管怎么说,构造方法是不能被继承的啊,
    public class aa
    {
    aa()
    {
     int num=100;
    }
    }
    class bb extends aa
    {
    public static void main(String args[])
    {bb t=new bb();
    System.out.println("此处输出aa类中num的值");
    }
    }
    那么,aa中还有什么要被bb继承的呢!
    我们只能在bb类的构造函数中通过super()语句调用aa类的构造函数(只能是第一个语句)
    可是你又不让在aa类输出,那么就只能声明一个字段了,然后让bb类继承下来!
      

  18.   

    关键在于java的垃圾自动回收机制,否则象c++一样还可以到内存中去读,你这样方法一过就释放了
      

  19.   

    竟然还有这么多人帮他回复,请看下面连接==========强烈BS tianjuan 这个人!==========(brooksychen)
    http://community.csdn.net/Expert/topic/5484/5484305.xml?temp=.7556726