CS Access Modifiers SN 27.09.21
CS Access Modifiers SN 27.09.21
C# ACCESS MODIFIERS
ACCESS MODIFIERS
1. PRIVATE MODIFIER
1. SOURCE CODE
using k=System.Console;
// instance class definition Private Instance Variable
class PrivateM
{
// private variable definition
private int j = 99;
// instance method
public void info()
{
k.WriteLine("j= "+j);
}
// main() method is placed in SAME CLASS
static void Main()
{
// object creation and calling default constructor
PrivateM obj = new PrivateM();
k.WriteLine("---------------------------------------");
k.WriteLine("\tC# Private Modifier ");
k.WriteLine("---------------------------------------");
// calling instance via object
obj.info(); Object Creation
}
}
2. OUTPUT
DRAWBACKS
2. PUBLIC MODIFIER
1. SOURCE CODE
using k = System.Console;
// user defined namespace ‘AccModifiers’
namespace AccModifiers
{
class Person
{ Container Class
public string name;
public int id;
}
class PublicM1
{
Person obj = new Person();
// Accessing public variables in outside of a class
void input(string s, int i)
{
obj.name = s;
obj.id = i;
}
void details()
{
k.WriteLine("Name\t: "+obj.name);
k.WriteLine("Id\t: " + obj.id);
}
static void Main()
{
k.WriteLine("-------------------------------------------------------");
k.WriteLine("\t\tC# Public Modifier ");
k.WriteLine("\tAccessing Public Modifier in Outside of
class,\n\tInside of Same Namespace ");
k.WriteLine("-------------------------------------------------------");
// object creation
PublicM1 pm = new PublicM1();
// calling 2 instance methods
pm.input("Surya",99);
pm.details();
k.WriteLine("-------------------------------------------------------");
}
}
}
2. OUTPUT
class PublicM2
{
static void Main()
{
k.WriteLine("----------------------------------------------------------------");
k.WriteLine("\t\tC# Public Modifier II ");
k.WriteLine("\tAccessing Public Modifier in Outside of
class,\n\tOutside of Same Namespace ");
k.WriteLine("----------------------------------------------------------------");
// object creation for Test class
pack.Test tt = new pack.Test();
// accessing the public variables in outside of a namespace
// set the values of public variables in outside of a namespace
tt.input("Ganesh",201);
// print the details public variables in outside of a namespace
k.WriteLine("Name\t: " + tt.name);
k.WriteLine("Id\t: " + tt.id);
k.WriteLine("----------------------------------------------------------------");
}
}
}
2. OUTPUT
3. PROTECTED MODIFIER
It is accessible only within a same class as well as in sub class (if
inheritance is involved)
It is same as private modifier
It gives global scope to the variables (instance variable, static
variable) and the methods (instance method, static method,
constructor, properties, etc..,) in a same class.
It gives global scope to both variables and methods in a same
namespace (if inheritance is involved)
It provides partial security to the application
IV. EXAMPLE OF PROTECTED MODIFIER
1. SOURCE CODE
2. OUTPUT
DRAWBACKS
4. INTERNAL MODIFIER
1. SOURCE CODE
using System;
using k = System.Console;
namespace AccModifiers // user defined namespace
{
class A // complete class
{
internal int i = 283;
}
class B // B is container class
{
A obj = new A();
public void set(int a)
{ Internal Instance Variable
obj.i = a;
}
}
class C // C is also container class
{
A obj = new A();
public void disp()
{
k.WriteLine("i= " + obj.i);
}
}
class InternalM
{
static void Main()
{
k.WriteLine("-----------------------------------------------------");
k.WriteLine("\tC# Internal Modifier\n\tAccessing internal
variable\n\tanywhere in the current namespace");
C#.NET (Unit 1) Page 9
| C# Tutorial – Access Modifiers
k.WriteLine("----------------------------------------------------");
B b1 = new B();
C c1 = new C();
// Accessing internal variable in class 'B' (Assignment)
b1.set(306);
// Accessing internal variable in class 'C' (Calling)
c1.disp();
k.WriteLine("----------------------------------------------------");
}
}
Container Class
If a class contains an object of another class, then it is called as
container class
EXAMPLE
class A // Component or Control class
{
…
}
class B // Container class or Holder class
{
// object creation for class A
A obj =new A();
…
}
2. OUTPUT
DRAWBACKS
1. Private Yes No No No No