日期:2014-05-20  浏览次数:20965 次

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

------解决方案--------------------
set也就是一个方法。通常是用来设置属性值的。所以没有set方法也没什么关系。就是不许别人直接设置你的属性值而已咯。
------解决方案--------------------
比如类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方法中还可以对成员变量进行一些控制和转换等
------解决方案--------------------
你想用就写不想用就可以不写..
------解决方案--------------------
可以没有,没有的话,如果是private,别人就无法访问了,如果是public,那么还是可以直接存取,但是破坏了oo的封装原则。
------解决方案--------------------
没有set方法的结果是,不能调用set方法。
------解决方案--------------------
没有set的话当然可以
不过想赋值的话就只能把属性定义成public
这样的话就不能限制了,
而set方法就可以判断set值是否符合你的要求
明白了吗?
------解决方案--------------------
没有set方法的结果是,不能调用set方法。
-------------------------------------

太对了!hoho~
------解决方案--------------------
可以写构造函数嘛!
------解决方案--------------------
up
全局变量!
------解决方案--------------------
java中定义的成员变量可以没有set***方法么?
答:当然

如果没有set***方法的话,会怎么样?
答:不会怎么样
------解决方案--------------------
可以不用
得看情况
一般set方法是用来设置private属性的值的
如果你的private值不需要改变,那就没必要设置
------解决方案--------------------
1。 get,set方法主要是用来封装的,目的是让其他类能修改本类中的private属性。如果你不用,private 定义属性的话 用get,set就是多余。
2。 封装也可以自己定义方法名,你要真看get,set不爽 自己起名字。。。。。
------解决方案--------------------
弱智
------解决方案--------------------
///////////
------解决方案--------------------
sureyor() ( ) 回答得很容易理解。
其实主要是一个编码的规范约定,你不这样写也没有事情,你写成别的方法名来实现同样的功能也行,只不过别人看起来麻烦,代码的可读性差。而且在JavaBean里面也不行。
呵呵,不知道讲得对不对。
------解决方案--------------------
该说的都说了,没有也可以
------解决方案--------------------
没有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

---------------------
汗一个 你在其它类里面用这个类再试试看
------解决方案--------------------
可以没有,set**和get**方法仅仅是方法而已,和其他方法没有别的区别,有其他方法也可以实现set**和get**方法的功能,javabean中一般使用其命名。
------解决方案--------------------
没有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);