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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 夏凡 中级黑马   /  2013-3-28 07:42  /  1659 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 夏凡 于 2013-3-28 07:50 编辑

程序第九行 int x = 3; 前面加 private为什么会报错”非法的表达式“?
  1. class Outer
  2. {
  3.         private int x = 1;
  4.         class Inner
  5.         {
  6.                 private int x = 2;
  7.                 private void founc()
  8.                 {
  9.                         int x = 3;                        //此处为什么加private会报错"非法的表达式"

  10.                         System.out.println("founc_x = "+x);                        //由内而外分别输出x
  11.                         System.out.println("inner_x = "+this.x);
  12.                         System.out.println("outer_x = "+Outer.this.x);
  13.                 }
  14.         }
  15.         void method()
  16.         {
  17.                 Inner in = new Inner();
  18.                 in.founc();
  19.         }
  20. }

  21. public class InnerClass
  22. {
  23.         public static void main(String[] args)
  24.         {
  25.                 Outer out = new Outer();
  26.                 out.method();
  27.         }
  28. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

9 个回复

倒序浏览
int x = 3;         //此处为什么加private会报错"非法的表达式"

- -! 方法里面能够声明私有属性么??
只有类里面才可以设置访问权限 方法的作用域属于局部作用域 ,肯定不能设置私有访问权限

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
成员变量或者成员函数才能声明为private,当然内部类也可以声明为private
int x = 3;在函数体内,是局部变量,不能声明为private

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
类的成员可以用private、public等权限关键字修饰,函数的变量不可以用权限关键字修饰。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
private public 为类成员变量修饰符,不可以修饰局部变量
修饰成员修饰符:private public protected 默认
类成员修饰符:public 默认 内部类的话可以用成员的修饰符

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
public,priveta,protected,以及默认是用来修饰类中的成员变量的吧,方法中的变量是局部变量,没这些修饰符的。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
static,public,protected,private是成员变量修饰符,
楼主现在是在试图用成员变量修饰符修饰局部变量,是语法错误

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
成员变量在方法结束后就释放了,定义成private也没用。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
int x=3 中x是局部变量,不能用成员修饰符private修饰,java语法中就这么规定的,没有为什么哦!

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
修饰符可以用于修饰类的成员变量,但是方法中的变量就不用修饰符修饰了。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

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