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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Student
{
        int age;//这是成员变量

        public void show()
        {
                int age;//这是局部变量
                System.out.println(age);
        }
}

class StudentTest
{
        public static void main(String[] args)
        {
                //创建对象
                Student s =  new Student();
                s.show();
        }
}
代码运行会有错吗?当然会错,报的是尚未初始化的错误。
稍微解析一下吧,当show()方法打印输出的时候,使用的是局部变量age,而不是成员age,遵循的是就近原则,局部变量是没有初始化值的。
当你把那个局部变量的age代码注释掉,再运行就不会报错。这时候使用的是成员age,成员变量是有初始化值的。

6 个回复

倒序浏览
支持一下楼主~
回复 使用道具 举报
上面说的没错,遵循就近原则,所以打印输出的事局部变量,而局部变量要被使用必须有初始化值,否则会报错,成员变量的话有默认初始化值0,可以直接使用;
回复 使用道具 举报
感谢分享
回复 使用道具 举报
感谢分享,这种代码对0基础的哥们来说还是很有用滴···必须支持
回复 使用道具 举报
赞一个。支持一下
回复 使用道具 举报
赞一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马