黑马程序员技术交流社区
标题:
坐等解答,请问这段程序怎么获取name的值?
[打印本页]
作者:
马富林
时间:
2013-11-12 20:27
标题:
坐等解答,请问这段程序怎么获取name的值?
class Person
{
private String name;
Person(String name)
{
this.name=name;
}
}
class Student extends Person
{
Student(String name)
{
super(name);
}
}
class Demo
{
public static void main(String[] args)
{
Student s=new Student("张三");
}
}
程序如上,请问当需要获取Student对象s的name属性值的时候,应该在主函数里用什么语句来获取name的值?
作者:
零下五度的水
时间:
2013-11-12 20:37
那个是私有的,正常方法获取不到,
可以用反射:
String name = s.getClass().getDeclaredField("name").get(s);
作者:
王裕秋
时间:
2013-11-12 20:40
public String getName()
{
return name;
}
在父类或子类中要加上获取name属性值 的方法,再在主函数调用
作者:
马富林
时间:
2013-11-12 20:47
王裕秋 发表于 2013-11-12 20:40
public String getName()
{
return name;
试了一下,真的可以,只要在父类里加上getName()方法就可以在主函数调用了。谢谢
作者:
王雨神
时间:
2013-11-12 22:16
这个就是对象的封装!
写这个属性的get和set方法。
public getXXX 取值
public setXXX 设置值
作者:
smileven
时间:
2013-11-12 22:25
你已经建立了student的对象S;
想要得到对象S的name属性的值可以用域运算符".",
也就是S.name;
作者:
mayor125
时间:
2013-11-12 22:56
嗯,可以在父类中通过setter和getter方法来获取父类中被封装的name属性的值。
class Person
{
private String name;
Person(String name)
{
this.name = name;
}
public void print()
{
System.out.println("姓名:"+name);
}
public String getName()
{
return name;
}
}
class Student extends Person
{
Student(String name)
{
super(name);
}
}
public class Demo
{
public static void main(String[] args)
{
Student s = new Student("张三");
s.print();
}
}
复制代码
作者:
徐君
时间:
2013-11-13 01:01
封装好要提供get set方法啊。。没有的话怎么设置属性
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2