java 内部类

java 内部类,第1张

//由于时间关系,你把张孝祥里面关于内部类的内容看一看,我给你的代码改了,你参考参考

public class InnerClass {

public static void main(String[] args){

T a=new InnerClass()new T();

}

class T{

}

}

//你给的别人的代码在main方法里建立的对象不是内部类的对象,而是其本身所在的类的对象

//而go方法是一个成员方法,不带有static的,所以调用其本身所在类的内部类完全可以

//你最后补充的完全可以,只是main方法里的内部类有效范围小

//你可以这样运行一下

public class InnerClass {

public static void main(String[] args){

class T{

}

T a=new T();

Systemoutprintln(a);

}

}

你这里面有两个错:

1、Leis内部类是非静态类,不能在静态方法里初始化,即第三行Leis x=new Leis();报错,可以把Leis类改成静态类,即

public static class Leis{

}

2、Leis()是Leis类的构造函数,不能在第4行xLeis()显示调用

一句话:静态方法里不能访问非静态内部类。但你可以在外部类的一个成员方法里访问非静态内部类,然后你再在静态方法里初始化外部类,通过外部类来访问非静态内部类。

初学者这样写就不太好了

Student 这样定义就是一个内部类了

那你必须要创建外部类TestOop,才能访问它的内部类

TestOop t = new TestOop();

Student s1 = tnew Student();//这样获取内部类的实例

建议新建一个java文件,把这个Student复制出去,

或者放到public class TestOop{} 这个类(大括号)的外面 但是要去掉public

interface Inter {

    void show();

}

class Outer {

    class Inner implements Inter {

        @Override

        public void show() {

            Systemoutprintln("Hello World");

        }

    }

    static Inter method() {

        return new Outer()new Inner();

    }

}

public class OuterDemo {

    public static void main(String[] args) {

        Outermethod()show();

    }

}

public class TestInnerClass {

 private String str;

 private InnerClass innerClass;

 public TestInnerClass() {

  str = "外部类字符串";

  innerClass = new InnerClass();

 }

 

 class InnerClass {

  private String str;

  public InnerClass() {

   str = "内部类字符串";

  }

  public void printInnerStr(){

   Systemoutprintln("输出内部类str>>>"+str);

  }

  public void printOuterStr(){

   Systemoutprintln("输出外部类str>>>"+TestInnerClassthisstr);

  }

 }

 

 public InnerClass getInnerClass() {

  return innerClass;

 }

 

 public static void main(String[] args) {

  TestInnerClass outerClass = new TestInnerClass();

  outerClassgetInnerClass()printInnerStr();//获取内部类实例对象并调用输出方法

  outerClassgetInnerClass()printOuterStr();

 }

}

以上就是关于java 内部类全部的内容,包括:java 内部类、java外部类怎样调用内部类方法、Java报错 不懂 求解释等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9567987.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存