黑马程序员技术交流社区

标题: 其他类中如何调用主函数的成员? [打印本页]

作者: 曹宇    时间: 2013-4-10 02:03
标题: 其他类中如何调用主函数的成员?
本帖最后由 曹宇 于 2013-4-10 12:34 编辑

问题1:
如:
  1. class Sd
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int x=0;
  6.                 System.out.println("Hello World!");
  7.         }
  8. }

  9. class As
  10. {
  11.         int y;
  12.         y=x;
  13. }
复制代码
我想要用主函数的成员x  在 As类中
int y;
y=x;
这样写可以不可以呢?

问题2:
其他类如何调用主函数所在类的方法如何调用呢?
如:
class Zhu
{
      public static void main(String[] args)
     {
         
     }

     public void test()
     {

     }
}

class Test
{
      public void demo()
      {

              在这里如何调用主函数所在的 Zhu这个类中的 test 方法?
      }

}

想在Test类中的demo方法中调用主函数所在类 Zhu这个类中的test方法,请问如何调用呢?



还望大神回答.



谢谢了!


作者: Keith    时间: 2013-4-10 04:33
问题一:当然不可以 x是哪的? 一, x只是Sd类中的一个局部变量,并不是你所谓的成员变量二,sd类与as类没有任何关系,如何赋值  
问题二:要调用一个类的非静态方法,只有new这个类的实例,然后调用
class Test
{
      public void demo()
      {

             new Zhu().test();
      }

}

作者: 林声荣    时间: 2013-4-10 08:15
问题一:当然不可以咯,以为x是Sd类中main函数内的局部变量,及时As类继承Sd类也无法使用将其赋值个y;
问题二:如果想调用另一个类中的方法有两个,一个是通过创建要调用的类的对象,另一个是通过要调用的类的名调用(前提是该方法是静态方法),此题中只能通过创建一个对象,来调用;如:
new Zhu().test()  //创建一个匿名对象;
或者 Zhu z = new Zhu();  z.test();
作者: 黑马-张明    时间: 2013-4-10 09:09
本帖最后由 黑马-张明 于 2013-4-10 09:22 编辑

第一个是肯定不行的,因为他们所在的类不同,之间也没有任何调用关系,所以肯定是不能跨类调用变量的!
第二个从一个类中调用另一个类的方法,如果另一个类中的那个方法是私有的话,就不能直接调用到,如果是其他类型的话看情况,如果是静态的(static)话,直接用类名可以调用到,如果是非静态的,就需要利用另一个类的实例(也就是用那个类生成的对象)来调用。LZ的问的可以像下面这样调用
class Zhu

{
      public static void main(String[] args)
     {
         
     }

     public void test()
     {

     }
}

class Test
{
      public void demo()
      {
              new Zhu().test();
      }

}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2