1.定义方法

  是封装在一起来执行操作语句的集合,用来完成某个功能操作,简单的说就是提取出来的有特定功能的代码(程序)。在某些语言中被称为函数或者过程,比较特殊的方法是main方法(主方法),main方法是程序执行的入口。不可能所有的方法都放到main方法中,需要定义其他方法完成指定的功能,然后在main方法中调用即可(面向对象和面向接口编程)。

  方法在程序内存中位于栈区,main方法是最先入栈的方法,同时也是最后出栈的方法。根据main方法的执行先后顺序,调用的方法执行完后就出栈,然后释放栈内存。

  使用方法的好处是可以提高代码的复用率、简化代码,别的方法需要使用该方法时只需要调用就可以。

public static void main(String[] args) {
//实现功能的语句
}

2.定义方法

  方法的格式:

    修饰符(public static) 方法返回值类型(void,或者int double string等类型) 方法名(见名知意,遵循驼峰命名)(形参列表int a,char b){
    方法体(逻辑代码);
    return + 方法返回值 ;有返回值的情况下return一个值后停止,没有返回值用void修饰方法
    }

    1.形参列表:在方法被调用时用来接收外界数据的数据,并且规定实参的数据类型。

    2.实参:调用方法时,实际传给方法的参数。实参时实际的值,位于方法的内部,形参是接收实参的值,位于声明处。

    3.返回值:方法在执行完毕后,返还调用他的环境的数据。

    4.如何调用方法:在主方法(main方法)中调用。

    5.如果方法只被声明,则方法不被调用。

    6.修饰符:决定了方法的工作范围。

    

public static int getNumber(int a,int b){
int sum = 0;
sum = a + b;
return sum;
}

3.方法重载

  方法重载是让类以统一的方式处理不同类型数据的一种手段,调用方法时通过传递给他们的不同个数和类型的参数来决定调用哪一个方法,这就是方法的多态性。一个类中可以指定相同的方法名,但是参数不用的多个方法。那么调用时就会选择参数不同的方法进行调用。简单的说就是使用同一方法名(可以不同类,但是必须同名)不同的形参列表,完成相同的功能。

  方法重载的条件(两同一不同):同一个类中、同一个方法名;不同的形参列表(数量、顺序、类型)。

  使用方法重载需要注意的事项:

  ①当使用方法重载时只能用过不用的参数列表,必须具有不同的参数列表。

  ②不能通过访问权限、返回类型、抛出的异常进行重载。

  ③方法的异常类型和数目不会对重载造成影响。

  ④可以有不用的返回类型,只要参数列表不同就可以了。

  ⑤可以有不同的访问权限。

  ⑥可以抛出不同的异常。

   public static int getNumber(int a,int b){
int sum = 0;
sum = a + b;
return sum;
}
public static int getNumber(int a,int b,int c){
int sum = 0;
sum = a + b + c;
return sum;
}  
public static double getNumber(double a,double b,double c){
double sum = 0;
sum = a + b + c;
return sum;
}

4.方法重载和方法重写的区别

  在OOP的继承关系中,父类可以产生一个子类,子类继承父类,他继承了父类的所有可见的特征,继承了父类所有的方法和变量(除了父类private修饰的属性和方法)。

  子类可以定义新的特征,当子类需要修改父类的一些方法进行扩展,增大功能,我们常常把这样的一种操作称为方法重写。也称为覆写或者覆盖。在面向接口编程时也用到方法的重写,不同的是继承类的子类中子类可以选择重写或者不重写方法;在接口中则是实现该接口,就必须重写接口中的抽象方法。

  重写体现了Java的优越性,重写是建立在继承关系的基础上,他能使语言结构更加丰富。在继承中,子类可以隐藏和访问父类的方法,也可以覆盖继承父类的方法。如果子类将父类中的方法重写了,调用的时候调用的肯定是调用被重写的方法,如果一定要调用父类中的方法,可以通过使用super关键字来实现这个功能(super无参构造方法)。super关键之可以从子类访问父类中的内同,如果要访问被重写的方法,使用super方法名(参数列表)的形式(super有参构造方法)。

  方法重写时需要遵循:

  ①父类方法的参数列表必须完全与子类重写的方法的参数列表相同,否则不是重写,而是重载。

  ②父类的返回类型必须与子类重写的方法返回类型相同,否则不是重写而是重载。

  ③子类重写的方法不能拥有比父类邓加严格的访问权限,意思就是子类的权限大于等于父类的访问权限。父类中所有private修饰的属性、方法均不能被子类继承并访问,只能父类使用。

  ④在继承过程中,如果父类当中的方法抛出异常,那么子类重写父类的该方法时也要抛出异常。而抛出的异常不能多于父类中抛出的异常,意思就是父类的异常就是子类可以抛出该方法的最大异常,重写方法一定不能抛出新的异常。

  

  

  

