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、 程序员无法直接控制静态构造函数调用时机
三、析构函数
用于释放对象;当对象声明周期结束,会自动调用析构函数;
特点:
不用访问权限修饰符,没有参数,没有返回值,名字和类名一样,名字前边带~
//对象中的成员,分为托管资源和非托管资源。托管资源会自动释放,不用手动释放
//非托管资源就需要在析构函数中进行释放
- C#基础 属性 构造函数 静态构造函数 析构函数
- C# 静态构造函数
- C#静态构造函数
- C# 静态构造函数
- C# 静态构造函数
- C#静态构造函数
- C#静态构造函数
- C#静态构造函数
- C#静态构造函数
- c#静态构造函数
- C#静态构造函数
- C# 静态构造函数
- C#静态构造函数
- C# 静态构造函数
- C# 静态构造函数
- C#静态构造函数
- c#静态构造函数
- C# 静态构造函数
- 无法访问 MemoryStream 的内部缓冲区
- Python--UDP时间服务器
- [LintCode]Remove Element(Python)
- 【PostgreSQL-9.6.3】Red Hat 4.4.7下的安装
- java 注解
- C#基础 属性 构造函数 静态构造函数 析构函数
- php 关于isset empty
- c语言内容对齐详解
- php的变量类型数组
- 并查集
- 8.7 机器选择selc 2536
- 安卓友盟QQ第三方登录精简版
- 2017年08月07日
- 关于heap的问题