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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© pzfpang449 中级黑马   /  2013-2-9 13:58  /  1144 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

关于private非法的问题
public  class rabbit
                {
                                public int month;
                                public int rabbitNumber;                                                                                                                        //对象的属性。
                                public int rb( int month )                                                         //定义一个方法调用属性。
                                        {
                                                        private int  f ,f1 ,f2 ;
                                                        f1=1;
                                                        f2=1;
                                                        for (int i = 3; i < month ; i++)
                                                        {
                                                                f = f2;
                                                                f2 =f1+f2;
                                                                f1 = f;
                                                        }
                                                        return rabbitNumber=f2;
                                        }
                }

答:
在类体中变量定义部分所声明的变量为类的成员变量,而在方法体中声明的变量和方法的参数则称为局部变量。
局部变量是不能使用public、protected、private和static关键字对局部变量进行修饰的。
本题中int  f ,f1 ,f2 都是局部变量。
将程序修改一下就可以了:


public  class Rabbit //默认的习惯把类的首字母大写;变量,方法的首字母小写!
{
        public static void main (String[] args)//没有主函数程序是不能运行的。
        {
                System.out.println("rabbitNumber="+rb(8));
        }
    public int month;
    public int rabbitNumber;                                                                                                                  
    public static int rb( int month )                                                        
      {
      int  f ,f1 ,f2 ;
      f1=1;
      f2=1;
      for (int i = 3; i < month ; i++)
      {
         f = f2;
         f2 =f1+f2;
         f1 = f;
      }
       return f2;//返回值需为int型
      }
}
希望对你有所帮助

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马