本人从c#转入java,问一个小问题:java中是不是没有属性成员?
例如
public string setName
{
get{return _setName;}
}
例如
public string setName
{
get{return _setName;}
}
解决方案 »
- Java新手:请教一个小问题
- 麻烦帮我修改一个正则表达式吧~
- 一个关于线程的问题,麻烦大家进来帮忙看下,谢谢!
- add()方法
- 会用EventListener的请进
- 第一次 发问 请教一个小问题 finally 和 return
- 如何改名?
- Exception in thread "main" java.lang.NoClassDefFoundError: hw
- c++与java 有什么区别?
- 关于 SessionBean+JDBC 和 BMP 两者之间的疑惑,请指教!
- 简单问题请教
- 我以前是学asp.net的,我刚学用Struts的MVC2来做jsp网页,看了很多资料,有些东西很糊涂的,我对MVC2和asp.net中的三层结构的关系的理解如下
面向对象,大家都一样,你的C#是怎么学的?
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)”,而“属性”则成为这种“属性化的方法”专用的名词。顺便说一句,其实这样的属性化方法在VB和DELPHI中是经常碰到的,在VB中它也就叫属性。 另外,在C#中Get和Set必须成对出现,一种属性不能只有Get而没有Set(在Java和C++中就可以只有Get或者只有Set),C#中这样做的好处在于便于维护,假如要对某种属性进行修改,就会同时注意Get和Set方法,同时修改,不会改了这个忘了那个。
你写的什么垃圾代码。java中有属性成员
面向对象,大家都一样,你的C#是怎么学的?
--------------------------------------
C#里的只读属性的写法,有错吗?我怎么不觉得啊?????你所说的,Java里专门用来读写属性的类一般称为JavaBean
按照你的逻辑,你把C++的带类的代码也弄到C中使用,能编译吗?那你的C怎么学的?那你写的C++代码就是C来说的垃圾代码。。NET肯定模仿了JAVA,但也有很多的改进,我们姑且不论谁对错的问题,但C#中把get和set方法转变为属性对,是否更合理更方便?如果只是写成get和set方法,我想,这就不叫属性了,仅仅是一个方法而已,又有什么区别?当然,在C#中,一个属性的get或set都具备一致的访问属性,而通过方法则可以对get和set分别设置访问属性。对于java中,如果通过set或get写了属性操作方法,那么为什么不能象c#一样的只通过属性名调用?在VC中:private int _age;
public void setAge(int age)
{
_age=age;
}public int getAge()
{
return _age;
}
以上代码是可以直接通过Age来进行读写的,而java则不可以,写成set或get前缀形式也仅仅是形式,没有具体的意义,一个普通方法而已。在这方面,感觉还是MS人性化些。