A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹宇 中级黑马   /  2013-4-10 02:03  /  2449 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 曹宇 于 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方法,请问如何调用呢?



还望大神回答.



谢谢了!

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

3 个回复

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

             new Zhu().test();
      }

}

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
问题一:当然不可以咯,以为x是Sd类中main函数内的局部变量,及时As类继承Sd类也无法使用将其赋值个y;
问题二:如果想调用另一个类中的方法有两个,一个是通过创建要调用的类的对象,另一个是通过要调用的类的名调用(前提是该方法是静态方法),此题中只能通过创建一个对象,来调用;如:
new Zhu().test()  //创建一个匿名对象;
或者 Zhu z = new Zhu();  z.test();

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 黑马-张明 于 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();
      }

}

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马