黑马程序员技术交流社区
标题:
求高手帮忙解决
[打印本页]
作者:
乐凡
时间:
2012-8-6 22:22
标题:
求高手帮忙解决
创建一个包含实例内部类的类,外部类中定义一个名为str的String字符串并初始化任意值,在内部类中定义
跟外部类同种类型且同名的变量,并在内部类中定义一个方法,分别打印外部类和内部类的变量。
作者:
王渠
时间:
2012-8-6 22:32
public class Outer{
String str ;
public Outer(String str){
this.str = str;
}
public static void main(String[] args) {
class Inner{
String str = "dsas";
public void show(){
System.out.println(new Outer("asdas").str+":"+str);
}
}
Inner in = new Inner();
in.show();
}
}
复制代码
给与作为参考。
作者:
余明辉
时间:
2012-8-6 22:50
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();
}
}
希望可以帮到你
作者:
牛杨
时间:
2012-8-6 23:33
我想楼主是想区分在内部类里面 内部类和外部类里面的同名变量的吧。
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();
}
}
作者:
潘星
时间:
2012-8-7 03:48
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();
}
}
不知道这是不是楼主想要的,这是我个人对内部类外部内的一些看法。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2