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

第一种:

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;
    }
    }

三蘅
浏览 1842回答 5
5回答

赵志广

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

噼喱啪啦

http://www.imooc.com/code/1843 整个是幕课java入门第二季具体有关整个静态static的讲解.第一种你说的那个你自己设置的maxAge()叫静态方法,在其他静态方法内可以直接调用,因为那个main主函数,主方法就是静态的,他调用静态的变量或方法都可以直接调用第二个你说的那个你自己设置的maxAge()叫非静态方法,在其他静态方法内不能直接调用非静态的变量和方法,因为主函数是静态的,所以你要创建一个实例对象,才能调用非静态变量和方法.学习这个建议你分模块,不要把主函数跟主类区别对待,主函数就是一个静态的方法,而主类也就是你这个public class HelloWorld其实是一个类而已.

JustWannaHugU

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

qq_天大小霸王

第一种叫静态方法,静态方法调用在本类中不需要实例化即可使用第二种是普通方法,在本类中想要使用需要实例化才可以被调用  建议你看一下java入门基础 讲的很详细
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java