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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 乐凡 初级黑马   /  2012-8-6 22:22  /  2088 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

创建一个包含实例内部类的类,外部类中定义一个名为str的String字符串并初始化任意值,在内部类中定义
跟外部类同种类型且同名的变量,并在内部类中定义一个方法,分别打印外部类和内部类的变量。

评分

参与人数 1技术分 +1 收起 理由
包晗 + 1 鼓励一下

查看全部评分

4 个回复

倒序浏览
  1. public class Outer{
  2.          String str ;
  3.          public Outer(String str){
  4.                  this.str = str;
  5.          }
  6.         public static void main(String[] args) {
  7.                 class Inner{
  8.                         String str = "dsas";
  9.                         public void show(){
  10.                                 System.out.println(new Outer("asdas").str+":"+str);
  11.                         }
  12.                 }
  13.                 Inner in = new Inner();
  14.                 in.show();
  15.         }
  16. }
复制代码
给与作为参考。

评分

参与人数 1技术分 +1 收起 理由
包晗 + 1

查看全部评分

回复 使用道具 举报
public class Easy {
        String a = "123";
        public static void main(String[] args) {
                class Inner {
                        String a = "abcd";
                        public void print() {
                                System.out.println(new Easy().a + "  " + new Inner().a);
                        }
                }
                new Inner().print();
        }
}
希望可以帮到你

评分

参与人数 1技术分 +1 收起 理由
包晗 + 1

查看全部评分

回复 使用道具 举报
我想楼主是想区分在内部类里面 内部类和外部类里面的同名变量的吧。
class Outer
{
     String str="aaa";
     public void showOuter()
     {
          class Inner
          {
                String str="bbb";
                public void showInner()
                {
                     System.out.println("外部类str:"+Outer.this.str); //当在内部类里面访问外部类的同名变量的时候 应该先获得外部类的当前对象的引用(也即 写成  外部类名.this
                     System.out.println("内部类str:"+this.str);// 在内部类里面访问本内部类里面的变量 和一个普通类访问自己的变量一样 可以直接访问之,也可以 用this访问之
                                                                                  //并且这两种访问方式是等效的
                }
          }
          new Inner().showInner();
     }
}
class Main
{
        public static void main(String[] args)
        {
             new Outer().showOuter();
        }
}

评分

参与人数 1技术分 +1 收起 理由
包晗 + 1

查看全部评分

回复 使用道具 举报
class  OuterInnerDemo
{
        public static void main(String[] args)
        {
                new Outer().method();
        }
}
class Outer
{
        String str="qqq";
        class Inner
        {
                String str="ooo";
                public void show()
                {
                        System.out.println(str);/*内部类会先访问内部类中的变量str="ooo",
                                        若将内部内中的str注释掉,则会访问外部类中的变量str,str前面省略了 外部类名.this
                                        */
                        System.out.println(this.str);//this代表内部类对象,所以只能访问内部类中的变量str,打印内部类变量。                       
                        System.out.println(Outer.this.str);//Outer.this代表外部类对象,所以只能访问外部类中的变量str,打印外部类变量。
                }
        }
        public void method()
        {
                Inner in=new Inner();
                in.show();
        }
}
不知道这是不是楼主想要的,这是我个人对内部类外部内的一些看法。

评分

参与人数 1技术分 +1 收起 理由
包晗 + 1

查看全部评分

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