| **Navigation:**  [[clarion.htm|Clarion.Net (Clarion#)]] > [[clarion net language reference.htm|Clarion# Language Extensions]] > Variable and Entity Attributes >====== PUBLIC (set variable public to all CLASS modules) ====== | [[internal class member assembly accessible .htm|{{btn_prev_n.gif|Previous page}}]][[clarion net language reference.htm|{{btn_home_n.gif|Return to chapter overview}}]][[variable declaration outside of the data section.htm|{{btn_next_n.gif|Next page}}]] | | || {{newcnet.jpg|NewCNet.jpg}} **PUBLIC** {{blk2blue.jpg|blk2blue.jpg}} The **PUBLIC** attribute specifies that the variable on which it is placed is visible to all PROCEDUREs defined within the source module containing the methods of the CLASS structure (whether members of the CLASS or not). This encapsulates the data from other CLASSes. **PUBLIC** is also valid when used with static (threaded or non-threaded) variables outside of a CLASS structure. If a static variable is declared with the PUBLIC attribute, the compiler generates it without a public external name. Hence, it can only be used by procedures defined in the same source module. **Example:** **MyNumber     LONG,PUBLIC     !make variable public to all procedures in module** **See Also:** [[private set variable private to a class module .htm|PRIVATE]], [[protected set variable private to a class or derived class .htm|PROTECTED]]** , **[[internal class member assembly accessible .htm|INTERNAL]]