黑马程序员技术交流社区
标题:
关于面向对象的问题提问。
[打印本页]
作者:
探花
时间:
2014-4-4 17:15
标题:
关于面向对象的问题提问。
本帖最后由 探花 于 2014-4-7 16:53 编辑
请高手看一下代码,很简单对一个私有成员的赋值
package com.itcase;
public class Test1 {
/**
* @param args
*/
public static void main(String[] args) {
Person p = new Person ();
p.setAge(20);
p.speak();
}
}
class Person {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
void speak() {
System.out.println("age="+age);
}
}
复制代码
里面有 两个方法,一个是setAge ,一个是getAge,
可是在主函数的地方,是调用的setAge怎么会能返回数值那,
不是应该调用getAge 吗?请高手给解释一下
作者:
残梦共飞雪
时间:
2014-4-4 17:20
你的主函数调用了
void speak() {
System.out.println("age="+age);
}
复制代码
p.setAge(20); 没有返回内容。
作者:
刘一博
时间:
2014-4-4 17:34
p.setAge(20);
这没有返回值,这是进行封装,
public void setAge(int age) { //传入age为20,无返回值
this.age = age; //将20赋值给p对象的age
}
作者:
╰青青子佩ˊゝ
时间:
2014-4-4 18:47
你类中的speak()方法不就已经能打印出age了嘛?你的getAge()和speak功能是一样的。
void speak() {
System.out.println("age="+age);
}
作者:
请备注
时间:
2014-4-4 18:53
执行结果:age=20
是p.speak() 语句输出的。
public int getAge()
{ return age;
//System.out.println("age="+age);
}
该语句没有执行 你用注释里 的语句试一下就知道了
作者:
lgqioi
时间:
2014-4-5 01:06
public static void main(String[] args) {
Person p = new Person();
p.setAge(20);
// p.speak();//因为在person类中定义了speak方法并打印了
System.out.println(p.getAge());//通过get方法获取年龄
}
}
class Person {
private int age;
public int getAge() {
return age;//调用get方法返回age。没有必要单独定义speak。
}
public void setAge(int age) {
this.age = age;
}
/*
* void speak() { System.out.println("age="+age); }
*/
}
作者:
枫儿
时间:
2014-4-7 10:54
楼主你好,如果问题已解决,请将帖子改为提问结束,如果没有解决请楼主继续提问,谢谢合作
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2