同一个类中方法内局部变量调用

同一个类中方法内局部变量调用

public class Test{
String str1 = "aaa";

public void a() {
String str2 = "bbb";
}

public static void eat() {
//静态方法无法访问非静态成员 除非实例化对象 通过对象.非静态成员的方法
Test test = new Test();
System.out.println(test.str1);
String b=test.a().Str2;

}
}



如上,代码 String b=test.a().Str2为什么会报错

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,

因为在类二中实例化了类一,就可以通过类一的对象名去调用类一中访问权限内的变量

而上面的代码中Test是类,str1是类中的变量,他的作用范围是整个类都可以使用;所以可以通过对象名.变量去调用;而a()和eat()是方法,他们的变量范围只能在当前方法中使用,出了这个方法,这个变量就不能用了

注:访问权限在后面的课程中会有具体的讲解

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


好帮手慕阿园 2020-05-23 17:13:17

同学你好,因为str2是局部变量,他的作用范围是a()方法内;方法内的局部变量只能在自身方法内调用

并且用test调用a方法不能用String接收,因为a方法是没有返回类型的

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


  • 提问者 慕沐1462760 #1
    比如有类1,类2,类1中的属性虽然作用域是类1,但不是也可以在类2中实际化类1的对象后,通过 对象.属性 调用吗
    2020-05-23 17:30:23
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师