java内部调用内部方法的问题

java中我们知道
可以public class Ni_Ming{
public static void main (String args[])
{
public static void show()
{
Systm.out.println("这是一个内部成员成员函数");
}
}
}
//老师,这么做是对的
//但是如果我想在另外一个类里面使用内部成员函数就会报错
//比如
class t
{
public static void c()
{
public static void jdf()
{
System.out.println("你好");

}

}
}
为什么就不行了

他说问题在这里,不懂

  Java内部调用内部方法主要是通过内部类实现。Java内部类分两种,成员内部类和方法内部类。

  代码如下:

1.成员内部类
/**
 * æˆå‘˜å†…部类
 */
public class Outer {
    private int outer = 1;
 
    class Inner {
        public void show() {
            System.out.println("outer =" + outer);
        }
    }
 
    public static void main(String[] args) {
        Outer.Inner in = new Outer().new Inner();
        in.show();
 
    }
 
}
 
2.方法内部类
/**
 * æ–¹æ³•å†…部类
 * 
 */
public class Outer2 {
    private int outer = 1;
 
    public void showOut() {
 
        class Inner {
            public void show() {
                System.out.println("outer =" + outer);
            }
        }
        new Inner().show();
    }
 
    public static void main(String[] args) {
        Outer2 in = new Outer2();
        in.showOut();
 
    }
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-13
public class Ni_Ming {
public static void main(String args[]) {
class A {
public void show() {
System.out.println("这是一个内部成员成员函数");
}
}
new A().show();

}
}

/**
 * 方法里面可以定义类,不可以定义方法(可以调用方法)
 */
 
 而且你给的第一个例子也是不可以的啊!
 
 本人的理解,如有疑问,可以一起探讨。

追问

我懂了,谢谢。另外你是用什么软件穿的图片怎么不想我的图片那样。还有一个就是内部类你会么。给个例子呗

追答1.成员内部类
/**
 * 成员内部类
 */
public class Outer {
private int outer = 1;

class Inner {
public void show() {
System.out.println("outer =" + outer);
}
}

public static void main(String[] args) {
Outer.Inner in = new Outer().new Inner();
in.show();

}

}

2.方法内部类
/**
 * 方法内部类
 * 
 */
public class Outer2 {
private int outer = 1;

public void showOut() {

class Inner {
public void show() {
System.out.println("outer =" + outer);
}
}
new Inner().show();
}

public static void main(String[] args) {
Outer2 in = new Outer2();
in.showOut();

}
}

 

追问

两个有什么不同,在生么情况下会用方法内部类,什么情况下会用成员内部类。另外你这个图片是用什么穿上去的

追答

    成员内部类:里面的那个类Inner可以在类外部进行实例化操作


    方法内部类:里面的那个类Inner的范围仅限于在该方法内可以实例化,不可以在此方法外对其实例化,所以难以复用,一般我们如果只会使用一次或者较少使用时这样用。


    那个不是图片(是可以复制的),你贴代码的时候,如图:下拉选择java即可


本回答被提问者和网友采纳
第2个回答  2014-04-13

你老师的代码是对的?还是你看错了,java方法里面是不能定义方法,编译都不能通过,只能定义内部类,而且这个和方法里面套方法是完全不同的。。。

public class t
{
    public static void main(String args[]){
        class T
        {
            public void show(){
                System.out.println("Hello World");
            }
        }
        new T().show();
    }
}

第3个回答  2014-04-13
兄弟,你这个是不是类嵌套类,而是方法嵌套方法了(方法c中嵌套方法jdf),Java总是不允许的。你老师写的那个也是编译报错的。追问

我知道了,谢谢。那请问内部类怎么用

第4个回答  2014-04-13
class t
{
      public static void c()
      {
           jdf(); //这样是可以的,方法中不能定义方法,只能调用方法,内部类除外
      }
      public static  void jdf()
      {
          System.out.println("你好");
      }
 
}

追问

我知道了,谢谢,请问内部类怎么用。基础不太好啊,详细点呗

追答

是的,也错了,而且Systm 应该是:System

追问

内部类怎么用·

追答public class Test{
    public void show2(){
        class Addd{ //就是在类的内部定义的类
            public void add(){}  //这是类内部的方法
        }
    }
}

追问

内部类在什么情况下会用,我扣扣你了。

追答

面试会用,真实开发中很少用的。

相似回答