》这一节,我们一起来了解一下Java中的方法——什么是方法?如何声明一个方法?有哪些方法?什么是实例方法?什么是抽象方法?”我笑着对三妹说,“我开始了,别闪。”01.Java中的方法是什么?方法是用来实现代码复用的,我们写一次方法,并多次使用。通过在方法中增删部分代码,可以提高整体代码的可读性。它只在调用方法时执行。Java中最著名的方法是main()方法.点击下面的链接阅读更多关于main()方法的内容。02.如何声明一个方法?方法的声明反映了方法的一些信息,比如可见性、返回类型、方法名和参数。如下图.access:指定方法的可见性,Java提供了四种访问修饰符:public:该方法可以被所有类访问private:该方法只能在定义它的类内访问protected:该方法可以被同一个包中的类或不同包中的子类访问。默认:如果t该方法不使用任何访问修饰符,Java默认使用default修饰符,该方法只能被同包内的类看到。返回类型:方法返回的数据类型,可以是基本数据类型、对象、集合。如果您不需要返回数据,请使用void关键字。方法名:方法名应该最能体现方法的功能。例如,如果我们要创建一个将两个数相减的方法,那么方法名最好是subtract。方法名最好是动词,以小写字母开头。如果方法名包含两个以上的词,第一个词最好是动词,后面接一个形容词或名词,并以驼峰命名。例如:一个词的方法名:sum()多个词的方法名:stringComparision()一个方法可能与同一个类中的另一个方法同名,这称为方法重载。参数:参数括在括号中。如果有多个参数,可以用逗号分隔。参数由两部分组成,参数类型和参数名称。如果该方法没有参数,则括号为空。方法签名:每个方法都有一个签名,包括方法名和参数。方法体:方法体放在一对花括号中,将一些代码放在一起执行特定的任务。02.有哪些方法?方法可以分为两种类型,一种称为预定义方法,另一种称为用户定义方法。1)预定义方法Java提供了大量的预定义方法供我们调用,也称为标准类库方法,或内置方法。比如String类的length()、equals()、compare()方法,以及我们在初学Java阶段最常用的println()方法,都是用来在控制台打印信息的。/***@作者微信搜索“沉默王二”,回复关键字PDF*/publicclassPredefinedMethodDemo{publicstaticvoidmain(String[]args){System.out.println("沉默王二,一个有趣的程序员");}}在上面的代码中,我们使用了两个预定义的方法,main()方法是程序运行的入口,println()方法是PrintStream类的一个方法。这些方法都是预先定义好的,我们可以直接使用。我们可以通过集成开发工具查看预定义方法的方法签名。当我们将鼠标悬停在println()方法上时,会显示下图中的内容:println()方法的访问修饰符是public,返回类型是void,方法名是println,参数是Stringx,和Javadoc(方法是什么)。预定义的方法使编程更容易。我们只需要在实现某些功能时直接调用这些方法即可,无需重写。2)用户自定义方法当预定义的方法不能满足我们的要求时,我们需要自定义一些方法。例如,让我们定义这样一个方法来检查数字是偶数还是奇数。publicstaticvoidfindEvenOdd(intnum){if(num%2==0){System.out.println(num+"是偶数");}else{System.out.println(num+"是奇数");}}方法名是findEvenOdd,访问修饰符是public,而且是静态的(static),返回类型是void,参数是整数(int)num。方法体中有ifelse语句,如果num能被2整除,则打印偶数,否则打印奇数。方法定义后,如何调用?/***@作者微信搜索“沉默之王二”,回复关键字PDF*/publicclassEvenOddDemo{publicstaticvoidmain(String[]args){findEvenOdd(10);findEvenOdd(11);}publicstaticvoidfindEvenOdd(intnum){if(num%2==0){System.out.println(num+"是偶数");}else{System.out.println(num+"是奇数");}}}main()方法是入口程序的点是静态的,所以可以直接调用findEvenOdd(),也是静态方法。当一个方法被static关键字修饰时,它就是一个静态方法。也就是说,静态方法是属于类的,而不是属于类实例的(不需要用new关键字创建对象来调用,直接通过类名调用即可)。03.什么是实例方法?在类中声明的不使用static关键字的方法称为实例方法。在调用实例方法之前,必须创建类的对象。/***@作者微信搜索“沉默之王二”,回复关键词PDF*/publicclassInstanceMethodExample{publicstaticvoidmain(String[]args){InstanceMethodExampleinstanceMethodExample=newInstanceMethodExample();System.out.println(instanceMethodExample.add(1,2)));}publicintadd(inta,intb){returna+b;}}add()方法是实例方法,需要创建InstanceMethodExample对象才能访问。实例方法有两种特殊类型:getter方法和setter方法getter方法用于获取私有变量(私有修饰字段)的值,setter方法用于设置私有变量的值。/***@author沉默王二,有趣的程序员*/publicclassPerson{privateStringname;privateintage;privateintsex;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}publicintgetSex(){returnsex;}publicvoidsetSex(intsex){this.sex=sex;}}getter方法以get开头,setter方法以set开头。04.什么是抽象方法?没有方法体的方法称为抽象方法,它总是在抽象类中声明。这意味着如果一个类有抽象方法,它就必须是抽象的。可以使用atstract关键字创建抽象方法和类。/***@author微信搜索“沉默王二”,回复关键字PDF*/abstractclassAbstractDemo{abstractvoiddisplay();}类继承抽象类时,必须重写抽象方法:/***@author微信搜索“沉默之王二”,回复关键字PDF*/publicclassMyAbstractDemoextendsAbstractDemo{@Overridevoiddisplay(){System.out.println("Overriddenabstractmethod");}publicstaticvoidmain(String[]args){MyAbstractDemomyAbstractDemo=newMyAbstractDemo();myAbstractDemo.display();}}输出结果如下:rewrittentheabstractmethodrewrittentheabstractmethod“好了,三妹,我们先说Java中的方法。”扭着脖子终于对三姐说道。“行了,大哥辛苦了。”本文转载自微信公众号“沉默之王二”,可通过以下二维码关注。转载本文请联系沉默王二公众号。
