精华内容
下载资源
问答
  • 字段和属性的区别

    2015-06-09 20:43:58
    字段和属性的区别 首先从两者的声明上来看,公共字段只是类用public修饰符所公开的简单公共变量,而属性则是对字段的封装,它使用get和set访问器来控制如何设置或返回字段值。 由于属性的实质是方法(get或...

    注:转载之>>>http://www.cnblogs.com/netlyf/archive/2010/12/20/1910977.html

    字段和属性的区别

    首先从两者的声明上来看,公共字段只是类用public修饰符所公开的简单公共变量,而属性则是对字段的封装,它使用get和set访问器来控制如何设置或返回字段值。

    由于属性的实质是方法(get或set方法),在IL中是没有属性的概念的。所以对于开发过程中常用的赋值和取值操作来说,使用公共变量肯定会比使用属性速度要快,性能上也稍高(方法和变量哪个速度不用说了吧)。

    公共字段虽然在速度上快,但它必须开放字段为public,这样一来对象的调用者便可以直接修改其值,值的内容是否合法,运行中是否会出错,就没有了保障,进而会大大降低类的可重用性;相反,属性类似于方法,它可以对存入的变量的值进行处理,如果觉得该值不合法,可以就地变换或者直接提出警告。这对该类的对象的使用安全有很大好处,在运行过程中,因公共变量值的错误而产生的问题会大大减少。

    从上述内容来看,两者各有优缺点,在实际项目开发过程中,我们究竟选择使用哪一种方式呢?

    如果满足下面几个条件,那么我们便可以大胆地使用公共字段:

    1. 允许自由读写;

    2. 取值范围只受数据类型约束而无其他任何特定限制;

    3. 值的变动不需要引发类中其它任何成员的相应变化;

    属性的使用条件则恰好跟变量相反,只要满足下面任何一个条件,就应该使用属性:

    1. 要求字段只能读或者只能写;

    2. 需要限制字段的取值范围;

    3. 在改变一个字段的值的时候希望改变对象的其它一些状态;

    总结:虽然在实际项目的开发过程中,公共字段和属性在合适的条件下都可以使用,但是我们应该尽可能的使用属性(property),而不是数据成员(field);把所有的字段都设置为私有字段,如果要暴露它们,则把它们封装成属性,这也是微软推荐的方式。


    展开全文
  • 不太清楚字段和属性的区别,特查询并记录下: 属性:类提供给外部调用时可以使用的对象,可以设置(set())或读取(get())该对象的值 字段:类内部用的存储数据 可以把光标放到类图的属性处验证: 形象记忆: 在vs自动...

    使用vs自动生成类图如下:
    在这里插入图片描述
    不太清楚字段和属性的区别,特查询并记录下:

    属性:类提供给外部调用时可以使用的对象,可以设置(set())或读取(get())该对象的值
    字段:类内部用的存储数据

    可以把光标放到类图的属性处验证:
    在这里插入图片描述
    形象记忆:
    在vs自动生成的类图中,字段前面是在这里插入图片描述,蓝色的盒子代表封闭,表示字段只能在类内部使用
    属性前面是在这里插入图片描述,手可以从箱子里存/取,表示属性可以在被类外部调用,可以修改或者获取值。

    展开全文
  • c#字段和属性的区别与介绍

    千次阅读 2018-07-02 20:12:35
    字段:访问权限 值类型 字段名 例如:private int number;属性:public int Number{ get{ return this.number;... }}字段和属性的区别。例子说明: 如果我们有一个公有字段 如成绩的分数(public int...

    字段:

    访问权限   值类型  字段名 

    例如:private int number;

    属性:

    public int Number{

        get{

             return this.number;

        }

        set{

            this.number = value;

        }

    }

    字段和属性的区别。

    例子说明:

                如果我们有一个公有字段 如成绩的分数(public int score; ),我们可以在类的外部,访问,修改字段。但是假如我们给分数 赋值,score = 10000;编译不会报错,但是不符合常理。

                这里我们就需要使用属性来限制 对字段提供一些安全保护  。

    private int score;
     
            public int Score
            {
                get { return score; }
                set {
                    if (value >= 0 && value <= 100)
                    {
                        score = value;
                    }
                    else
                    {
                        throw new Exception("score value has error.");
                    }
                }

    总结:属性里的get,set访问器可以对字段提供一些安全保护了。属性对外:暴露数据,数据可以是存储在字段里的,也可以是动态计算出来的。对内:保护字段不受“非法值”污染。一般情况下,它们都用于表示实体(对象或类型)的状态。属性大多数情况下是字段的包装器(wrapper)。建议:永远使用属性(而不是字段)来暴露数据,即字段永远是private或protected的


    展开全文
  • 最近在看C#语言,在这里谈一点感想,说说字段和属性的区别,话不多说,直接进入主题。 字段,可以理解为成员变量(C++中的称呼);属性,则可理解为成员变量和成员函数的集合体,也可以理解为“属性是封装过的字段”...

    最近在看C#语言,在这里谈一点感想,说说字段和属性的区别,话不多说,直接进入主题。

    字段,可以理解为成员变量(C++中的称呼);属性,则可理解为成员变量和成员函数的集合体,也可以理解为“属性是封装过的字段”;

    字段一般声明为private,而属性则为public,为什么呢?看下面代码,相信会比我这样干说带劲儿的多...

        class A
        {

    // 定义字段
            private int m_a;
            public int getMember()
            {
                return m_a;
            }
            public void setMember(int a)
            {
                m_a = a;
            }
        }


        class A
        {

            private int m_a;

    //定义属性
            public int Member
            {
                get { return m_a; }
                set { m_a = value; }
            }
        }

    以上两段代码达到了同样的目的,使外部可以设置/取得类私有成员的值,但实现的方式有所不同,

    相信大家看到这里已经很明了字段和属性的区别了~

    展开全文
  • c#中字段和属性的区别 在C#中,我们可以非常自由的、毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值、或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些...
  • 声明一个字段,可以用访问修饰符+类型+变量名称来声明,下图是一个简单的示例:二、属性的定义属性语法是字段的自然延伸,属性需要有get或者set的访问器。声明一个属性,可以用访问修饰符+类型+变量名称来声明,下图...
  • 正确区分属性和字段很多开发人员搞不清属性和字段的区别,本文试图对其作出澄清。在进行Java软件开发的时候,很多人都没有搞清Java对象中属性(Property)和字段(Field)的区别,以为属性就是字段。本文试图对这两个...
  • c#字段和属性的区别

    2018-11-26 17:00:29
    字段和属性都有访问修饰符 作用: 1. 设定访问权限 2. 限制类中成员(属性、方法等)可访问范围 访问范围通常有,类内部、类外部。 常用类型:private(私有,仅类内部使用);public(公有,没有访问...
  • 属性和字段的区别 在C#中,我们可以非常自由的、毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值、或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态...
  • Java中字段和属性的区别

    万次阅读 2018-08-06 07:01:22
    如上图所示: 属性c由 getter/setter和字段 c 组成 属性a 由getter/setter组成 b 没有gettersetter,所以是字段   Java中的属性(property),通常可以理解为getset...  区别属性字段是为了更好实现...
  • 很多开发人员搞不清属性和字段的区别,本文试图对其作出澄清。在进行Java软件开发的时候,很多人都没有搞清Java对象中属性(Property)和字段(Field)的区别,以为属性就是字段。本文试图对这两个概念作一个澄清。...
  • 二、过程不zhi同1、get是把参数数据队列加到提交表单ACTION属性所指URL中,值表单内各个字段一一对应,在URL中可以看到。2、post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送...
  • 如果单纯地包含变量的的时候,就叫做字段 如果字段有各自set/get方法,那么就叫属性 如果没有字段只有set/get方法,也叫属性
  • java字段和属性的区别

    2015-04-10 09:07:42
    1、Java中的属性和字段有什么区别?  答:Java中的属性,通常可以理解为getset方法。而字段,通常叫做“类成员”。  这两个概念是完全不同。  属性只局限于类中方法声明,并不与类中其他成员相关。...
  • 忽然间想起c#中字段和属性有什么区别,百度一下,有人说字段和属性差不多,结果参考了一下苏坤老师讲c#,才明白,原来在c#中字段和属性不是一个概念! 1)很多人会说,类中不就是包括属性还有方法吗,这个字段...
  • 属性计算在游戏之中,我们操纵角色一些非玩家角色都会有相关数值描述,例如血量、等级、攻击、防御等等,下面就是暗黑破坏神3一个角色的属性面板。事实上,一个角色的属性描述几十个字段并不是毫无逻辑...
  • 今天简单介绍一下C#语言中类两个重要成员:方法和属性。在C#语言中,最基本成员有两个——字段和方法,其本质是数据和算法,也就是说字段是类变量,表示这个类储存了什么数据;方法是类所具有函数,也...
  • 类成员—字段和属性的区别

    千次阅读 2016-09-19 22:38:20
    字段用于直接存取数据,而属性本身不能够直接存取数据,它相当于包裹在字段一层壳,用于对其内部字段的访问进行权限控制。 这句话又怎么去理解?打个比方,假设“水”代表数据,“被子”代表字段,“保险箱”...
  • 数据库中的字段名怎么对象中的属性对应起来? 2.数据库中字段的类型怎么转换到合适Java类型,不引起转换失败?本次演示数据库如下所示CREATE TABLE `company` (`id` INT ( 100 ) NOT NULL AUTO_INCREMENT ...
  • 今天遇到一个问题,明明数据有更新,...查了一下表结构,`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP发现update_time字段的类型是datetime由此牵扯出两个问题,(1)timestamp与datetime的区别;(2)CU...
  • 来自:CSDN,作者:花郎徒结链接:https://blog.csdn.net/qq_27680317/article/details/79970590Spring Validation验证框架对参数验证机制提供了@Validated(Spring's JSR-303 规范,是标准 JSR-303 一个变种),...
  • 1、Java中的属性,通常可以理解为getset方法 属性只局限于类中方法声明,并不与类中其他成员相关。例如: void setName(String s){} String getName(){} 当一个类中拥有这样一对方法时,我们可以说,这个类中...
  • C#语言规范5.0中对字段的解释: 1.6.5 字段 字段是与类或类实例关联变量。 使用 static 修饰符声明的字段定义了一个静态字段 (static field)。一个静态字段只标识一个存储位置。无论对一个类创建多少个实例,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,929
精华内容 1,171
关键字:

字段和属性的区别