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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 人心如水 中级黑马   /  2014-6-14 12:24  /  1644 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

普通方法里有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;
        }
}

7 个回复

倒序浏览
是有区别的!!  因为getAge为类ageDemo中的一个静态方法,在main方法中直接调用它时不用分配内存空间,而实例化再调用的话(肯定也能调用,不过相当于实例化对象调用静态方法,这个是基础视频里面有),得现分配内存空间。这是最主要的一个区别。本人也是一个菜鸟,自己的见解感觉正确的话希望能帮上你。
回复 使用道具 举报
第一种方法因为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;
        }
}

回复 使用道具 举报 1 0
姿_`态 发表于 2014-6-14 12:57
第一种方法因为getAge是静态的,比较适合在本类中直接调用,比较方便。第二种方法,创建本类对象然后调用方 ...

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

传什么就返什么,这是规则,一般方法可以被对象调用,静态方法需要被类名调用,但是这里 两个方法在一个类里,所以就省略了类名
回复 使用道具 举报
希望有人详细解答下,小白一枚
回复 使用道具 举报
是有区别的!!  因为getAge为类ageDemo中的一个静态方法,在main方法中直接调用它时不用分配内存空间,而实例化再调用的话
回复 使用道具 举报
效果上没区别,但是创建对象消耗内存,当然那点内存你可以不在乎
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马