黑马程序员技术交流社区
标题:
有关内部类
[打印本页]
作者:
崔一恒
时间:
2013-7-14 22:27
标题:
有关内部类
本帖最后由 崔一恒 于 2013-7-15 22:40 编辑
“创建一个包含有private的属性和private方法的类。然后创建一个内部类,它有一个方法可用来修改外部类的属性,并调用外部类的方法。在外部类的另一个方法中,创建此内部类的对象,并且调用它的方法。”其中“
它有一个方法可用来修改外部类的属性”这句话该怎么理解
作者:
白堇翎
时间:
2013-7-14 22:36
本帖最后由 白堇翎 于 2013-7-14 22:37 编辑
我写一段伪代码来帮助你理解好了
class 外部类{
int 外部元素;
void 外部函数(){}
class 内部类{
void 请用此方法调用外部函数(){}
void 请用此方法修改外部元素(){}
void 内部函数(){}
}
内部类 内部类1 = new 内部类;//实际上代码不能这样写 我这样写只是帮助你理解
}
复制代码
作者:
董凯
时间:
2013-7-14 22:52
简单写个例子作参考吧~~
=====================
public class Test9 {
private String a="外部属性";
private void A(){
System.out.println(a);
}
B b(){
return new B();
}
class B {
void fun(Test9 t,String s){
t.a=s;
}
}
public static void main(String[] args){
Test9 t= new Test9();
t.A();
t.b().fun(t, "内部类修改外部类属性");
t.A();
}
}
================================
输出结果:
外部属性
内部类修改外部类属性
作者:
一木榜公
时间:
2013-7-14 23:14
/*
内部类有一个方法可用来修改外部类的属性?
针对以下代码,可以把这句理解为:
内部类Inner中setName()方法可以修改,外部类Person的name属性
*/
class Person
{
private String name; //外部类private属性
private int age;
class Inner //内部类
{
//" 它有一个方法可用来修改外部类的属性?"
//修改外部类的name属性的内部类方法(模拟以上你的疑问)
public void setName(String name)
{
Person.this.name = name; //修改外部类的name属性
sop(name); //内部类调用外部类的方法
}
}
//调用内部类的方法修改name属性
public void set(String name)
{
Inner in= new Inner();
in.setName(name);
}
/*
** 输出函数
*/
public void sop(String s)
{
System.out.println(s);
}
}
class Test
{
public static void main(String[] args)
{
Person p = new Person();
p.set("张三");
}
}
/* 编译结果:是
E:\JAVA1306>java Test
张三
*/
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2