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. 牛客网linux试题-错误整理-20171013

    创建对象时,对象的内存和指向对象的指针分别分配在:堆区,栈区 堆内存用来存放由new创建的对象和数组,在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在 ...

  2. clear命令新认识

    学习Linux的时候,最先学习的几个命令中有一个就是clear,中文翻译为:清屏. 以前的理解都是按照字面进行解读的,清除屏幕上多余的内容. 但是实际上真的如此么? 原来屏幕是: 运行clear命令: ...

  3. Zabbix Agent for Windows部署(五)

    一.环境介绍 二.软件准备 1.Zabbix官方下载地址:https://www.zabbix.com/download进入Zabbix pre-compiled agents项,下载相应版本 2.将 ...

  4. 全景图(panorama)低成本解决方案

    软硬件 米家全景相机,用于较低成本(学习成本+Money)的获得全景图像,而比较专业的获得全景图像的方法则是单反+云平台+PTGui的组合. PhotoShop,用于处理全景图像. PhotoShop ...

  5. [bzoj3955] [WF2013]Surely You Congest

    首先最短路长度不同的人肯定不会冲突. 对于最短路长度相同的人,跑个最大流就行了..当然只有一个人就不用跑了 看起来会T得很惨..但dinic在单位网络里是O(m*n^0.5)的... #include ...

  6. ACM讲座心得

  7. PL/SQL 实现行列转换

    这篇博文写的是简单的行列转换的,以一个具体的例子来给出. 以前在论坛上有人问过相关的问题,上面的回答五光十色,有很多是可行的,当然更多的是自以为很高端,实际却不着边际的回答.下面进入正题. part1 ...

  8. Centos7安装docker-compse踩过的坑

    一.概要 ​ 本文,我们介绍如何在centos7环境下安装docker-compose, 记录下安装过程步骤以及遇到的问题还有解决办法. 二.安装方式 1.官方安装方式 sudo curl -L ht ...

  9. CMD命令操作MySql数据库详解

    第一:mysql服务的启动和停止 1.  net stop mysql 2.  net start mysql 第二:登录 mysql –u用户名 [–h主机名或者IP地址] –p密码 例如:mysq ...

  10. Linux中安装opencv-3.3.1

    在ubuntu16.04中安装opencv3.3.1的过程中踩了许多坑.一开始直接安装还挺顺利但运行程序时总是提示libgtk2.0-dev和pkg-config没有安装,在安装这两个包的过程中也不顺 ...