当前位置: 首页 > 图文教程 > Java技术 > Java基础 > Java基础:小编浅谈C#与java的属性区别

Java基础
浅谈Java语言接口与继承本质区别
java基础 -- JAVA字符集
JAVA基础知识精华总结
孙鑫老师原创:Servlet与Tomcat
java基础知识
Java程序开发中应用线程
JAVA基础之面向对象
关于Java IO流学习总结
如何用Java实现FTP服务器
Java抽象类和接口和继承之间关系
Java获取URL对应的资源
详解Java多线程开发中的数据同步
Java中跳出多层循环的简单方法
Java多线程程序设计初步入门
JavaScript(一)
JavaScript(二)
Java基础:JAVA SE基础部分(一)
Java基础:JAVA SE基础部分(二)
Java基础:Ruby将赶超Java吗?
java基础:小编浅谈java中的一些编程思想

Java基础:小编浅谈C#与java的属性区别


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-12-26   浏览: 84 ::
收藏到网摘: n/a

多年以来,很多人认为微软与SUN是两大对立公司,究其原因是C#java的存在,使之成为两大公司相互抗衡的武器。因为C#java在很大地方都是很相似的,尽管如此,两者不同的地方也很多,所谓“于细微处见差异”。那么两者的相似和区别都在什么地方呢?下面小编就与大家一起分享C#java的属性区别,希望对大家有所帮助。

 

  属性的概念对大家来说应该是很熟悉的,类成员函数可以自由地访问本类中的任何属性成员。不过若要从一个类中去访问另一个类中的属性,那就比较麻烦了,所以很多时候我们使用GetxxxSetxxx方法,这样看起来显得极不自然,比如用Java或者C++,代码是这样的:

 

  foo.setSize (getSize () + 1);

  label.getFont().setBold (true);

 

  但是,在C#中,这样的方法被“属性化”了。同样的代码,在C#就变成了:

 

  foo.size++;

  label.font.bold = true;

 

  可以看出来,C#显然更容易阅读和理解。我们从这个“属性方法”的子程序代码中,也可以看到类似情况:

 

Java/C++:

 

public int getSize()

{

  return size;

}

 

public void setSize (int value)

{

  size = value;

}

 

C#:

public int Size

{

 get{return size;}

 set{size = value;}

}

 

  为了区分这种属性化的方法和类的属性成员,在C#中把属性成员称作“域(field)”,而“属性”则成为这种“属性化的方法”专用的名词。顺便说一句,其实这样的属性化方法在VBDELPHI中是经常碰到的,在VB中它也就叫属性。

 

  另外,在C#GetSet必须成对出现,一种属性不能只有Get而没有Set(在JavaC++中就可以只有Get或者只有Set),C#中这样做的好处在于便于维护,假如要对某种属性进行修改,就会同时注意GetSet方法,同时修改,不会改了这个忘了那个。