JavaSE基础篇—流程控制语句—方法的定义 调用和重载的更多相关文章

  1. JavaSE基础篇—流程控制语句

    本章知识点分析: 流程控制语句 1.定义:流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块.流程控 制方式采用结构化程序设计中规定的三种基本流程机构:顺序结 ...

  2. 二、JavaScript语言--JS基础--JavaScript进阶篇--流程控制语句

    1.if语句--做判断 if语句是基于条件成立才执行相应代码时使用的语句. 语法: if(条件) { 条件成立时执行代码} 注意:if小写,大写字母(IF)会出错! 假设你应聘web前端技术开发岗位, ...

  3. 20151013 C# 第一篇 流程控制语句

    20151013 流程控制语句: 1.选择语句 if … else if...else 选择语句 if(布尔表达式){  语句块:} if(布尔表达式){  语句块1:}else{  语句块2:} i ...

  4. Java基础学习-流程控制语句

    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我 ...

  5. java基础(5):流程控制语句(switch)、数组

    1. 流程控制语句(续) 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码.例如,在程序 ...

  6. Java基础语法—流程控制语句

    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.所以,我们必须清楚每条语句的执行流程.而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能. 3.1 流程控制语句分类 ​ ...

  7. JS基础-语法+流程控制语句+函数+内置对象【数组】

    JS语法: Javascript基本数据类型:undefined/null/Boolean/number/string 复杂数据类型:object typeof用来检测变量的数据类型 typeof的使 ...

  8. java基础3_流程控制语句

    一 条件判断 1. 条件运算符(三元表达式) ,其形式为: type d = a ? b : c; 具体化形式为:int d = 2 < 1 ? 3 : 4; 2. 轻量级的文本编辑器:Ultr ...

  9. 再回首,Java温故知新(九):Java基础之流程控制语句

    流程控制语句分为条件语句.循环语句和中断语句. 中断语句包括break和continue,两者的区别在于break会跳出整个循环,而continue则是跳出此次循环,之后还会继续下一次循环. 条件语句 ...

随机推荐

  1. shift+zz保存并退出

    shift+z 输出的是大写Z shift+zz就是命令ZZ ZZ 执行退出VIM操作,如果文本已经经过编辑,则首先保存文件.

  2. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](五)

    前言 Hi,大家好,我是Rector 时间飞逝,一个星期又过去了,今天还是星期五,Rector在图享网继续跟大家分享系列文本:一步一步创建ASP.NET MVC5程序[Repository+Autof ...

  3. Machine Learning - week 1

    Matrix 定义及基本运算 Transposing To "transpose" a matrix, swap the rows and columns. We put a &q ...

  4. Ubuntu环境下IPython的搭建和使用

    1. Ubuntu操作系统版本 说明:Ubuntu 12.04.3 LTS自带的Python 2.7.3版本. 2. 安装IPython 说明: 输入命令sudo apt-get install ip ...

  5. [bzoj1242] Zju1015 Fishing Net弦图判定

    弦图判定..MCS算法. 先选一个点,然后每次拿 相邻已选点最多 的未选点. 选完之后判断一下是否是完美消除序列. #include<cstdio> #include<iostrea ...

  6. UOJ#152. 【UR #10】汉诺塔

    题目:http://uoj.ac/problem/152 orzKPM... 分治,把数字是l~mid的拿出来放在一根柱子上,mid+1~r放在另一根柱子上.如此递归下去,每次递归只是改一下方向,l, ...

  7. 最小生成树—prim算法

    最小生成树prim算法实现 所谓生成树,就是n个点之间连成n-1条边的图形.而最小生成树,就是权值(两点间直线的值)之和的最小值. 首先,要用二维数组记录点和权值.如上图所示无向图: int map[ ...

  8. 试用最强Spark IDE--IDEA

    1.安装IntelliJ IDEA IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示 ...

  9. POJ 2387 Til the Cows Come Home(模板——Dijkstra算法)

    题目连接: http://poj.org/problem?id=2387 Description Bessie is out in the field and wants to get back to ...

  10. ItemCF_基于物品的协同过滤_MapReduceJava代码实现思路

    ItemCF_基于物品的协同过滤 1.    概念 2.    原理 如何给用户推荐? 给用户推荐他没有买过的物品--103 3.    java代码实现思路 数据集: 第一步:构建物品的同现矩阵 第 ...