java中定义的成员变量可以没有set***方法么?如果没有set***方法的话,会怎么样?
请具体说说,谢谢!!!!!!

解决方案 »

  1.   

    set也就是一个方法。通常是用来设置属性值的。所以没有set方法也没什么关系。就是不许别人直接设置你的属性值而已咯。
      

  2.   

    把set方法想象成和别的方法一样的方法就好了。他没什么特别。只不过符合java bean的约定,
    在很多框架里可以被直接识别,比如Spring框架中就是根据配置文件通过set方法来设置属性的。
      

  3.   

    那如果没有set方法,那怎么对这个变量进行设值啊?
      

  4.   

    比如类A的成员变量为:
    private String strA = null;
    如果没有对外的get,set方法,那么只有类A能够变更和访问A的值如果为
    protected String strA = null;
    如果没有对外的get,set方法,那么只有A和A的子类都可以直接变更和访问A的值如果为
    public String strA = null;
    如果没有对外的get,set方法,那么所有获取A实例的类都能变更和访问A的值set方法只是起一个规范作用,控制成员变量的访问,同样对于set方法的修饰符(private,protected,public)也能够控制该类成员值的变更与访问;同时在set方法中还可以对成员变量进行一些控制和转换等
      

  5.   

    可以没有,没有的话,如果是private,别人就无法访问了,如果是public,那么还是可以直接存取,但是破坏了oo的封装原则。
      

  6.   

    没有set方法也能设值的,
    public class A {
      private String strA = null;  public static void main(String[] args) {
        A a = new A();
        a.strA = "AAA';
        System.out.println(a.strX);
      }
    }结果输出: AAA
      

  7.   

    没有set方法的结果是,不能调用set方法。
      

  8.   

    没有set的话当然可以
    不过想赋值的话就只能把属性定义成public
    这样的话就不能限制了,
    而set方法就可以判断set值是否符合你的要求
    明白了吗?
      

  9.   

    没有set方法的结果是,不能调用set方法。
    -------------------------------------太对了!hoho~
      

  10.   

    java中定义的成员变量可以没有set***方法么?
    答:当然如果没有set***方法的话,会怎么样?
    答:不会怎么样
      

  11.   

    属性是java里的说法。成员变量是c/c++的说法。意思一个样。
      

  12.   

    可以不用
    得看情况
    一般set方法是用来设置private属性的值的
    如果你的private值不需要改变,那就没必要设置
      

  13.   

    1。 get,set方法主要是用来封装的,目的是让其他类能修改本类中的private属性。如果你不用,private 定义属性的话 用get,set就是多余。
    2。 封装也可以自己定义方法名,你要真看get,set不爽 自己起名字。。
      

  14.   

    鄙视楼上,操,谁TM不是从不会到会的,就你bb。 还是带*的,人品极度有问题。 严重鄙视中。。
      

  15.   

    我们不跟"CrazyGou(从前,有个人叫小蔡,被放了一夜,馊了)"这种小人斤斤计较,我们度量大点,可能我们都是弱智,他一生下来就精通java了!
      

  16.   

    sureyor() ( ) 回答得很容易理解。
    其实主要是一个编码的规范约定,你不这样写也没有事情,你写成别的方法名来实现同样的功能也行,只不过别人看起来麻烦,代码的可读性差。而且在JavaBean里面也不行。
    呵呵,不知道讲得对不对。
      

  17.   

    没有set方法也能设值的,
    public class A {
      private String strA = null;  public static void main(String[] args) {
        A a = new A();
        a.strA = "AAA';
        System.out.println(a.strX);
      }
    }结果输出: AAA---------------------
    汗一个   你在其它类里面用这个类再试试看
      

  18.   

    可以没有,set**和get**方法仅仅是方法而已,和其他方法没有别的区别,有其他方法也可以实现set**和get**方法的功能,javabean中一般使用其命名。
      

  19.   

    没有set方法也能设值的,
    public class A {
      private String strA = null;  public static void main(String[] args) {
        A a = new A();
        a.strA = "AAA';
        System.out.println(a.strX);
      }
    }结果输出: AAA---------------------
    汗一个   你在其它类里面用这个类再试试看---------------------
    好经典的一段代码发生在这里.............
      

  20.   

    没有set 等于 JAVA 非 面向对象语言~ 没封装性可言
      

  21.   

    1。 get,set方法主要是用来封装的,目的是让其他类能修改本类中的private属性。如果你不用,private 定义属性的话 用get,set就是多余。
    2。 封装也可以自己定义方法名,你要真看get,set不爽 自己起名字。。linshaojie(枫陵) (  说的很有道理
      

  22.   

    没有set方法也能设值的,
    public class A {
      private String strA = null;  public static void main(String[] args) {
        A a = new A();
        a.strA = "AAA';
        System.out.println(a.strX);
      }
    }结果输出: AAA---------------------
    汗一个   你在其它类里面用这个类再试试看---------------------
    好经典的一段代码发生在这里.............----------------------------------------
    看我四楼的回复,我的这段代码是有前提的,汗呀!!!
      

  23.   

    我记得我学C++的时钟类是这么说的,SET方法就是访问时钟类Private属性的一个外部接口。