Question: Hello I have created a button on my Odoo 10 form "SET geprint" now i want to attach an action to the button. If i press the button the value of the boolean geprint must change to 1. How can I make this possible? 

If possible i would also like to create that button in the list view to update multiple records. 
Thx for your help

[![enter image description here](https://i.stack.imgur.com/4gzLT.png)](https://i.stack.imgur.com/4gzLT.png)

I tried your code but i am getting the following error now
(name field to update is x\_geprint)
button code : 

[![enter image description here](https://i.stack.imgur.com/Mr91Q.png)](https://i.stack.imgur.com/Mr91Q.png)
[![enter image description here](https://i.stack.imgur.com/XFDlh.png)](https://i.stack.imgur.com/XFDlh.png)

Answer: 
You can access private members from *any* code block that is defined in the *same class*. It doesn't matter what the instance is, or even if there is any instance (the code block is in a static context).

But you cannot access them from code that is defined in a *different class*.

Your first reference is in the same class, `Complex`, which is why it works. And the second is in a different class, `Main`, which is why it doesn't work.
Conceptually the access specifiers are @ class level, not @ instance level. 

Following could be the reasons to keep access specifiers @ class level.
From [JLS Documentation](http://docs.oracle.com/javase/specs/jls/se8/html/jls-6.html#jls-6.6), we can clearly see that the access is for users, who are implementing(or using a class/package) based on the contract.

To put in simple terms, as a developer(users) all I am concerned is what are the members(variables,methods) available, and what they do, how I can use them(the base of abstraction concept).

In your case, it is the same class and it has all the privilege to access its member and hence the observed behaviour.