c# 第30节 类字段与属性

2021-04-19 14:25

阅读:363

本节内容:

1:字段是什么

2:属性判断字段的安全

3:对属性的解释

 

1:字段是什么

字段其实在上一节我们就使用过了:再来详细的说他一说  

amespace cw
{
    public enum gender  //public 是为了让所有的类都可以使用
    {
        男,
        女      
    }
     public class Clerk
    {   //这就是字段了,那么字段一般 是下划线加变量名 _arg ;;字段是用来存放数据
        public string _name;   
       public gender _gerder;
        public int _age;
      
     public void show() { Console.WriteLine("{0}是{1},{2}岁。",this._name,this._gerder,this._age); } } ############调用################# class Program { static void Main(string[] args) { //要想使用别的类要先实例化 Clerk zs = new Clerk(); zs._name = "张三"; zs._gerder = gender.男; zs._age = -24; zs.show(); Console.ReadKey(); } } } //输出:张三是男,-24岁

 

2:属性判断字段的安全

看到字段输出 了吗? 

张三是男,-24岁    

what ? 输出的是-24岁这不如何常理啊!可是我字段就是让存放数据的啊,又不能对判断说能不能放,这可怎么办。。。。。

 

这时候我们的主人公属性就出来了:那么属性的作用是什么呢?

保护字段,对字段的取值与赋值进行限定。 

 

实例:修改上面字段BUG:

说明:
属性往往被声明在字段在下方,并且将字段私有化。
打个比方就是:属性是男人,主外。而女人主内,并且还要将她私有化。

技术分享图片

 

 技术分享图片

 

技术分享图片技术分享图片
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace cw
{
    public enum gender  //public 是为了让所有的类都可以使用
    {
        男,
        女      
    }
     public class Clerk
    {   //这就是字段了,那么字段一般 是下划线加变量名 _arg ;;字段是用来存放数据
        public string _name;   
        public gender _gerder;
        private int _age;
        public int Age
        {
            get
            {
                return _age;
            }
            set
            {
                if (value 0 || value > 120) value = 0;
                _age = value;
            }

        }

        public void show()
        {
            Console.WriteLine("{0}是{1},{2}岁。",this._name,this._gerder,this.Age);

        }

    }
}










using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace cw
{
    class Program
    {
        static void Main(string[] args)
        {
            //要想使用别的类要先实例化
            Clerk zs = new Clerk();
            zs._name = "张三";
            zs._gerder = gender.男;
            zs.Age = -24;
            zs.show();
            Console.ReadKey();
        }
    }
}
请求完整实例

3:对属性的说明

通常我们将get和set称为访问器
get属性访问器用于返回属性值 
set 属性访问器用于分配新值

属性又分了4种:
1)既读又写,如这个实例;
2)只读,只有一个get访问器
3)只写,只有一个set访问器
4)自动 getset

 

 

 

 

 


评论


亲,登录后才可以留言!