黑马程序员技术交流社区
标题:
内部类如何获取外部类变量的值
[打印本页]
作者:
段郎
时间:
2014-4-23 01:27
标题:
内部类如何获取外部类变量的值
package com.itheima;
public class Test7 {
/**第7题:定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
//定义一个类
class WaiBuClass{
private int a=0;
private void show(){
System.out.println("这是外部类中的show方法");
}
//定义一个类部类
class NeiBuClass{
a=1;//这报错,怎么解决??????????????????????????????????获取方法的方式和变量是一样的么?
}
}
作者:
idream
时间:
2014-4-23 02:13
标题:
RE: 内部类如何获取外部类变量的值
</blockquote></div><div class="blockcode"><blockquote>package cn.itheima.demo;
/*
* 需求:测试Outer中方法
*/
public class Demo_Outer {
public static void main(String[] args) {
Outer out = new Outer();
out.show();
}
}<div class="blockcode"><blockquote>package cn.itheima.demo;
/*
* 需求: 第7题:
* 定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,
* 并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数。
*/
//外部类
public class Outer {
//私有变量
private int num = 0;
//函数
public void method() {
System.out.println(num + "method run....");//在这里num省略的是this
}
//内部类
class Inner {
// num = 5; //这种书写是error,因为在类中只能定义属性和行为,而num=5是一个语句
public void print() { //在内部类函数中访问外部成员变量,并调用外部函数
num = 7;
System.out.println(num);//在这里num省略的是Outer.this
method();
}
}
//在外部类函数中创建内部类对象,调用内部类函数
public void show() {
Inner in = new Inner();
in.print();
}
}
复制代码
作者:
清风夜独醉
时间:
2014-4-23 02:34
本帖最后由 清风夜独醉 于 2014-4-23 02:45 编辑
你这个属于语法错误。访问外部类的操作只能在方法中执行。你可以在内部类写一个方法,在方法里访问外部类的变量或者给变量赋值。
再在外部类new一个内部类的对象,然后调用这个对象的方法,就完成了内部类函数中访问外部成员变量,并调用外部类的函数。
楼上已经给出了修正后的代码,我就不再贴代码了。另外,建议你再好好补补java的基础知识。把介绍java语法的入门书籍再好好看一遍。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2