黑马程序员技术交流社区
标题:
关于类中的get***和set***
[打印本页]
作者:
小飞龙
时间:
2012-7-19 16:24
标题:
关于类中的get***和set***
class PersonAge
{
private int age
public void setAge (int a)
{
if (a > 0 && a< 150)
{ age = a;
speak();
}
else
System.out.println("Wrong age");
}
void speak()
{
System.out.println("age="+age);
}
public int getAge ()
{
return age;
}
}
不知道这个getAge()方法有什么用呢?跟setAge有什么关系?
作者:
王宝康
时间:
2012-7-19 16:27
这是封装的原理,一个实体中封装了类的对象,类对外提供接口,外部类可以通过getXXX()方法,来获取对象的该属性,同样,可以通过setXXX()方法,对对象的相应属性进行赋值。
作者:
山水游客
时间:
2012-7-19 16:29
由于age被private修饰,根据修饰符的访问权限,在PersonAge类外,是无法直接使用age成员。而这
时可以通过调用getAge()方法来获得age(getAge()是public修饰
作者:
陈冲
时间:
2012-7-19 16:38
class PersonAge
{
private int age//私有化, 只能被类内部的方法访问
public void setAge (int a)//对外提供的方法,使外部能够对私有成员进行操作
{
if (a > 0 && a< 150)
{ age = a;
speak();
}
else
System.out.println("Wrong age");
}
void speak()
{
System.out.println("age="+age);
}
public int getAge ()//对外提供的方法,使外部能够对私有成员进行操作
{
return age;
}
}
复制代码
在PersonAge类中,成员age进行了私有化(private),而用private声明的属性或方法只能在其类的内部被调用,而不能再类的外部被调用。
而PersonAge类中的setAge()和getAge()方法,是对外提供的方法,以供外部程序对成员age进行操作,setAge()是对成员age进行赋值操作,
而getAge()是对成员age进行读取操作,以便于调用age的值在外部进行运算。
这里setAge()和getAge()你可以看做是银行中存和取的关系。
作者:
黑马振鹏
时间:
2012-7-19 16:39
本帖最后由 黑马振鹏 于 2012-7-19 16:42 编辑
private int age age设置为私有,需要提供两个方法对其进行设置和获取。直接看set和get一个是设置,一个是得到,所以方法名字就确定了setAge和getAge;
设置值需要给方法一个参数,所以定义为public void setAge(int a) ;获取方法直接获取成员的值,需要将返回类型设置成与定义时相同,即为public int getAge()
作者:
王飞
时间:
2012-7-19 16:44
个么这是封装方面的知识
把自己的东西封装到自己内部,不让外部访问,只能通过自己才能去访问这个你想访问的东西
作者:
马州州
时间:
2012-7-19 16:48
class PersonAge
{
private int age
public void setAge (int a)//上面把age私有化了,这里提供对应访问age的方式
{
if (a > 0 && a< 150)
{ age = a;
speak();
}
else
System.out.println("Wrong age");
}
void speak()
{
System.out.println("age="+age);
}
public int getAge ()//返回age的值,因为上面你判断完毕之后要返回值,程序才能继续运行下去
{
return age;
}
}
复制代码
首先,set和get不一定说非得这么写,只是为了书写规范,set get一个成员变量,通常都会对应两个访问方式,一个set一个get
这个是函数的封装,你封装以后你需要对外提供访问方式,就是因为可以在访问方式中加入逻辑判断等语句
不知道这个getAge()方法有什么用呢?
将age私有化以后,类以外即使建立的对象也不能直接访问,就需要在Person类中,提供对应访问age的方式,这里的set和get是与之对应的对外访问方式
跟setAge有什么关系?
从字面上来说是没什么关系的,这里你也可以用其他的来表示,只是书写规范,从意义上来说,就是上面说的,对外提供访问方式,getAge就是返回这个值
作者:
郑明君
时间:
2012-7-19 17:18
public class Age{
private int age;
}
复制代码
作者:
赵聪
时间:
2012-7-19 17:45
java程序一般将A类的属性修饰符设置为private,这是为了更好的封装数据。要想在B类里引用该属性,就可以在A类里定义修饰符为public的set,get方法以设置和获取private型的属性值
作者:
-_青春,就该努
时间:
2012-7-20 14:30
首先这个代码 ,你想问的也是关于get和set的方法问题
get set 方法
set和get方法一般是用来给类的成员变量赋值的,由于类的成员变量一般会声明为private私有的,其他的类是不能直接访问private成员变量的,所以为了在除此类以外给该类的成员变量赋值或者取值,只有用声明为public的set和get方法来实现,set和get方法是用于封装的 所以一般只在private中用 如果不是在private中用也可以,代码也是可以执行的 get 是用来调用的 set是用来赋值的。
你这个代码 有set就应该有get 因为你用set赋值之后,不用get调用,怎么会有参数值呢,没有值肯定是不输出的阿.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2