返回信息流静态方法是一种不能向对象实施操作的方法。这句话怎么理解?
public class Test {
public static void main(String[] args)
{
Employee ee=new Employee("ss",73923);
Employee.getmessage(ee);
}
}
class Employee
{
public static void getmessage(Employee e)
{
System.out.println("name="+e.getname());
e.salary=20443;
System.out.println("salary="+e.getsalary());
}
}
Employee里省略了一些代码。ee是一个对象,为什么调用getmessage方法可以修改这个对象呢?最后的输出就是修改后的salary=20443.
这是一条镜像帖。来源:北邮人论坛 / java / #20667同步于 2011/11/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
菜鸟问题,求解惑
xhwsolo
2011/11/2镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
所谓向对象实施操作是指ee.getmessage()
【 在 xhwsolo (【老婆控】||萨娇||宏伟) 的大作中提到: 】
: 静态方法是一种不能向对象实施操作的方法。这句话怎么理解?
: public class Test {
: public static void main(String[] args)
: ...................
这句话的理解应该是 静态方法中没有隐式的this指针 所以不能操作本身的对象,也就是只能调用静态成员或方法。
你的例子中用的是另外一个对象当然没有问题了。不能向对象实施操作指的是当前调用这个方法的对象,并不是传入的参数。静态方法并不需要对象来调用,那么当然在方法内部也无法获得当前调用的对象,所以也就不能向对象实施操作了。
【 在 buptlong 的大作中提到: 】
: 所谓向对象实施操作是指ee.getmessage()
: 【 在 xhwsolo (【老婆控】||萨娇||宏伟) 的大作中提到: 】
: : 静态方法是一种不能向对象实施操作的方法。这句话怎么理解?
: ...................
3Q
【 在 lovemaker 的大作中提到: 】
: 这句话的理解应该是 静态方法中没有隐式的this指针 所以不能操作本身的对象,也就是只能调用静态成员或方法。
: 你的例子中用的是另外一个对象当然没有问题了。不能向对象实施操作指的是当前调用这个方法的对象,并不是传入的参数。静态方法并不需要对象来调用,那么当然在方法内部也无法获得当前调用的对象,所以也就不能向对象实施操作了。
: --
: ...................
不能向对象实施操作指的是当前调用这个方法的对象,并不是传入的参数。
看到这句话明了了,谢谢~~~
【 在 Jack204 的大作中提到: 】
: 中文这种话,无法理解,直接英文搞起,中文博大精深,小滴表示完全理解不了。。
: --
英文水平不行,看英文版一天都看不了几页…