黑马程序员技术交流社区

标题: return语句的一些纠结 [打印本页]

作者: 人心如水    时间: 2014-6-14 12:24
标题: return语句的一些纠结
普通方法里有return , 这个方法直接赋值给返回值类型的对象和用对象调用这个方法再赋值有什么区别啊  就比如
class ageDemo{
        public static void main(String[] args) {
                int a = getAge(3);//这个方法和下面的方法都能输出3,但是有什么不同呢
                int a = new ageDemo().getAge(3);
                System.out.println(a);
                }

        static int  getAge(int age){
                return age;
        }
}
作者: dugubaitian    时间: 2014-6-14 12:41
是有区别的!!  因为getAge为类ageDemo中的一个静态方法,在main方法中直接调用它时不用分配内存空间,而实例化再调用的话(肯定也能调用,不过相当于实例化对象调用静态方法,这个是基础视频里面有),得现分配内存空间。这是最主要的一个区别。本人也是一个菜鸟,自己的见解感觉正确的话希望能帮上你。
作者: 姿_`态    时间: 2014-6-14 12:57
第一种方法因为getAge是静态的,比较适合在本类中直接调用,比较方便。第二种方法,创建本类对象然后调用方法,你在这里用就有点不合适了,为什么创建一个对象呐,浪费空间不说,还显得复杂,不过这种方法适合在别的类中调用这个方法,

class ageDemo{
        public static void main(String[] args) {
                int a = getAge(3);//这个方法和下面的方法都能输出3,但是有什么不同呢
                int a = new ageDemo().getAge(3);
                System.out.println(a);
                }

        static int  getAge(int age){
                return age;
        }
}


作者: 人心如水    时间: 2014-6-14 13:16
姿_`态 发表于 2014-6-14 12:57
第一种方法因为getAge是静态的,比较适合在本类中直接调用,比较方便。第二种方法,创建本类对象然后调用方 ...

return 返回的值能直接赋值吗?不是说方法只能被对象调用吗?静态的也是要被类名调用,为什么这里有个return后发放就直接赋值  不需要类名和对象调用  这里不了解
作者: 姿_`态    时间: 2014-6-14 13:27
人心如水 发表于 2014-6-14 13:16
return 返回的值能直接赋值吗?不是说方法只能被对象调用吗?静态的也是要被类名调用,为什么这里有个ret ...

传什么就返什么,这是规则,一般方法可以被对象调用,静态方法需要被类名调用,但是这里 两个方法在一个类里,所以就省略了类名
作者: 215041631    时间: 2014-6-14 18:14
希望有人详细解答下,小白一枚
作者: 雾里看花。    时间: 2014-6-14 20:57
是有区别的!!  因为getAge为类ageDemo中的一个静态方法,在main方法中直接调用它时不用分配内存空间,而实例化再调用的话
作者: Ice丶wj    时间: 2014-6-14 21:17
效果上没区别,但是创建对象消耗内存,当然那点内存你可以不在乎




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2