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. 关于FPGA的一些你必须知道的概念

    前仿真也称为功能仿真,主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路门延迟与线延迟,主要是验证电路与理想情况是否一致.可综合FPGA代码是用RTL级代码语言描述的,其输入为RTL级代码与T ...

  2. python抢火车票的脚本

    起因: 想着那么多人,抢不到火车票.感觉到一丝感慨 所以有了抢火车票这个脚本. 0x01 思路:自动打开浏览器,自动输入账号密码 知道查看.自动预定. 0x02 要用到的模块 splinter模块: ...

  3. hackerrank Diameter Minimization

    瞬间移动 题意:构造一个所有点出度都为m的有向图最小化图的直径. 显然转成m进制来做就好了. #include<queue> #include<cstdio> #include ...

  4. bzoj:1457: 棋盘游戏

    原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1457 看了网上dalao的题解,好像解释得并不是很清楚,就按照那种思路,自己YY了一个想法 ...

  5. Ping pong(树状数组求序列中比某个位置上的数小的数字个数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2492 Ping pong Time Limit: 2000/1000 MS (Java/Others) ...

  6. haslib 模块

    一.模块简介 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串( ...

  7. TI-RTOS 之 事件同步(Event, 类似semaphore)

    TI-RTOS 之 事件同步(Event, 类似semaphore) Event 是类似Semaphore的存在,官方如下描述: SYS/BIOS events are a means of comm ...

  8. load和DOMContenLoaded的区别

    load和DOMContentLoaded的作用就是当页面加载完成的时候自动执行,但他们执行的时间点是不一样的. DOM文档加载步骤: (1)解析html结构 (2)加载外部脚本和样式表文件 (3)解 ...

  9. vue引入新版 vue-awesome-swiper填坑

    关于新版 vue-awesome-swiper 问题 为什么我的vue-awesome-swiper组件pagination小圆点不显示问题? 为什么我的vue-awesome-swiper不会自动播 ...

  10. UE4 Xml读写

    UE4自带一个XmlParser,可以很方便的实现Xml的读写. 1,在PublicDependencyModuleNames.AddRange中添加XmlParser. 2,include XmlP ...