本人从c#转入java,问一个小问题:java中是不是没有属性成员?
例如
public string setName
{
  get{return _setName;}
}

解决方案 »

  1.   

    你写的什么垃圾代码。java中有属性成员
    面向对象,大家都一样,你的C#是怎么学的?
      

  2.   

    你这个代码,能编译通过?杀了我吧。那干脆连JVM都是你自己写了算了。。
      

  3.   

    你会c#吗?我不和你争论,我写的是一个标准的属性成员get方法。你真无聊。
      

  4.   

    应该是属性和成员函数吧。没有这两个还叫面向对象吗?c#还是模仿java写的。
      

  5.   

    属性的概念对大家来说应该是很熟悉的,类成员函数可以自由地访问本类? 任何属性成员。不过若要从一个类中去访问另一个类中的属性,那就比较麻烦了,所以很多时候我们使用Getxxx和Setxxx方法,这样看起来显得极不自然,比如用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)”,而“属性”则成为这种“属性化的方法”专用的名词。顺便说一句,其实这样的属性化方法在VB和DELPHI中是经常碰到的,在VB中它也就叫属性。  另外,在C#中Get和Set必须成对出现,一种属性不能只有Get而没有Set(在Java和C++中就可以只有Get或者只有Set),C#中这样做的好处在于便于维护,假如要对某种属性进行修改,就会同时注意Get和Set方法,同时修改,不会改了这个忘了那个。
      

  6.   

    mofeir(损人专家)  
       你写的什么垃圾代码。java中有属性成员
    面向对象,大家都一样,你的C#是怎么学的?
    --------------------------------------
    C#里的只读属性的写法,有错吗?我怎么不觉得啊?????你所说的,Java里专门用来读写属性的类一般称为JavaBean
      
     
      

  7.   

    java中对属性进行访问是怎样的?
      

  8.   

    也计划从C#转java,查看了这篇文章.想说几句:关于垃圾?什么是垃圾?怪不得叫损人专家,象垃圾一样的损人!
    按照你的逻辑,你把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人性化些。
      

  9.   

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