zoukankan      html  css  js  c++  java
  • C#中属性的封装

    封装的一般性

    封装快捷键:Ctrl+R+E

    封装的目的:

    public修饰的属性,不够安全;private修饰的属性,无法使用
    所以,用到了封装:

    封装就是 隐藏对象的信息,但要流出访问的接口

    封装代码示例:

    class Child
        {
            private string name;    
            private string sex;
    
            public string Name     //封装的时候,要用public,保证类外能调用
            {                      //属性什么类型,封装的时候就用什么类型,
                get                //此处用string
                {
                    return name;   //属性一般用小写字母表示
                }                  //但封装的时候首字母大写
    
                set                //封装方法里面就一个get{return 属性名称} 和
                {                  //一个set{属性名称=value;}
                    name = value;   
                }                  //value是一个关键字
            }
    
            public string Sex
            {
                get
                {
                    return sex;
                }
                set
                {
                    sex = value;
                }
            }
    
            public void play() {
                Console.WriteLine("I'm playing football!");
            }
        }

    主函数调用:

    class Program
        {
            static void Main(string[] args)
            {
                Child c = new Child();      //首先创建 一个 对象
                c.Name = "xiaoming";        //赋值时  对象名.封装方法名
                c.Sex = "";
                Console.WriteLine(c.Name);  //引用时  对象名.封装方法名
                Console.WriteLine(c.Sex);
                c.play();
            }
        }
    封装和方法不同,不需要形参
    不管是给属性赋值还是引用属性的值,只需要调用封装函数就行
    如若封装过程中出错,编辑器会自动报错,只需要根据报错修改即可

    通过set块约束属性赋值

    有时候因为某些原因,给属性赋的值不符合实际情况,如:不能给一个小孩赋值60岁

    通过set块约束,无非是在set里加一个条件判断语句
    set
                {
                    if (value>=3&&value<=7)
                    {
                        age = value;
                    }
    
                }
    要么生,要么死
  • 相关阅读:
    P1121 环状最大两段子段和
    无题
    cdoj 1485 柱爷搞子串 sam treap
    自然数幂和
    Gym 100341C AVL Trees NTT
    线性筛分解质因子
    codeforces 366 Ant Man dp
    UVALive 6914 Maze Mayhem 轮廓线dp
    hdu 5790 Prefix 字典树 主席树
    莫比乌斯反演个人小结
  • 原文地址:https://www.cnblogs.com/llljpf/p/6773130.html
Copyright © 2011-2022 走看看