• c# 第30节 类字段与属性


    本节内容:

    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

     

  • 相关阅读:
    https authorization basic
    第二十一章 单例模式
    第十九章 组合模式
    第十八章 备忘录模式
    第十七章 适配器模式
    第十六章 状态模式
    新博客~
    CF922D Robot Vacuum Cleaner
    BZOJ1767 [CEOI2009]harbingers
    树的直径学习笔记
  • 原文地址:https://www.cnblogs.com/hero799/p/8666695.html
Copyright © 2020-2023  润新知