A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 探花 中级黑马   /  2014-4-4 17:15  /  1054 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 探花 于 2014-4-7 16:53 编辑

请高手看一下代码,很简单对一个私有成员的赋值
  1. package com.itcase;

  2. public class Test1 {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 Person p = new Person ();
  8.                 p.setAge(20);
  9.                 p.speak();
  10.         }
  11. }
  12.         class Person {
  13.                 private int age;

  14.                 public int getAge() {
  15.                         return age;
  16.                 }

  17.                 public void setAge(int age) {
  18.                         this.age = age;
  19.                 }
  20.                 void speak() {
  21.                         System.out.println("age="+age);
  22.                 }
  23.         }
复制代码
里面有 两个方法,一个是setAge ,一个是getAge,
可是在主函数的地方,是调用的setAge怎么会能返回数值那,
不是应该调用getAge 吗?请高手给解释一下

6 个回复

倒序浏览
你的主函数调用了
  1. void speak() {
  2.                         System.out.println("age="+age);
  3.                 }
复制代码


p.setAge(20); 没有返回内容。
回复 使用道具 举报
p.setAge(20);
这没有返回值,这是进行封装,
public void setAge(int age) {  //传入age为20,无返回值
        this.age = age; //将20赋值给p对象的age
}
回复 使用道具 举报
你类中的speak()方法不就已经能打印出age了嘛?你的getAge()和speak功能是一样的。
void speak() {
                        System.out.println("age="+age);
                }
回复 使用道具 举报
执行结果:age=20
是p.speak()  语句输出的。
public int getAge()
{ return age;
   //System.out.println("age="+age);
}
该语句没有执行 你用注释里 的语句试一下就知道了
回复 使用道具 举报
        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); }
         */
}
回复 使用道具 举报
楼主你好,如果问题已解决,请将帖子改为提问结束,如果没有解决请楼主继续提问,谢谢合作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马