4.1方法简介

方法是语句的集合,他们在一起执行一个功能:

  1、方法是解决一类问题的步骤的有序组合(功能块

  2、方法包含于类与对象中

  3、方法在程序中创建,在其它地方引用

  4、原子性:单一职能原则(一个方法只完成一个功能,方便后期扩展)

方法定义:

  1、方法包括一个方法头和一个方法体

  2、修饰符:可选,告诉编译器如何调用该方法,定义了该方法的访问类型

  3、返回值类型:方法会有返回值除了(void)方法没有返回值

  4、方法名:方法的实际名称,在main函数中调用使用的名称;方法名包含参数列表(可为空)

  5、参数类型:可选;方法调用需要传值给参数(实参)

    形参(形式参数):接收外界输入的数据

    实参(实际参数):实际传递给方法的数据

  6、方法体:包含的具体功能语句;组成一个完整的功能

 修饰符 返回值类型   方法名(参数类型 参数名){
  。。。
  方法体
  。。。
  return 返回值;
 }
 package com.hch.method;
 ​
 public class Demo01_method {
     //主方法main
     public static void main(String[] args) {
         System.out.println(add(1,5));
         
    }
 ​
     //加法方法
     public static int add(int a , int b){
         return a+b;
    }
 }
 /*
 -接收返回值类型:函数调用了表达式最终代表了所返回的结果
 -返回值类型:定义时就约定了返回值的结果类型
 -返回值:接在return关键字后面
 PS:**注意:return在方法中除了返回值的意义还有终止方法的作用**
 */

方法调用:

  调用方法: 对象名.方法名(实参列表)

  Java支持两种调用方法的方式,根据方法是否返回值来选择

4.2方法的重载

  重载就是在一个类中,有相同的函数名称,但是形参不同的函数

方法重载的规则:

  1、方法名称必须相同

  2、参数列表必须不同(参数个数、参数类型、参数排列顺序)

  3、方法的返回类型可以相同也可以不同

  4、仅仅返回类型不同不足以成为方法的重载

 package com.hch.method;
 ​
 public class Demo01_method {
     //主方法main
     public static void main(String[] args) {
         System.out.println(add(1,5));
 ​
    }
     //加法方法
     public static int add(int a , int b){
         return a+b;
    }
     /**
      * 方法重载
      * 方法名称必须相同,参数列表必须不同
      * */
     //1、参数类型不同
     public static double add(double a ,double b){
         return a+b;
    }
     //2、参数个数
     public static int add(int a,int b,int c){
         return a+b+c;
    }
     //3、参数排列顺序
     public static double add(double b,double a,double c){
         return b-a-c;
    }
 }
 ​

this关键字:

  类是一种模板可服务于此类的所有对象;

  this是类中的默认引用,代替当前实例,当类服务于某个对象时,this则指向这个对象

用法:

 1、调用实例属性、实例方法:this.name; this.sayHi();
 2、调用本类中其它构造方法,如:this()、this(实参列表);

4.3可变参数

JDK1.5开始,Java支持传递同类型的可变参数给一个方法

在方法声明中,在指定参数类型后加一个省略号(...):用于接收变长的参数值

一个方法中只能指定一个可变参数,它必须是方法的可变参数。

 package com.hch.method;
 ​
 public class Demo02_method {
     public static void main(String[] args) {
         Demo02_method d = new Demo02_method();
         d.test(1,2,6);
    }
 ​
 //   public void method(){}
 //   public void method(int a){}
 //   public void method(int a,int b){}
 //   public void method(int i,double b){}
     public void test(int ...i){
         System.out.println(i[0]);
         System.out.println(i[1]);
         System.out.println(i[2]);
    }
 }
 ​

4.4递归

  递归就是:A方法调用A方法;即自己调用自己。

递归包括两个部分:

  递归头:什么时候不调用自身方法(什么时候停止递归,否则造成死循环)

  递归体:什么时候需要调用自身方法

 package com.hch.method;
 ​
 public class Demo03_method {
     public static void main(String[] args) {
         Demo03_method d = new Demo03_method();
         System.out.println(d.f(3));
    }
 ​
     //阶乘的表示
     public static int f(int i){
         if (i==1){
             return 1;
        }else{
             return i*f(i-1);
        }
    }
 }
 ​ 

4.5返回值与返回值类型

 定义语法:
  public static 返回值类型(基本类型、引用类型、void) 函数名称(形参表){
  //函数主体
  return value; //返回值(按需求返回一个结果,一个函数只能有一个return语句)
  }
 ​
 调用语法:
  变量 = 函数名称()
 ​
 注意:
  *接收返回值:函数调用的表达式最终即代表了所返回的结果。
  *返回值类型:定义时,即约定了返回的结果类型
  *返回值:与返回值类型匹配的具体结果,在return关键字后面追加具体的值
 ​

return关键字

  -应用在具体返回值类型的函数中;return value; //表示结束当前函数,并返回返回值到函数调用处

  -应用在没有返回值类型(void)函数中;return; //表示结束当前函数,直接返回到函数调用处

Java方法(函数)的更多相关文章

  1. java 方法(函数)

    所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块. 一般情况下,定义一个方法的语法是: 其中: 1. 访问修饰符:方法允许被访问的权限范围, 可以是 public.protected.p ...

  2. Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针

    Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针   1.1. java方法引用(Method References) 与c#委托与脚本语言js ...

  3. Java虚拟机性能管理神器 - VisualVM(8) 查找JAVA应用程序耗时的方法函数【转】

    Java虚拟机性能管理神器 - VisualVM(8) 查找JAVA应用程序耗时的方法函数[转] 标签: javajvm监控工具性能优化 2015-04-07 16:47 1846人阅读 评论(0)  ...

  4. 蓝桥杯 算法提高 11-1实现strcmp函数 (JAVA方法)

    蓝桥杯 算法提高 11-1实现strcmp函数 (JAVA方法) 首先这不是一个多难的题,但是网上的我没怎么找到有Java的代码,基本全都是c语言的,小编是个小白,如果有不对的地方请联系小编 问题描述 ...

  5. C++调用JAVA方法详解

    C++调用JAVA方法详解          博客分类: 本文主要参考http://tech.ccidnet.com/art/1081/20050413/237901_1.html 上的文章. C++ ...

  6. JNI中C调用Java方法

    背景需求 我们需要在JNI的C代码调用Java代码.实现原理:使用JNI提供的反射借口来反射得到Java方法,进行调用. JNI关键方法讲解. 1. 在同一个类中,调用其他方法 JNIEXPORT v ...

  7. HAL中通过JNI调用java方法【转】

    转载请注明本文出处:http://www.cnblogs.com/xl19862005 作者:Xandy 由于工作的需要,最近一直在研究HAL.JNI.Java方法之间互调的问题,并做了如下一些记录和 ...

  8. hive 调用java的函数和科学记数法转换

    hive中field如果是string,比如id,那么使用10000000000+id结果是科学计数法显示,转换为正常显示方法: select (10000000000+cast(id as int) ...

  9. [Java]_函数传参的疑惑与思考

    问题来源于leetcode上的两道题 Path Sum I && II,分别写了两个dfs. void dfs(TreeNode node , int sum , ArrayList& ...

  10. Java 回调函数

    下面使用java回调函数来实现一个测试函数运行时间的工具类: 如果我们要测试一个类的方法的执行时间,通常我们会这样做: public class TestObject { /** * 一个用来被测试的 ...

随机推荐

  1. 入门大数据---Kafka的搭建与应用

    前言 上一章介绍了Kafka是什么,这章就讲讲怎么搭建以及如何使用. 快速开始 Step 1:Download the code Download the 2.4.1 release and un-t ...

  2. LeetCode54. 螺旋矩阵

    题意是,输入一个二维数组,从数组左上角开始,沿着顺时针慢慢地"遍历"每一个元素且每一个元素只遍历一次, 在一个新的一维数组中记录遍历的顺序,最终的返回值就是这个数组. 思路:可以考 ...

  3. Angular2-------Error: Unexpected value ‘undefined’ declared by the module ‘模块名

    请检查[app.module.ts]文件中的[declarations]模块最后是否多了一个逗号 (完)

  4. Web前端开发未来的六大趋势

    说起Web前端开发想必你一定不会陌生,因为现在的前端开发学习的培训机构也是层出不穷.下面济南优就业IT培训给大家总结出了未来Web前端开发的六大趋势从中可以大致看出来Web前端未来的发展前景. 趋势一 ...

  5. 每日一题 - 剑指 Offer 35. 复杂链表的复制

    题目信息 时间: 2019-06-28 题目链接:Leetcode tag: 链表 难易程度:中等 题目描述: 请实现 copyRandomList 函数,复制一个复杂链表.在复杂链表中,每个节点除了 ...

  6. html通过css,js实现div悬浮效果总汇,如原生JS实现滚动到一定位置实现div悬浮

    在我们的实际开发中,经常会遇到页面中需要悬浮效果,比如最早的客服联系,对联悬浮广告等,今天为大家介绍一些如何实现div悬浮的效果. 传统的fixed实现: 通过css中的属性position参数设为f ...

  7. Github和Azure DevOps的代码同步

    [前言]Github和Azure DevOps都提供了Git代码库功能,那么有没有办法将两边的代码库进行同步呢,答案是肯定的.这里的操作我都是用Azure DevOps的Pipelines功能来完成的 ...

  8. include文件包含漏洞

    发现allow_url_include 是on状态 既然已经直接包含了phpinfo()是文件,首先搜索了一下allow_url_include,发现是处于打开的状态. 既然 allow_url_in ...

  9. 攻防世界-Web-ics-05

    根据题目提示直接进入设备维护中心 点击云平台设备维护中心发现page=index LFI漏洞的黑盒判断方法: 单纯的从URL判断的话,URL中path.dir.file.pag.page.archiv ...

  10. 数据可视化之powerBI技巧(二十四)Power BI初学者刚见的错误,帮你轻松处理

    在学习PowerBI的过程中,尤其是刚接触的时候,不可避免的会遇到各种各样的错误,有时自己怎么检查都没法消除,不解决这个错误又没法进行下一步的工作,经常会搞的自己烦闷无比,不过最后通过自己的苦苦摸索. ...