方法的基本概念

方法的主要功能是封装可以执行的一段代码,这样不仅可以进行重复调用,更可以方便的实现代码的维护,而本次使用的方法定义语法如下所示。

  1. public static 返回值类型 方法名称(参数类型 参数变量, ...) {
  2. 方法体(本方法要执行的若干操作) ;
  3. [return [返回值] ;]
  4. }

在本定义格式之中,发现方法有一个返回值类型,指的是这个方法返回结果,对于此类的类型可以有两种:

直接设置Java中的数据类型(基本数据类型、引用数据类型),

  • 如果方法设置了返回值,那么必须使用return语句返回与之数据类型对应的数据;
  • 方法没有返回值:void,可以不使用return返回内容,但是可以使用return结束方法调用。
定义一个没有参数没有返回值的方法
  1. public class TestDemo {
  2. public static void main(String args[]) {
  3. printInfo(); // 直接调用方法
  4. printInfo(); // 直接调用方法
  5. }
  6. /**
  7. * 信息输出操作
  8. */
  9. public static void printInfo() { // 定义没有参数,没有返回值的方法
  10. System.out.println("*********************");
  11. System.out.println("* www.yootk.com *");
  12. System.out.println("*********************");
  13. }
  14. }
  15. 程序执行结果:
  16. *********************
  17. * www.yootk.com *
  18. *********************
  19. *********************
  20. * www.yootk.com *
  21. *********************
定义一个有参数无返回值的方法

  1. public class TestDemo {
  2. public static void main(String args[]) {
  3. pay(10.0); // 调用方法
  4. pay(-10.0); // 调用方法
  5. }
  6. /**
  7. * 定义一个支付的操作方法,如果支付金额大于0则正常支付,否则会输出错误提示信息
  8. * @param money 要支付的金额
  9. */
  10. public static void pay(double money) { // 购买支付操作
  11. if (money > 0.0) { // 现在已经给钱
  12. System.out.println("可以进行支付!");
  13. } else { // 不能够支付
  14. System.out.println("你穷疯了,没钱还买东西!");
  15. }
  16. }
  17. }
  18. 程序执行结果: 可以进行支付!(“pay(10.0)”调用执行)
  19. 你穷疯了,没钱还买东西!(“pay(-10.0)”调用执行)
定义有返回值有参数的方法
  1. public class TestDemo {
  2. public static void main(String args[]) {
  3. int result = add(10, 20); // 方法的返回值可以进行接收
  4. System.out.println("计算结果:" + result);
  5. System.out.println("计算结果:" + add(50, 60)); // 也可以直接将方法返回值进行输出
  6. }
  7. /**
  8. * 实现数据的加法操作
  9. * @param x 操作数字一
  10. * @param y 操作数字二
  11. * @return 返回两个数字的加法计算结果
  12. */
  13. public static int add(int x, int y) { // 有参数有返回值的方法
  14. return x + y; // 返回加法计算结果
  15. }
  16. }
  17. 程序执行结果:
  18. 计算结果:30
  19. 计算结果:110
利用return结束方法调用

如果在方法中执行return语句,那么就表示其之后的代码不再执行而直接结束方法调用,如果此时方法有返回值声明,那么必须返回相应类型的数据,如果没有返回值声明,则可以直接编写return。而此类操作一般都会结合分支判断一起使用。

  1. public class TestDemo {
  2. public static void main(String args[]) {
  3. set(100); // 正常执行输出
  4. set(3); // 满足方法判断条件,会中断输出操作
  5. set(10); // 正常执行输出
  6. }
  7. /**
  8. * 定义一个设置数据的操作方法,如果该数据为3将无法设置
  9. * @param x 要设置的数据内容
  10. */
  11. public static void set(int x) { // 方法声明为void
  12. if (x == 3) { // 判断语句
  13. return; // 方法后面的内容不执行了
  14. }
  15. System.out.println("x = " + x);
  16. }
  17. }
  18. 程序执行结果:
  19. x = 100
  20. x = 10

方法的重载

方法重载指的是方法名称相同,参数的类型或个数不同,调用的时候将会按照传递的参数类型和个数完成不同的方法体的执行。

如果说现在有一个方法名称,有可能要执行多项操作,例如:一个add()方法,它可能执行两个整数的相加,也可能执行三个整数的相加,或者可能执行两个小数的相加,那么在这样的情况,很明显,一个方法体肯定无法满足于要求,需要为add()方法定义多个不同的功能实现,所以此时就需要方法重载概念的支持。

观察方法重载
  1. public class TestDemo {
  2. public static void main(String args[]) {
  3. // 方法重载之后执行时会根据传入参数的类型或个数的不同调用不同的方法体
  4. System.out.println("两个整型参数:" + add(10, 20));
  5. System.out.println("三个整型参数:" + add(10, 20, 30));
  6. System.out.println("两个浮点型参数:" + add(10.2, 20.3));
  7. }
  8. public static int add(int x, int y) { // add()方法一共被重载三次
  9. return x + y;
  10. }
  11. public static int add(int x, int y, int z) { // 与之前的add()方法的参数个数不一样
  12. return x + y + z;
  13. }
  14. public static double add(double x, double y) { // 与之前的add()方法的参数类型不一样
  15. return x + y;
  16. }
  17. }

方法的递归调用

