静态类静态属性静态方法
静态方法和实例方法的访问权限表
静态成员变量 | 静态方法 | 实例成员变量 | 实例方法 | |
静态方法 | 直接访问 | 直接访问 | 不可直接访问 | 不可直接访问 |
实例方法 | 直接访问 | 直接访问 | 直接访问 | 直接访问 |
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication7
{
public class class1
{
private int _name;
private int _woman;
public static int Num;
public int Name
{
get
{
return _name;
}
set
{
_name = value;
}
}
public class1()
{
_woman = 101;
}
public class1(int a)
{
this._name=a;
}
public void Print()
{
Console.WriteLine("这是print");
}
public static void Print2()//静态
{
Console.WriteLine("这是print2");
}
}
static class class2
{
private static int _man;
private static int _woman;
private static class1 _myClass;//字段是 类
public static int Man//静态类的属性
{
get
{
return _man;
}
set
{
_man = value;
}
}
public static int Woman
{
get { return _woman; }
set { _woman = value; }
}
public static class1 MyClass//属性 是类
{
get
{
return _myClass;
}
set
{
_myClass = value;
}
}
static class2()//静态构造函数 初始化一起写参数
{
_woman = 101;
}
public static void Print3()
{
Console.WriteLine("这是print3");
}
}
class Program
{
static void Main(string[] args)
{
class1 c1 = new class1(100);//实例化对象c1
c1.Name = 100;
c1.Print();
class1.Print2();//不需要实例化就可以直接调用静态函数
class1.Num = 100;//静态变量 直接用类名调用,不可实例化调用
class1.Num = 101;
Console.WriteLine(class1.Num);
class2.Print3();//不需要实例化就可以直接调用静态函数
class2.Man = 100;//不需要实例化
// class2.MyClass = c1;//不需要实例化,直接存储 实例化对象c1
class2.MyClass.Print();//直接调用c1的非静态方法
class2.Woman = 102;
Console.WriteLine(class2.Woman);
Console.ReadKey();
}
}
}