一、介绍
所谓方法,就是用来解决一类问题的代码的有序组合,是实现一个功能的模块。方法也叫函数,但是在Java中我们一般都称作为方法。
那么为什么需要方法呢?我们中的很多初学者应该都或多或少的考虑过这个问题。那么我们就来简单的介绍一下写方法的意义。
我们最开始写代码,是把所有的代码都罗列堆积到main方法中,这也是没有优化的'代码。那么我们的代码重复度会变的很高,代码的复用性也相对来说差一些,并且相对我们开发者来说,难懂难维护和管理。针对这种状况,就提出了方法。
把一个功能的实现抽取成方法是为了减少代码的耦合度,那么什么是耦合度呢?耦合度顾名思义,就是两者之间的密切关系程度,也可以理解为互相依赖的程度。每个函数也就是方法都单独的拥有自己的功能,这样就能降低耦合度了。
如果还不太明白的话,请参考以下的例子:
一个计算器,有加减乘除功能,可以把加减乘除的实现都变成一个个的方法。这样做的好处就是,万一有一天要求变化了,比如除法需要保留2位小数之类的,只要改实现除法的这个方法就可以了;如果没有把加减乘除这4个操作分割开,而是只写成了一个方法的话,那么只能对所有代码进行修改,不但找起来麻烦,而且在程序大了之后就会出现很多问题。
二、方法的语法
一般情况下,定义一个方法的语法是:
三、方法语法的详细介绍
1、 访问修饰符:方法允许被访问的权限范围。
可以是 public、protected、private 甚至可以省略 。
public:公共权限 修饰类、属性、方法。可以被任意类访问
protected:受保护的权限 修饰属性、方法。可以被同包类访问或者不同包下的该类的子类才可以访问。
省略不写:同包权限 修饰类、属性、方法。只能被同包的类访问
private:私有权限 修饰属性、方法。 只能在本类中访问
2、返回值类型:方法返回值的类型。
如果方法不返回任何值,则返回值类型指定为 void。
如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值。
3﹜ 方法名:定义的方法的名字,必须使用合法的标识符。
标识符的命名规范:在这里我就说一下方法的命名规范。方法命名分为以下两种情况:
一个单词的方法名:所有字母小写。
举例:sum();
两个或者两个以上的方法名:第一个单词首字母小写,第二个单词以上的单词首字母大写。
举例:getSum(); getPeopleAge();
4﹜ 参数列表:传递给方法的参数列表。
参数列表由参数的数据类型和参数名组成。参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开 。
5﹜ 方法的分类
根据方法是否带参、是否带返回值,可将方法分为四类:
① 无参无返回值方法
② 无参带返回值方法
③ 带参无返回值方法
④ 带参带返回值方法
四、方法重载
我们学习了方法,但是这里有一个概念很容易搞混乱。就是方法重载。那么什么是方法重载呢?只需要记住下面一句话。就可以很容易的区分什么是方法重载了。
在同一个类中,方法名相同,参数列表不同。与返回值类型无关。注意:参数列表不同包括参数的个数或者参数的数据类型不同。
五、构造方法和方法的区别
构造方法:
public 类名(参数列表){...}
public Demo02(){....}
方法:
修饰符 返回值类型 方法名(参数列表){...}
public void getSum(){....}
六、方法重写(也叫方法覆盖)
方法重写,简单来讲:就是一个类继续了另一个类的时候,对父类方法的重新实现。
这个重新实现,就是使用相同的方法名,相同的参数列表和相同的返回类型,访问修饰符的使用和父类相同或者更宽。
举例:
class F {
public String m(String s) {
return s;
}
}
class C extends F {
@Override
public String m(String s) {
return s+"extends";
}
}