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

    2015-09-15 14:20:51
    C#中,类包括 字段(field),属性(property),方法(method)这里主要说一下字段和属性字段: 主要来用来保存数据, 设置为private 。属性: 可以用来保护数据,通过set 和get来修改字段。如果字段使用了无效值,...

    C#中,类包括 字段(field),属性(property),方法(method)

    这里主要说一下字段和属性

    字段: 主要来用来保存数据, 设置为private 。

    属性: 可以用来保护数据,通过set 和get来修改字段。如果字段使用了无效值,最好采取以下两种方法处理:

    1  继续执行,就好像没有发生错误一样,但记录下该事件,以备将来分析</p><p> 

    2  抛出异常,</p>

    public class person
    {
         private string _name;
         public string Name
         {
                  get{ return _name;
                         }
                   set {
                           _name=value;
                            }
          }
    
    }


     

     

    展开全文
  • C#学习—字段和属性

    2018-08-28 23:31:57
    对应到字段和属性中,通常字段修饰为private,属性修饰为public。 属性的理解 属性其实就是外界访问私有字段的入口,属性本身不保存任何数据,在对属性赋值和读取的时候其实就是操作的对应私有字段。   字段与...

    类的成员在定义的时候没有显示的写出访问修饰符,则默认是private。对应到字段和属性中,通常字段修饰为private,属性修饰为public。

    属性的理解

    属性其实就是外界访问私有字段的入口,属性本身不保存任何数据,在对属性赋值和读取的时候其实就是操作的对应私有字段。

     

    字段与属性比较

    字段(成员变量)

    a.字段主要是为类的内部做数据交互使用,字段一般是private。

    b.字段可读可写。

    c.当字段需要为外部提供数据的时候,请将字段封装为属性,而不是使用公有字段(public修饰符),这是面向对象思想所提倡的。

     

    属性(方法)

    a.属性一般是向外提供数据,主要用来描述对象的静态特征,所以,属性一般是public。

    b.属性具备get和set方法,可以在方法里加入逻辑处理数据,灵活拓展使用。

    https://www.cnblogs.com/green-jcx/p/9023141.html

    展开全文
  • 关于字段和属性

    2013-10-21 16:32:33
    刚又疯了在flex里面定义了几个属性,写好set get方法 结果在调用的时候各种语法不对,当时就郁闷了,经过上网查了一下,问了一下前辈,才知道 在Flex和c#里面是有字段和属性之分的。看完资料现在还是有点蒙的感觉,...

            刚又疯了在flex里面定义了几个属性,写好set get方法 结果在调用的时候各种语法不对,当时就郁闷了,经过上网查了一下,问了一下前辈,才知道 在Flex和c#里面是有字段和属性之分的。看完资料现在还是有点蒙的感觉,当时几本了解还是看懂了一点,区别开属性与字段 是为了更好的实现数据安全,比如当我们想给一个类的属性赋值 或者其他类用到了,就需要将这个字段设置为public,然而这样可以对字段进行任意的读写操作,非常不利于数据安全。于是就加上了属性,简单说属性实现了字段的封装,属性有getset 方法来控制字段,该字段的属性只有set方法没有get方法,就只可以对该方法进行赋值操作,没有读操作,反之亦然。就是对对字段的操作通过属性来控制。下面是网上找到的什么时候适合用字段 属性以及举得例子、供大家参考。


    1. 字段:

    class Card

       private string Name;
    }

    2. 属性:

    属性中包含两个模块:setgetset模块负责属性的写入工作,get模块负责属性的读取工作。在两个模块中都可以做一些其他操作,如在set中验证赋的值是否符合要求并决定是否进行赋值。

    class Card
    {
        private string name;
     
       public string Name
     
       {
      
          get { return this.name;}
      
          set { this.name=value;}
     
        }

    例:

    class Product   //商品类

        {

            //私有字段

            private string _Pname;    //商品名称

            private bool _IsNoEmperty;//是否有库存

            private float _Price;     //商品单价

            private int _PCount;      //商品数量

            //属性:

            //可读写

            public string Pname

            {

                set { _Pname = value; }

                get { return _Pname; }

            }

            //只读

            public bool IsNoEmperty

            {

                get { return _IsNoEmperty; }

            }

            //可检测赋值是否正确

            public float Price

            {

                set

                {

                    if (value >= 0)

                        _Price = value;

                    else

                        throw new Exception("Price的赋值范围");

                }

                get

                {

                    return _Price;

                }

            }

            //赋值时更改其他状态

            public int PCount

            {

                set

                {

                    _PCount = value;

                    _IsNoEmperty = true;   //改变了_IsNoEmperty字段的值

                }

                get { return _PCount; }

            }

            public void Print()

            {

                Console.WriteLine("产品信息如下:");

                Console.WriteLine("产品名称:{0}",_Pname);

                Console.WriteLine("产品价格:{0}", _Price);

                Console.WriteLine("库存数量:{0}", _PCount);

    Console.ReadLine();

            }

            static void Main(string[] args)

            {

                Product P1=new Product();

                P1.Pname="黑人牙膏(克)";

                P1.Price=5;

                P1.PCount=20;

                P1.Print();

            }

     

    例:
    //
    有个网站,每当有新用户注册的时候,我们需要记录这些用户的信息   
    class User   
    {   
        //
    姓名,性别   
        public string name;   
        public string sex;   
    }   
    //
    声明一个类去使用User   
    class Property   
    {   
        static void Main()   
        {   
            //
    实例化一个User对象   
            User zs = new User();   
            //
    对其赋值   
            zs.name = "
    张三";   
            zs.sex = "
    ";   
            Console.WriteLine("
    姓名:" + zs.name + " 性别:" + zs.sex);   
        }   
    }

    通过编译执行,这段代码正常运行,但是仔细分析,就会发现:所有字段都是公有的,不利于字段的保护,只要实例化了这个类,都可以修改其中的值。如果性别输入了男女之外的字符,系统是不会识别的。比如把zs.sex = "";改成zs.sex = "";。运行代码结果肯定张三的性别成牛了...这个时候就不合逻辑了。修改为:
    class User   
    {   
        public string name;   
        public string sex;   
        //SetSex
    方法   
        public void SetSex(string values)   
        {   
            if (values == "
    " || values == "
    ")   
            {   
                sex = values;   
            }   
            else 
            {   
                Console.WriteLine("
    性别只能为
    ”");   
            }   
        }   
    }   
    class Property   
    {   
        static void Main()   
        {   
            User zs = new User();   
            zs.name = "
    张三
    ";   
            //
    直接调用SetSex赋值
       
            zs.SetSex("
    ");   
            Console.WriteLine("
    姓名:" + zs.name + " 性别:
    " + zs.sex);   
        }   
    }

    SetSex这个方法乍一看还可以,但是不要忘记namesex字段还是public属性,我们依然可以直接去调用它,或者说去修改它,一样可以把sex设为。给类的字段设置为public意味着破坏了类的封装,这样呢会存在潜在的危险。所以呢要设为private,这个时候就分别声明方法去读取和设置这2个字段,修改如下:

    using System;   
    class User   
    {   
        //
    设为私有的   
        private string name;   
        private string sex;   
        //
    设置
       
        public void SetName(string values)   
        {   
            name = values;   
        }   
        //
    读取
       
        public string GetName()   
        {   
            return name;   
        }   
        public void SetSex(string values)   
        {   
            if (values == "
    " || values == "
    ")   
            {   
                sex = values;   
            }   
            else 
            {   
                Console.WriteLine("
    性别只能为
    ”");   
            }   
        }   
        public string GetSex()   
        {   
            return sex;   
        }   
    }   
    class Property   
    {   
        static void Main()   
        {   
            User zs = new User();   
            zs.SetName("
    张三
    ");   
            zs.SetSex("
    ");   
            Console.WriteLine("
    姓名:" + zs.GetName() + " 性别:
    " + zs.GetSex());   
        }   
    }

    现在这个类的设计就比较合理了,我们看namesex它们是private字段,也就是说在类的外部是不能访问的,这样呢就保证了它的安全性。当用户想给性别字段添加非法字段的时候,SetSex方法内会对这个添加的值进行判断,如果不为男或女,值就不会被添加。通过方法虽然解决了上面的问题,但是每创建一个对象,输入字段值时就必须调用上面方法。如果不知道,就无法调用。为了提高数据安全性,并且有效解决上面的问题,C#推出了属性。可以创建属性,将字段和属性封装在一起。通过属性可以像访问字段一样访问数据成员,实现数据的封装,避免使用非法数据赋值,保证数据完整性,同时类内部发生修改时,避免整个程序的修改。


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

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

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

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

    展开全文
  • 字段和属性的区别

    2015-06-09 20:43:58
    字段和属性的区别 首先从两者的声明上来看,公共字段只是类用public修饰符所公开的简单公共变量,而属性则是对字段的封装,它使用get和set访问器来控制如何设置或返回字段值。 由于属性的实质是方法(get或...
  • C#中字段和属性两者之间的区别以及属性的作用 字段是占用内存的而属性则不会占用内存 咋们先一起看一下代码,进行对比. //成员变量就是类的属性 //字段 public int no; //属性 private int nl; public int Nl ...
  • c#字段和属性的区别

    2018-11-26 17:00:29
    字段和属性都有访问修饰符 作用: 1. 设定访问权限 2. 限制类中的成员(属性、方法等)可访问的范围 访问范围通常有,类的内部、类的外部。 常用类型:private(私有的,仅类的内部使用);public(公有的,没有访问...
  • Java字段和属性

    2020-02-29 18:17:03
    属性和字段区别: Java中的属性(property),通常可以理解为getset方法。更形象的说就是:属性是对字段的封装,供外部访问。 而字段(field),通常叫做“类成员”,或 "类成员变量”,有时也叫“域”,理解为“数据...
  • c#字段和属性的区别与介绍

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

    千次阅读 2016-03-05 17:13:56
    字段和属性是不同的两个概念: 字段是类中实打实的一种变量。用来存储与对象相关联的数据。所以当字段规定为public时,在当前类之外其他类中 随时随地访问和修改字段值(只要定义好当前类的实例即可,除static外)...
  • 最近在看C#语言,在这里谈一点感想,说说字段和属性的区别,话不多说,直接进入主题。 字段,可以理解为成员变量(C++中的称呼);属性,则可理解为成员变量和成员函数的集合体,也可以理解为“属性是封装过的字段”...
  • C# 字段和属性

    2018-05-23 17:15:30
    字段分为:静态字段,实例字段,常量字段和只读字段。常量字段:用const修饰符声明的字段为常量,常量只能在声明中初始化,以后不能再修改。静态字段:用修饰符static声明的字段为静态字段。不管包含该静态字段的类...
  • Kotlin 字段和属性

    千次阅读 2017-08-15 21:10:37
    Kotlin幕后字段;Kotlin属性;Kotlin延迟初始化属性;Kotlin编译期常量。
  • c#中字段和属性的区别 在C#中,我们可以非常自由的、毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值、或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些...
  • 忽然间想起c#中字段和属性有什么区别,百度一下,有人说字段和属性差不多,结果参考了一下苏坤老师讲的c#,才明白,原来在c#中字段和属性真的不是一个概念! 1)很多人会说,类中不就是包括属性还有方法吗,这个字段...
  • 类的字段和属性

    千次阅读 2007-07-08 23:55:00
    类的字段和属性 一般把类或结构中定义的变量和常量叫字段。属性不是字段,本质上是定义修改字段的方法,由于属性和字段的紧密关系,把它们放到一起叙述。静态字段、实例字段、常量和只读字段 用修饰符static声明的...
  • C#类的字段和属性

    千次阅读 2018-10-13 11:53:03
    属性属性不是字段,本质上是定义修改字段的方法。 2.字段的划分: (1)静态字段:用修饰符static声明的字段。 不管包含该静态字段的类生成多少个对象或根本无对象,该字段都只有一个实例,静态字段不能被撤销...
  • java中字段和属性

    千次阅读 2018-06-14 20:23:56
    属性是一种较为传统的叫法,也比较符合汉语习惯的说法,再java的官方的说法里面,属性被称为Field,因此有的地方也把属性译为字段
  • Java中字段和属性的区别

    万次阅读 2018-08-06 07:01:22
    属性c由 getter/setter和字段 c 组成 属性a 由getter/setter组成 b 没有gettersetter,所以是字段   Java中的属性(property),通常可以理解为getset方法,而字段(field),通常叫做“类成员”,或 “类成员...
  • 字段和属性的定义 首先必须知道静态成员属于类,非静态成员属于对象 package static关键字; /* * 类的加载顺序:静态成员默认初始化(顺序)-静态成员显示初始化(顺序)-main方法。 如果有父类先执行父类的初始化...
  • 属性和字段的区别 在C#中,我们可以非常自由的、毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值、或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态...
  • Java的三种变量以及字段和属性 1.三种变量(成员变量,本地变量,类变量) 定义,作用域,生命周期。
  • c# 字段和属性

    万次阅读 2011-10-03 20:10:54
    一、字段(field)  可以在声明字段的同时赋给它一个初始值。... 假如将字段声明为public,则在类的外部都可以对该字段进行访问更改,违背了类的封装特性。如果声明为private,则这种形式的封装通常又过于彻
  • 如果单纯地包含变量的的时候,就叫做字段 如果字段有各自的set/get方法,那么就叫属性 如果没有字段只有set/get方法,也叫属性
  • C#通过属性特性读取写入字段(成员变量),而不直接直接读取写入,以此来提供对类中字段的保护。属性可用于类内部封装字段属性是C#面向对象技术中封装性的体现。 属性和字段的区别: •属性是逻辑字段,是.....
  • 但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值、或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态,这些单靠字段是无法做到的,于是就有了属性属性中包含两个块:setget,...
  • 类成员—字段和属性的区别

    千次阅读 2016-09-19 22:38:20
    字段用于直接存取数据,而属性本身不能够直接存取数据,它相当于包裹在字段外...///公共字段,可以被外界访问修改,如XXX.杯子 = '1升水' /// public string 杯子 = "0.5升水"; 另一方面,你也可以把水存放在保险
  • c# 类成员的定义 定义方法、字段和属性c#类的成员包括字段、属性和方法。所有成员都有自己的访问级别,用下面的关键字之一来定义:public----成员可以有任何代码访问;private----成员只能有类中的代码访问(如果...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,240
精华内容 10,496
关键字:

字段和属性