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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 完美恋爱 高级黑马   /  2013-11-16 17:10  /  3055 人查看  /  25 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 完美恋爱 于 2013-11-16 18:59 编辑

public  void   setA(int  a)
{
            aaa   =   a;
}
public  int   getA()
{
          return  aaa;
}


1.请问这里的return   aaa是返回给谁的?
2.如果是返回给调用者的话不是应该调用getA方法而不是调用setA方法啊,才能返回给调用者吗?

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

25 个回复

倒序浏览
本帖最后由 Weix1992 于 2013-11-16 17:26 编辑

楼主第二句话我没听懂,能再说清晰一点吗?

比如 Test t = new Test();

  t.get**() 此时你返回的是一个int 型的数据,但是你仅仅这么写,返回的值就没有给任何地方。

int a = t.get**();  这样把返回的值给了a 不知道LZ是不是问的这个意思。
回复 使用道具 举报
肯定是返回给调用者的,get()和set()方法只是变量的两种访问方式
回复 使用道具 举报
= =。  楼主,你问题的描述已经秒杀了我,我看了好多遍,还是看不懂啊。
回复 使用道具 举报
Weix1992 发表于 2013-11-16 17:20
楼主第二句话我没听懂,能再说清晰一点吗?

正常的话是这么也的
public static void main(String[] args)
{
     int  b = aaa(3);
     System.out.println(b);
}

public static int aaa(int a)
{
     int b = a;
     return b;
}
就是说调用那个函数,那个函数的返回值就给调用者
但是set,get函数里,为什么主函数只需调用set函数,就能得到返回值啊!返回值不是在get函数里吗,应该调用get函数才对啊!
回复 使用道具 举报
一步一脚印 发表于 2013-11-16 17:25
= =。  楼主,你问题的描述已经秒杀了我,我看了好多遍,还是看不懂啊。

正常的话是这么写的
public static void main(String[] args)
{
     int  b = aaa(3);
     System.out.println(b);
}

public static int aaa(int a)
{
     int b = a;
     return b;
}
就是说调用那个函数,那个函数的返回值就给调用者
但是set,get函数里,为什么主函数只需调用set函数,就能得到返回值啊!返回值不是在get函数里吗,应该调用get函数才对啊!
回复 使用道具 举报
Weix1992 发表于 2013-11-16 17:20
楼主第二句话我没听懂,能再说清晰一点吗?

比如 Test t = new Test();

正常的话是这么写的
public static void main(String[] args)
{
     int  b = aaa(3);
     System.out.println(b);
}

