我将我的本地变量声明为protected,与其他常规变量同名。
我的代码:
public class jc8 {
private int x = 8;
public static void main(String[] args) {
protected int x = 5; // compile time ERROR
}
}
为什么?
答案 0 :(得分:1)
您不能在方法块中使用protected
关键字。这是为了修改access
的{{1}},而不是members
。想一想。你的局部变量的范围只是主要方法。根据定义,它是该方法的私有。
实施例
local variables
这将允许您班级的子类有权访问protected int x = 10;
public static void main(String[] args)
{
// Valid
}
。
答案 1 :(得分:0)
“public”,“protected”或“private”是可见性修饰符,可以应用于类成员而不是局部变量。
但更重要的是,你用这个定义试图完成什么?,你要保护的局部变量的含义是什么?考虑一下这个并尝试理解“为什么”这是不可能的在java。
答案 2 :(得分:0)
o Protected Accessibilty:
Indicates that a member can be accessed from any class in the same package and from the child classes from other packages. A keyword “protected” is used to represent protected accessibility before the data type of a member declaration.
Example:
protected int y;
protected void method(){}
所以你不能在代码块中使用protected。你需要在代码块之外声明它 你宣布了
public static void main(String[] args) {
protected int x = 5; // compile time ERROR
}
正确的方法是
protected int x = 5;
public static void main(String[] args) {
// compile time ERROR
}
答案 3 :(得分:0)
未修改局部变量。 为什么你要这么做?
它们的范围在方法括号之间。