为了账号安全,请及时绑定邮箱和手机立即绑定

为什么第一种加了static才可调用方法,第二种创建对象后才可调用?

为什么第一种加了static才可调用方法,第二种创建对象后才可调用?

三蘅 2016-08-19 15:18:15
第一种:package com.imooc;public class HelloWorld{    public static void main(String[] args){/* * 通过定义无参带返回值的方法来实现,返回值为最大年龄 * 方法中将数组学生年龄保存在数组ages中,数组元素依次为18,23,21,19,25,29,17 * */            System.out.println("最大年龄为:"+maxAge());        }    static int maxAge(){        int[] ages={18,23,21,19,25,29,17};        int max=ages[0];        for(int i=0;i<ages.length;i++){            if(ages[i]>max)            {                max=ages[i];            }        }        return max;    }    }第二种:package com.imooc;public class HelloWorld{    public static void main(String[] args){/* * 通过定义无参带返回值的方法来实现,返回值为最大年龄 * 方法中将数组学生年龄保存在数组ages中,数组元素依次为18,23,21,19,25,29,17 * */    HelloWorld hello=new HelloWorld();//创建对象,名为hello        System.out.println("最大年龄为:"+hello.maxAge());        }        int maxAge(){        int[] ages={18,23,21,19,25,29,17};        int max=ages[0];        for(int i=0;i<ages.length;i++){            if(ages[i]>max)            {                max=ages[i];            }        }        return max;    }    }
查看完整描述

5 回答

?
赵志广

TA贡献53条经验 获得超17个赞

静态方法可以理解为类的方法,加载类文件的时候就有了

查看完整回答
反对 回复 2016-08-19
?
噼喱啪啦

TA贡献392条经验 获得超170个赞

http://www.imooc.com/code/1843 整个是幕课java入门第二季具体有关整个静态static的讲解.

  1. 第一种你说的那个你自己设置的maxAge()叫静态方法,在其他静态方法内可以直接调用,因为那个main主函数,主方法就是静态的,他调用静态的变量或方法都可以直接调用

  2. 第二个你说的那个你自己设置的maxAge()叫非静态方法,在其他静态方法内不能直接调用非静态的变量和方法,因为主函数是静态的,所以你要创建一个实例对象,才能调用非静态变量和方法.

  3. 学习这个建议你分模块,不要把主函数跟主类区别对待,主函数就是一个静态的方法,而主类也就是你这个public class HelloWorld其实是一个类而已.

查看完整回答
反对 回复 2016-08-19
?
JustWannaHugU

TA贡献452条经验 获得超796个赞

静态方法可以直接类名.方法名调用;普通方法需要实例化对象后方可正常使用。

查看完整回答
反对 回复 2016-08-19
?
qq_天大小霸王

TA贡献4条经验 获得超0个赞


第一种叫静态方法,静态方法调用在本类中不需要实例化即可使用

第二种是普通方法,在本类中想要使用需要实例化才可以被调用  建议你看一下java入门基础 讲的很详细

查看完整回答
反对 回复 2016-08-19
  • 5 回答
  • 0 关注
  • 1811 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信