递归调用是一种特殊的调用形式,指的是方法自己调用自己的形式,但是在进行递归操作的时候必须满足如下的几个条件:

  • 必须有结束条件;
  • 每次调用的时候都需要改变传递的参数。
  1. public class TestDemo {
  2. public static void main(String args[]) {
  3. System.out.println(sum(100)); // 1 - 100累加
  4. }
  5. /**
  6. * 数据的累加操作,传入一个数据累加操作的最大值,而后每次进行数据的递减,将一直累加到计算数据为1
  7. * @param num 要进行累加的操作
  8. * @return 数据的累加结果
  9. */
  10. public static int sum(int num) { // 最大的内容
  11. if (num == 1) { // 递归的结束调用
  12. return 1; // 最终的结果返回了一个1
  13. }
  14. return num + sum(num - 1); // 递归调用
  15. }
  16. }
  17. 程序执行结果:
  18. 5050

Java基础_0206:方法的定义与使用的更多相关文章

  1. 【BigData】Java基础_方法的定义与使用

    1.概念 Java语言中的“方法”(Method)在其他语言当中也可能被称为“函数”(Function).对于一些复杂的代码逻辑,如果希望重复使用这些代码,并且做到“随时任意使用”,那么就可以将这些代 ...

  2. 2.Java基础:方法定义和调用

    一.方法的定义 1.类的方法代表的是实力的某种行为(或功能) 方法的定义:方法类型 . 方法签名 . 方法体 2.定义类的方法 访问修饰符 类型 方法名(参数列表){ ///方法体 } 3.把方法当作 ...

  3. Java基础02 方法与数据成员

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在Java基础01 从HelloWorld到面向对象,我们初步了解了对象(obje ...

  4. Java基础——clone()方法浅析

    一.clone的概念 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ...

  5. [ 转载 ] Java基础13--equals方法

    一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class TestEquals { 4 public s ...

  6. java基础(7)--方法

    方法 Math.sqrt() 取平方 Math.pow(2,3) 2的3次方 方法(Method),就是数学函数(Function). 业务方面: 是功能,是动作,一般采用动词命名. 数据层面:是利用 ...

  7. Java基础02 方法与数据成员(转载)

    对象中的数据成员表示对象的状态.对象可以执行方法,表示特定的动作. 此外,我们还了解了类(class).同一类的对象属于相同的类型(type).我们可以定义类,并使用该定义来产生对象.   调用同一对 ...

  8. java基础—equals方法

    一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class TestEquals { 4 public s ...

  9. java基础(6):方法

    1. 方法 1.1 方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情(坐车到学校这件事情)需要解决,解决办法呢?可 ...

  10. Java基础之方法详解

    方法的所属性 在Java的语言中,方法相当于C语言中的函数,但是它与传统的函数也有着明确的不同:在结构化的语言中,函数是一等公民,整个程序是由一个个函数组成的:但是在面向对象的语言里,类是一等公民,整 ...

随机推荐

  1. django2+uwsgi+nginx上线部署到服务器Ubuntu16.04(最新最详细版)

    1.前期准备 1.打开Terminal终端,执行以下命令,将项目所需要的依赖包,都记录到一个文件内备用. pip freeze >requirements.txt 2.将项目文件夹→右键→添加压 ...

  2. Redis在python中的使用

    一 简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted ...

  3. 2018最完整ITTO分节整理指导(PMP项目管理入门必备)

    2018年项目管理基础教材<PMBOK>指南进行了改版,之前的一些PMP资料没有太大帮助,反而会让大家记忆混淆,用最新的会好一些,今天小编就把搜集到的2018年项目管理最详细的ITTO的P ...

  4. MySQL填充字符串函数 LPAD(str,len,padstr),RPAD(str,len,padstr)

    转: MySQL填充字符串函数 LPAD(str,len,padstr),RPAD(str,len,padstr) LPAD(str,len,padstr) 用字符串 padstr对 str进行左边填 ...

  5. rewind()函数

    函数名: rewind功 能: 将文件指针重新指向一个流的开头用 法: int rewind(FILE *stream);程序例: #include <stdio.h>#include & ...

  6. Luogu2495[SDOI2011]消耗战

    题目描述 在一场战争中,战场由\(n\)岛屿和\(n-1\)个桥梁组成,保证每两个岛屿间有且仅有一条路径可达.现在,我军已经侦查到敌军的总部在编号为\(1\)的岛屿,而且他们已经没有足够多的能源维系战 ...

  7. (贪心) nyoj1036-非洲小孩

    题目描述: 家住非洲的小孩,都很黑.为什么呢?第一,他们地处热带,太阳辐射严重.第二,他们不经常洗澡.(常年缺水,怎么洗澡.)现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间有木 ...

  8. (叉乘求面积) nyoj1011-So Easy[II]

    1011-So Easy[II] 内存限制:64MB 时间限制:1000ms 特判: No通过数:2 提交数:4 难度:2 题目描述: 这是一道基础的计算几何问题(其实这不提示大家也都看的出).问题描 ...

  9. Linux如何修改和查询时区时间

    Linux如何修改和查询时区时间 我在日常工作中,最近遇到了在解压源码包的时候,提示时间比较旧,解压安装出现问题.原因是,租用的vps所在时区和自己所需要的时区不一致,于是在网上找了相关资料.并亲自实 ...

  10. 使用SSH命令行传输文件到远程服务器

    以前一直在windows下用SSH Secure Shell连接远程服务器,它自带了一个可视化的文件传输工具,跟ftp差不多 但是它也存在一个缺陷,不支持编码的选择,遇到utf8就自动乱码了,另外ma ...