2014-02-08 2 views
1

Я объявила, что моя локальная переменная защищена, с тем же именем с другой общей переменной.Защищенная переменная в основном методе

Мой код:

public class jc8 { 

    private int x = 8; 

    public static void main(String[] args) { 

    protected int x = 5;    // compile time ERROR 
    } 
} 

почему?

+0

Что делает модификатор 'protected'? –

+0

@RohitJain Это вопрос экзамена. – user3281108

+0

Почему? Это не юридическая Java. Мне трудно поверить, что это вопрос экзамена именно в такой форме. – EJP

ответ

1

Вы не можете использовать ключевое слово protected внутри блока методов. Это должно изменить access от members, а не local variables. Думаю об этом. область вашей локальной переменной - это только основной метод. Это, по определению, личное для этого метода.

Пример

protected int x = 10; 

public static void main(String[] args) 
{ 
    // Valid 
} 

Это позволит подклассы вашего класса, чтобы иметь доступ к x.

0

«public», «protected» или «private» - это модификаторы видимости, которые могут применяться к членам класса не к локальным переменным.

Но что более важно, что вы пытаетесь выполнить с этим определением ?, то, что его значение в вашей голове локальной переменной должно быть защищено ?, подумайте об этом и попытайтесь понять «почему» это не возможно в java.

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(){} 

так что вы не можете использовать защищенный внутри блока кода .Вы должны объявить его вне блока кода вы объявили

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 
    } 
0

локальная переменная не изменена. Почему вы пытаетесь это сделать?

Их объем находится между брекетами метода.

Смежные вопросы