c#、java的属性和字段
小弟之前是学java的,现在学c#的面向对象,总觉得看着怪怪的。为什么c#要用字段存数据,把属性封装成getset方法呢?和java一样,直接写getset方法操作属性多...
小弟之前是学java的,现在学c#的面向对象,总觉得看着怪怪的。为什么c#要用字段存数据,把属性封装成get set方法呢?和java一样,直接写get set方法操作属性多简洁呀
展开
1个回答
2015-12-10 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
字段和常量描述 了类的数据(域),当这些数据的某些部分不允许外界访问时,即将其设置为private类型时,为了安全性与灵活性,C#中又多了一个属性,通常属性将相应的私有字段通过封装成公共属性,以便于外界访问和修改,当然你在封装成属性时也可以设置该属性为只读,可读等等权限,下面举个例子:
private int _number; //私有字段,外界不能读取
public int Number //公共属性,外界可读可写,同时改变时也会改变相应私有字段的值
{
get //get不带参函数,返回数据
{
return _number;
}
set //set设置数据
{
_number=value; //value为set访问函数的隐士参数
}
}
在java中,没有属性,只有字段,字段的描述和CSharp基本一致,但是java中为了读取方便一般会另外申明两个方法,即get函数和set函数,get,set函数的定义一般也是public类型的,而java中的成员变量一般设置成private类型
private int _number; //私有字段,外界不能读取
public int Number //公共属性,外界可读可写,同时改变时也会改变相应私有字段的值
{
get //get不带参函数,返回数据
{
return _number;
}
set //set设置数据
{
_number=value; //value为set访问函数的隐士参数
}
}
在java中,没有属性,只有字段,字段的描述和CSharp基本一致,但是java中为了读取方便一般会另外申明两个方法,即get函数和set函数,get,set函数的定义一般也是public类型的,而java中的成员变量一般设置成private类型
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询