当前位置: 移动技术网 > IT编程>开发语言>.net > 面向对象之封装。

面向对象之封装。

2019年02月16日  | 移动技术网IT编程  | 我要评论

美女视频诱惑,cctv7军事报道,余罪第二季 下载

封装是面向对象的基础和重要思想之一,今天具体的了解封装这一特性后发现其实自己已经接触过很多关于封装的内容了。

 一、什么是封装。

封装的概念:将具体的实现细节装到一个容器中,封闭或隐藏起来(使用访问修饰符private来实现),防止容器外部直接访问内部的实现细节或更改内部成员,仅对外公开对应的接口来访问。

 二、封装的实例。

1.封装字段。

  class person
    {
        public int age;
    }

在person类中,如果要使用age字段,那么就必须设为public,但是这样是不安全的,因为这样外部可以任意访问或修改它,并且会出现age=500,这样的非法值。解决方案:用属性来封装字段。

 class person
    {
        private int _age;
        public int age
        {
            get { return _age; }
            set
            {
                if (value > 10)
                {
                    throw new exception("error");
                }
                else
                {
                    _age = value;
                }
            }
        }
    }

将_age设为private,然后向外开放一个age的接口来设置它,这样外部并不能访问到_age,并且可以通过属性限制字段的合法性。

这样也可以看出字段与属性的关系:属性是字段的封装。

2、一堆代码封装在一个方法里。

这个很简单,就是写一个方法,像tostring()一样,是.net里封装好了的方法,我们直接用就是,而并不关心具体的实现,如果名字取得的得当,还能清楚地知道这个方法的功能。

3、方法的多个参数封装成了一个对象。

 class program
    {
        static void main(string[] args)
        {
            record("小明", 18, 10086);
        }
        private static void record(string name, int age,int phone)
        {
            write(name, age,phone);
        }
        private static void write(string name, int age,int phone)
        {
            
        }
    }

比如开学了,学校要用record方法记录同学的信息,但record方法中又有一个write方法要做其他事,这时候就要传递很多参数。解决方法:

 class program
    {
        static void main(string[] args)
        {
            record(new student() { name="小明",age=18,phone=10086});
        }
        private static void record(student student)
        {
            write(student);
        }
        private static void write(student student)
        {
            
        }
    }
    class student
    {
        public string name { get; set; }
        public int age { get; set; }
        public int phone { get; set; }
    }

定义一个student类,参数传递只需要传递一个对象即可。

三、综上,封装的好处。

1、隔离性,安全性,被封装后的对象(这里的对象是泛指代码的编程单元,一般指:程序集,命名空间,类,方法,属性,变量等)其外部对象是无法直接访问对象的内部实现细节,内部实现细节的的改动不会影响到外部对象的访问原则。

2、可读性,被封装的对象的名称恰当的话,可以不看具体实现的情况下,了解该对象的作用。

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网