The problem in scenario 1 isn't one of visibility, but of syntax. It looks to the compiler that you are declaring a member variable of type value1 and you want to assign a value of 1 to it, but you didn't specify an identifier.
If you provide a type for value1, as in
then you've declared a valid member variable, but hidden the value1 from interface A.
As you've already seen, you can reference value1 in the class, but you can't modify the value. So, you can have
when i read from kathy and bert(java cert) it is said that if you declare a variable in an interface(like you did in your interface declaration), it is implicitly "public static final". e.g if you declare like: int i=0; // (1) in an interface it is equal to : public static final int i=0; // (2)
Therefore in your code, you are trying to change the value of the variable that is declare as final even if you don;t write "final" but it is implicitly "final"(we can't change the value of the primitive if it is declare as final).
sometimes we can;t figure it out if we got an error, but if you know the rules as explained in kathy book, it is very clear why we got an error.
Kathy and bert is a good book, just explored the book, and enjoyed it.