import java.util.*;
class Name{
private String name;
public String getName(){
return name;
}
}
public class SetName {
public static void main(String[] args) {
// TODO Auto-generated method stub
Name nm = new Name();
Scanner input = new Scanner(System.in);
String inputName = input.nextLine();
nm.getName() = inputName; // 为什么这里不行啊,除了setName(),怎样在这里修改名字
System.out.print(nm.getName());
}
}
class Name{
private String name;
public String getName(){
return name;
}
}
public class SetName {
public static void main(String[] args) {
// TODO Auto-generated method stub
Name nm = new Name();
Scanner input = new Scanner(System.in);
String inputName = input.nextLine();
nm.getName() = inputName; // 为什么这里不行啊,除了setName(),怎样在这里修改名字
System.out.print(nm.getName());
}
}
解决方案 »
- XLS 文件乱码
- 大虾帮忙
- 求比较不错的oa产品
- 高手们都来看看,大家讨论一下
- 在visual j++6.0中不支持(GUI)swing编程?
- 分享《Applying UML and Patterns -- An introduction to OOA/D and the UP》英文版....
- 1怎么确定控件的大小,方位.2.怎么弹出对话框(messagebox)?
- java.sql.ResultSet里得到有多少rows的方法是什么?
- 急!!请教各位大虾
- java思想之一
- eclipse 有么有类似VS go to defination的功能
- TreeSet中remove依据哪些方法来执行的?
普通的使用,是从正面的:我们可以直接用public的方法,可以操作public的属性,private的东西无法按照自己当下的意愿任意操作的。
通过反射,可以将一个类拆成零零散散的各个“部件”,有Field,有Method,有Constructor。然后我们可以针对一个特定的对象,其属性也许是private的(此时它是不可访问的),我们可以通过得到对应的Field,通过setAccessible将其设置为可访问的,这样就可以操作了(也破坏了该对象的封装性)。
查看下API和相关反射的介绍博文,可能帮助更多~
普通的使用,是从正面的:我们可以直接用public的方法,可以操作public的属性,private的东西无法按照自己当下的意愿任意操作的。
通过反射,可以将一个类拆成零零散散的各个“部件”,有Field,有Method,有Constructor。然后我们可以针对一个特定的对象,其属性也许是private的(此时它是不可访问的),我们可以通过得到对应的Field,通过setAccessible将其设置为可访问的,这样就可以操作了(也破坏了该对象的封装性)。
查看下API和相关反射的介绍博文,可能帮助更多~
谢谢了 好像明白点了
1. 上面说的反射
2. 通过创建Name类的子类,重写name属性相关的操作(但是这个你需要保证其内部其他方法的实现不会受到影响)