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. 【Java】synchronized与lock的区别

    从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock. 也许有朋友会问,既然都可以通过synchronized来实现同步访问了 ...

  2. RabbitMQ入门HelloWorld(C#)(翻译)

    介绍 先决条件 本教程假定RabbitMQ已安装并在标准端口(5672)上的本地主机上运行.如果您使用不同的主机,端口或凭据,连接设置将需要调整. 在哪里得到帮助 如果您在阅读本教程时遇到困难,可以  ...

  3. JIRA开启时间追踪并为问题记录工作日志

    在升级版的JIRA中(4.2or4.3),我们可以使用其记录工作日志的功能.之前研究了很长时间,就是找不到初始预估时间在哪里设置,但是剩余工作时间与耗费时间都可以填写.根据官网的帮助文档也没找到合适的 ...

  4. MongoDB(一)环境搭建与初始配置

    前言 最近的项目中需要用到MongoDB,所这段时间需要学习知道怎么去使用这个数据库. 这里我先简单的介绍一下什么是MongoDB,后面还会详细的介绍: MongoDB 是一个面向文档的通用型数据库, ...

  5. Codeforces Round #300(Div. 2)-538A.str.substr 538B.不会 538C.不会 。。。

    A. Cutting Banner time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  6. HDU--1060

    Leftmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  7. [学习OpenCV攻略][006][平滑图片]

    cvCreateImage(图片大小,像素位数,通道数) 创建图片,根据输入的图片大小,各个通道像素点的位数,和通道数.像素点宏IPL_DEPTH_8U cvGetSize(图片) 得到图片的大小信息 ...

  8. 短时间内多个请求状态更新,导致react 不能及时响应问题总结

    个人总结 这段时间项目中遇到这样一个问题,旧项目中增加了一个聊天对话的模块,这是其他同学负责的部分,因为要有消息提醒,所以做了个轮询.消息提示因为是页头部分,所以每个模块都会引用到.这是背景. 现象 ...

  9. Redis 数据结构与内存管理策略(下)

    Redis 数据结构与内存管理策略(下) 标签: Redis Redis数据结构 Redis内存管理策略 Redis数据类型 Redis类型映射 Redis 数据类型特点与使用场景 String.Li ...

  10. 搭建mybatis时的小问题

    1.源文件中的xml文件经过编译后没有打包到classes中去,在源文件包中写的mapper文件运行时找不到. 解决办法: pom文件build下添加编译时加入xml和resource文件下的所有文件 ...