public static int aaa(int a)
{
     int b = a;
     return b;
}
就是说调用那个函数,那个函数的返回值就给调用者
但是set,get函数里,为什么主函数只需调用set函数,就能得到返回值啊!返回值不是在get函数里吗,应该调用get函数才对啊!
回复 使用道具 举报
完美恋爱 发表于 2013-11-16 17:25
正常的话是这么也的
public static void main(String[] args)
{

你先看看我在2楼的回复。
  1. public class test() {
  2.     int a = 0;
  3.        public void setA(int i) {  //一般set方法不需要返回值
  4.             this.a = i;
  5.         }
  6.         
  7.        public int getA() {   
  8.             return a;
  9.         }
  10. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

回复 使用道具 举报
完美恋爱 发表于 2013-11-16 17:27
正常的话是这么写的
public static void main(String[] args)
{

不知道是不是这样,我的理解是
class Person{
    private String name;//set方法直接给它赋值的, 在本类中 访问name是不需要调用get方法
   //get方法是提供给外界看不到Person类的属性name的类 调用来获取name的值的。
    public void setName(String name){
        this.name = name;//这里是对Person类的name属性赋值. 而
     }

     public String getName(){
   return "name";
    }

}

不知道是不是你想要的答案。
回复 使用道具 举报
Weix1992 发表于 2013-11-16 17:31
你先看看我在2楼的回复。

看了,我不是要问那个,728965074,你加我QQ吧!上线说的明白
回复 使用道具 举报
1.其中的aaa是返给调用者的
  1. public static void main(String[] args)
  2. {
  3.     int b=getA();//调用getA,getA返回aaa值给b
  4. }
复制代码
2.set方法一般不需要返回值,要返给调用者就是get方法,set方法是赋值的
回复 使用道具 举报
一步一脚印 发表于 2013-11-16 17:33
不知道是不是这样,我的理解是
class Person{
    private String name;//set方法直接给它赋值的, 在本 ...

我感觉这样才对
public int setA(int a)
{
        this  a  =   a;
        return    a;
}这里调用set方法就可以把返回值返回给调用者了
我感觉不应该写get方法了,因为即使写了,里面写的是返回值, 那没人调用get方法,它返回给谁呢?
回复 使用道具 举报
完美恋爱 发表于 2013-11-16 17:39
我感觉这样才对
public int setA(int a)
{

我这下我明白了你的意思了。
      这个就设计方法论的问题了。get怎么可能会没人调用。你说你只要一个set方法,其实是可以的。
但是set字面上看是设置,并没有说有返回。为什么要这么设计,就是为了让程序员能够更好的理解和使用这些方法。    也是JavaBean的设计动机。
     如果按你这么说,不要get,那么Struts2只要的框架将会让程序员学起来感觉逻辑不对,不易于理解。这些东西都是那些科学家经过非常久的经验所总结出来的,肯定有其道理性,但不能保证一定正确。
这只是我的理解,不代表一定正确。

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!(给一个不一定正确的技术分!哈哈~).

查看全部评分

回复 使用道具 举报
完美恋爱 发表于 2013-11-16 17:39
我感觉这样才对
public int setA(int a)
{

哦,原来你是这个意思。。。。

那我问你,如果我只是想拿到某个属性的值,却不想改变它的值,那我怎么办?而且这个时候属性是用private修饰的。分开是好区别功能,对属性就是分  查是查,改是改, 又查又改的时候估计是要完成某个功能了那就得另说。
回复 使用道具 举报
一步一脚印 发表于 2013-11-16 17:47
我这下我明白了你的意思了。
      这个就设计方法论的问题了。get怎么可能会没人调用。你说你只要一个se ...

那解释一下为什么get方法被谁调用了啊!调用语句在哪里啊?我只看到在主函数里调用了set方法啊!
回复 使用道具 举报
Weix1992 发表于 2013-11-16 17:47
哦,原来你是这个意思。。。。

那我问你,如果我只是想拿到某个属性的值,却不想改变它的值,那我怎么办 ...

可是返回语句是在get方法里啊!关键是我没有看到谁调用了get方法啊!既然没人调用,你为什么调用set方法就会得到返回值呢?
回复 使用道具 举报
hubby 中级黑马 2013-11-16 17:56:30
17#
函数set是设置值,函数get是获取值。。。
回复 使用道具 举报
完美恋爱 发表于 2013-11-16 17:52
那解释一下为什么get方法被谁调用了啊!调用语句在哪里啊?我只看到在主函数里调用了set方法啊! ...

你把你完整代码丢出来。。 在12楼 你自己写了
public int setA(int a) {
    this.a = a;
    return a;
}
这样当然会有返回值了啊!
回复 使用道具 举报
Weix1992 发表于 2013-11-16 18:01
你把你完整代码丢出来。。 在12楼 你自己写了
public int setA(int a) {
    this.a = a;

public void setA(int a)
{
      ihis.a = a;
}
public int getA()
{
    return a;
}
我说的是这个啊!这个返回值是在get方法里的,但是没人调用
回复 使用道具 举报
完美恋爱 发表于 2013-11-16 18:06
public void setA(int a)
{
      ihis.a = a;

这个返回值是在get()方法里。。
这句话就有问题!
get()方法里什么都没有,就提供了一个功能,就是把你的属性a的值给反回来。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马