黑马程序员技术交流社区
标题:
请问c#中属性和字段的区别是什么?自动属性又有什么区别?
[打印本页]
作者:
liuyj
时间:
2012-9-24 08:44
标题:
请问c#中属性和字段的区别是什么?自动属性又有什么区别?
请问c#中属性和字段的区别是什么?自动属性又有什么区别?
这几个概念到底如何定义的,希望能举例说明!
作者:
李阳Leo
时间:
2012-9-24 08:54
属性应该是面向对象中的一种概念
一个面向对象中的类,它的属性是有一定含义的,比如说,一个Person类
它可能有两个属性
一个是,string name;
一个是,int age;
名字,肯定是字符串,年龄,一般都是1-100的整数
但是用户使用这个类(或其他人调用这个类)的时候,可能不知道你这属性到底有什么逻辑关系,可能传年龄的时候,就传一个负数,这是我们不希望看到的
所以,有了属性这个概念
自动属性,就是自动生成以下代码(注意,上面的name,和age都是private,外部是无法访问的)
public string Name{
get{
return name;
}
set{
//这其中可以做逻辑判断
name = value;
}
}
public int Age{
get{
return age
}
set{
//这其中可以做逻辑判断
age= value;
}
}
复制代码
这样,Person类的对象,就可以通过Name和Age这两个属性,正确的对name和age进行赋值和取值
作者:
杨进
时间:
2012-9-24 09:19
class Person
{
//字段就是类内部用来存储数据的
private string name;//私有字段
//定义一个变量,这个变量含有get或set方法,我们就叫做属性
//属性是类提供给外部调用字段时用的,可以使用 对象.属性 设置或读取一个值
public string Name
{
get { return name; }
set { name = value; }
}
public int age;//公有字段,公有字段可以随意访问和赋值
}
复制代码
作者:
芦路
时间:
2012-9-24 10:32
成员变量和方法都是类的成员,成员变量也称为字段,成员方法实际上就是函数;
属性是类的一种特殊成员,既可以看做是成员变量,也可以看做是成员方法。
class A
{
private int x; //私有成员变量
public int attx //定义属性
{
get //可读
{return x;}
set //可写
{x=value;}
}
}
复制代码
自动属性是系统会自动地生成私有变量和默认的get/set 操作,不过get/set使用起来更方便,清晰
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2