黑马程序员技术交流社区

标题: 求问java中setName和getName是怎么执行的 [打印本页]

作者: 古银平    时间: 2012-5-22 08:32
标题: 求问java中setName和getName是怎么执行的
class Person
{
private String name;
private int age;
Person()
{
  System.out.println("A:name="+name+"  age="+age);
}

Person(String n)
{
  name = n;
  System.out.println("B"+"name="+name+"  age="+age);
}
public void setName(String n)
{
  name = n;
}
public String getName()
{
  return name;

}
Person(String n,int a)
{ name = n;
  age = a;
  System.out.println("C"+"name="+name+"   age="+age);
}
public void cry()
{
  System.out.println("cry......");
}
}
class  PersonDemo2
{
public static void main(String[] args)
{
  //Person p1 = new Person();
  //p1.cry();
  
  Person p2 = new Person("lisi");
  p2.setName("libushi");
  System.out.println(p2.getName());
   }
}
求问getName是怎么执行的,或许该程序只是用到了设置值,没用到getName获取值。但是我想知道,getName是怎么执行的,他是怎么获取值的,请教执行流程?

作者: 王怡然    时间: 2012-5-22 08:46
setName是你设置值得时候将值赋值给成员变量,
getName是将成员变量的值返回给你;
作者: 魏涞    时间: 2012-5-22 08:50
set 和get方法其实就是类中的普通成员方法,只是他的作用一般是给成员变量赋值和获取值。在JAVA中,一般将类中的成员变量都定义为私有的,在类外不让直接访问,就算用该类创建对象,这个对象也不能对这些私有成员进行操作,这时为了给外部提供操作这些私有成员变量,提供了set和get成员方法。这也体现了JAVA中的封装特性。
作者: 胡团乐    时间: 2012-5-22 09:31
这种setters和getters方法是基于对象的
setName()是给对象赋值,getName()是获取该对象的值
前提是构造方法必须传相应类型的值,如
Person(String name){
this.name=name;
}
public void setName(String name)
{
   this.name = name;
}
public String getName()
{
   return name;
}
然后具体化
Person p=new Person("haha");
System.out.println(p.getName);




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2