C#基础 属性 构造函数 静态构造函数 析构函数

来源:互联网 发布:java写学生管理系统 编辑:程序博客网 时间:2024/05/22 13:52

一、属性

属性是度字段的扩展,根据面向对象的基本思想,字段最好设置为private,因为这样可以防止客户端直接对字段进行修改,从而保证内部成员的完整性。通过属性来访问字段,避免了调用方法。

当属性仅含有get访问器或set访问器为private级别时,这样是属性就是制度实行,反之就是只写属性。

属性除了能够直接访问字段以外,还可以加入自己的逻辑代码。

和静态字段类似,属性也可以通过static关键字声明为静态属性,不能再静态属性中使用非静态字段。


使用属性访问私有字段

结构 访问权限修饰符+字段类型+属性名{}

属性是对字段的扩展,在属性中生成字段的get、set方法

public string Name  //一般是字段首字母大写        {            get{ return name;} //属性自动生成get方法,get方法中return name            set{ name = value;}//自动生成set方法,value是set方法 的隐藏参数        }//get set 默认为公有,不用加public
public int Age
{
get{return age;}                  //return 后边一定是自己定义的变量,而不是属性
set{
if(value<0 || value>120 )//注意这个地方是对value的值进行判断
{
Console.WriteLine("年龄输入有错");
age=0;
}
else
{
age=value;
}
    }
}
二、构造函数与方法重载

当自己不写构造函数时  也可以进行类的对象的声明 Student s=new Student(); 这是因为 我们不自己写构造函数时,系统会自动提供一个不带参数的构造函数。如果自己写了一个构造函数,系统就不在提供无参的构造函数,

函数的重载

函数名一样,参数列表不一样(参数 的个数会参数的累心或参数的顺序不一样)

调用被重载的参数是根据实际传递的参数去选择对应的函数

       静态字段   字段前加static变静态字段,静态字段是属于整个类的成员,访问类名时访问

public static int totalStudents=0;//只会创建一次        public Student(string _name,int _age)//在创建对象是会调用多次,        {            name=_name;            age = _age;            totalStudents++;        }        //方法前加static变成静态方法,静态方法是属于整个类的方法由类名调用        public static void printTotalStudent()        {            Console.WriteLine ("totalstudents:{0}",totalStudents);        }

1、          构造函数可以进行方法重载

2、          如果没定义的话,会默认产生一个空的构造函数

3、          构造函数必须和类同名

4、          不允许返回类型

 

//静态成员是属于整个类的,非静态成员是属于某个具体对象的        //非静态方法中可以访问静态成员        public void print()        {            Console.WriteLine ("{0},{1}",name,age);            Console.WriteLine("totalstudents{0}",totalstudnets);        }        //静态方法中不可以直接访问非静态成员        public static void printTotalStudents()        {            Console.WriteLine ("totalstudnets:{0}",totalstudnets);            //Console.WriteLine("name:{0},age{1}",name,age);        }
                  private const static int n;这是错误变定义方法,congst static不能同时使用
private static int n=0;        public static void Main()        {            int a=5;            int b = 10;            int c=add(a,b);//Main方法是一个静态方法,要调用另一个成员(包括方法和字段),则另一个成员只能是静态方法或者                            // 创建一个对象进行调用(ClassMain m=newClassMain())Console.WriteLine(c);
静态构造函数,只会调用一次,而且不能手动调用、

 //1.第一次创建实例对象时会调用静态构造函数

            Students=new Student("wang",23);

            Student s1= new Student("li si", 23);

           Console.WriteLine(s.Name);

            //第一次访问静态成员时会调用静态构造函数

Console.WriteLine(Student.TotalStudents);

静态构造函数的特点

1、          静态构造函数不能使用任何访问修饰符

2、          静态构造函数不能带有任何参数

3、          静态构造函数只会执行一次

4、          不能直接调用静态构造函数

5、          程序员无法直接控制静态构造函数调用时机


三、析构函数

用于释放对象;当对象声明周期结束,会自动调用析构函数;

特点:

不用访问权限修饰符,没有参数,没有返回值,名字和类名一样,名字前边带~

   //对象中的成员,分为托管资源和非托管资源。托管资源会自动释放,不用手动释放

        //非托管资源就需要在析构函数中进行释放



原创粉丝点击