java在没有getter的情况下访问模型类的私有变量
我在项目中定义了一个模型类。和往常一样,它有一些私有变量和公共的获取者和设置者
public class Person{
private ArrayList<String> mark;
public void setMark(ArrayList<String> mark){
this.mark = mark;
}
public void getMark(){
return this.mark;
}
}
假设在另一节课上,我使用这个模型,比如
Person person = new Person();
ArrayList<String> mark = new ArrayList();
mark.add("10");
mark.add("15");
mark.add("18");
person.setMark();
然后person的私有变量保存值“my name”,我使用类的public getter访问变量,如
ArrayList<String> localMark = person.getMark()
所以据我所知的人。getMark()返回私有变量名的引用,因此如果我修改局部变量“localMark”,它将影响Person类的私有变量,因此它会破坏变量的私有属性
例:
ArrayList<String> localMark = person.getMark();
System.out.println(localMark.get(0)); // will be "10"
localMark.set(0,"25") // person.mark will be changed
System.out.println(person.getMark().get(0)); //will be printing "25"
我想大多数开发人员都遵循相同的设计模式,但是创建Models
的正确方法是什么呢
编辑
根据我检查过的vinod的注释和字符串,它传递的是值,但不是引用,而是ArrayList。。。它返回引用
共 (0) 个答案