黑马程序员技术交流社区
标题:
菜鸟关于函数调用的简单问题,谢谢各位兄弟呵呵
[打印本页]
作者:
ぺsimon☆
时间:
2013-5-14 16:24
标题:
菜鸟关于函数调用的简单问题,谢谢各位兄弟呵呵
本帖最后由 ぺsimon☆ 于 2013-5-15 15:37 编辑
/*
内部类访问的练习
*/
class Outer
{
int num=3;
public void out()
{
System.out.println(num);
}
class Intner
{
int num=5;
public void inn()
{
System.out.println(num);
}
}
}
class OutInDemo
{
public static void main(String[] args)
{
Outer out=new Outer();
out.num;
}
}
复制代码
不知道为什么会报错:
OutInDemo.java:30: 不是语句
out.num;
作者:
ZhaoYuBetter
时间:
2013-5-14 16:32
out.num = 3; 试试看。你需要赋值给它
作者:
xuemeng
时间:
2013-5-14 16:35
这个java的语法就是这样啊, 没有任何原因的啊!!!
作者:
钟林杰
时间:
2013-5-14 16:39
本帖最后由 钟林杰 于 2013-5-14 16:54 编辑
这应该是代码里面的语法规范,它限制不能无缘无故调用数据成员。例如你的out.num没有使用,所以出现报错。当你使用它了就不会报错,你可以把它赋给一个变量(int i = out.num;),或使用控制台打印(System.out.print(out.num);),这样的情况他就不会报错了。
作者:
殇_心。
时间:
2013-5-14 16:40
本帖最后由 殇_心。 于 2013-5-14 16:41 编辑
out.name 这是个变量。
一个语句是需要一个完整的逻辑表达式的。
你可以给这个 out.name 赋值或者 赋值给别人。
如:
out.name = 3;
或者 int name = out.name;
作者:
long
时间:
2013-5-14 16:50
没什么别的原因,java为了方便我们使用,加入了严格的语法检查,程序执行语句out.num; 并没有多大的意义,既不产生副作用,也没打印内容,也没有改变自身的值.....既然这样,java干脆视它为非法的语句。而out.num++; 和System.out.println(out.num);等语句则是合法的。
作者:
尖卡斌引
时间:
2013-5-15 00:09
当然会出错,因为语法错误。
num 是Outer 类的一个初始化整型变量,不是方法,不能直接调用。
你可以改为以下语句:
第一种方法:把第30行(out.num)改为
System.out.println(out.num); //直接打印 Outer中的num值
第二种方法:把第30行(out.num)改为
out.out(); // 调用Outer类中定义的out方法实现打印num的值
以上两种方法都可以实现打印Outer类中的num值
作者:
ぺsimon☆
时间:
2013-5-15 15:37
谢谢各位兄弟姐妹,我明白了呵呵
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2