java初级 关于getXxx() 和setXxx() 问题

不用了的号 2010-03-19 09:23:03
class Testfunction
{
private String name;//姓名
private int age;//年龄
String getName(){
return name;
}
int getAge(){
return age;
}
void setName(String a){
name = a;
}
void setAge(int a){
if(a<20)
{
System.out.println("你的年龄有误");
}
else
{
age = a;
}
}
//自我介绍方法
void Myprint()
{
System.out.println("我叫"+name+"今年"+age);
}
public static void main(String[] args)
{
Testfunction stu = new Testfunction();
stu.name = "张三";
stu.age = 15;
stu.Myprint();
}
}

大家看一下上面的简单代码,这里的setXxx()和getXxx()不是可以验证数据吗?为什么我让年龄等于15的时候,上面的那个setAge()里面的内容没有打印出来??知道的,请给我解释一下,这里先谢谢了,能给我讲讲这两个函数的作用最好,谢谢……
...全文
405 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
guo56560058 2010-03-20
  • 打赏
  • 举报
回复
你写的应该是一个类似javabean的东西。
把所以的变量设置为私有,通过get,set方法取值和赋值。
没有调用set方法,应该写stu.setAge(15);
java55369618 2010-03-20
  • 打赏
  • 举报
回复

public class Circle {
private int a=5;
public static void main(String[] args) {
Circle c=new Circle();
c.a=10;
System.out.println(c);
}
@Override
public String toString() {
return "Circle [a=" + a + "]";
}

}


main()中设置值啊

私有变量能用c.在设置值

运行上面的就知道了
soton_dolphin 2010-03-20
  • 打赏
  • 举报
回复
同意楼上
meZhou 2010-03-20
  • 打赏
  • 举报
回复
楼上均为正解
py330316117 2010-03-20
  • 打赏
  • 举报
回复
你得调用方法才能显示方法中的内容,你不调用set方法他怎么能显示打印语句哪???
Agile牧 2010-03-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 awusoft 的回复:]
因为你的检验是在set方法中的,所以你应该是通过set方法去赋值
Testfunction stu = new Testfunction();
stu.name = "张三";
stu.setAge(15);
stu.Myprint();
[/Quote]
正解 不解释
cao_main 2010-03-20
  • 打赏
  • 举报
回复
看来时为新手,加油!!!
ltsms163 2010-03-20
  • 打赏
  • 举报
回复
写了方法就要调用,否则没有必要写这个方法的。你在setAge()里确实有判断,但main()中却没调用过该方法赋值,而是直接stu.age=15,所以走的不是setAge()这个方法,所以也就没有判断是否小于20的过程。。。
把main()中的stu.age=15一句替换成stu.setAge(15)
不用了的号 2010-03-19
  • 打赏
  • 举报
回复
你能给点好的东西给我看看嘛,才学不明白这个东西,就是想不通,这两个getXxx() 和setXxx()是用来做什么的??[Quote=引用 8 楼 l417584711 的回复:]
首先要明白 set get 的意义
是访问私有成员变量的 函数 不具有其他操作
看看java 的规范吧
[/Quote]
seteradu 2010-03-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hua337583437 的回复:]
你定义的age是私有属性,怎么可以用stu.age = 15;
直接来赋值,这个程序编译的时候根本就是错误的
在main()函数里面,要这样写才行
stu.setAge(15);
[/Quote]
在同一个类中是可以的,编译不会出错……
mon9012 2010-03-19
  • 打赏
  • 举报
回复
方法都没有调用
aSysBang 2010-03-19
  • 打赏
  • 举报
回复
首先要明白 set get 的意义
是访问私有成员变量的 函数 不具有其他操作
看看java 的规范吧
guoliang2010 2010-03-19
  • 打赏
  • 举报
回复
楼上均为正解
yuhuidog 2010-03-19
  • 打赏
  • 举报
回复
画内存图吧,那是最好理解的
tangw108030801 2010-03-19
  • 打赏
  • 举报
回复
方法是写来用的!
hua337583437 2010-03-19
  • 打赏
  • 举报
回复
你定义的age是私有属性,怎么可以用stu.age = 15;
直接来赋值,这个程序编译的时候根本就是错误的
在main()函数里面,要这样写才行
stu.setAge(15);
cjm123s 2010-03-19
  • 打赏
  • 举报
回复
请问你在那调用setAge()方法了
awusoft 2010-03-19
  • 打赏
  • 举报
回复
因为你的检验是在set方法中的,所以你应该是通过set方法去赋值
Testfunction stu = new Testfunction();
stu.name = "张三";
stu.setAge(15);
stu.Myprint();
Ark032425 2010-03-19
  • 打赏
  • 举报
回复
set方法根本没调用过。
要这样: stu.setAge(15);
gao512008 2010-03-19
  • 打赏
  • 举报
回复
怎么不用setAge()来赋值?那你写来有什么用?
加载更多回复(4)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