方法的基本概念

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

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

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

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

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

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

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

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

方法的重载

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

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

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

方法的递归调用

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

  • 必须有结束条件;
  • 每次调用的时候都需要改变传递的参数。
public class TestDemo {
public static void main(String args[]) {
System.out.println(sum(100)); // 1 - 100累加
}
/**
* 数据的累加操作,传入一个数据累加操作的最大值,而后每次进行数据的递减,将一直累加到计算数据为1
* @param num 要进行累加的操作
* @return 数据的累加结果
*/
public static int sum(int num) { // 最大的内容
if (num == 1) { // 递归的结束调用
return 1; // 最终的结果返回了一个1
}
return num + sum(num - 1); // 递归调用
}
}
程序执行结果:
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. [bzoj1692][队列变换]

    题目链接 思路 首先肯定想到贪心,从队尾和队首取更小的那个. 但是如果遇到队尾和队首一样大的情况呢,总不能再挨个往前比较.所以就把整个字符串倒过来再挂到现在字符串的后面,也就是把当前字符串对称过去.然 ...

  2. java面试——问题回溯

    背景:用来记录面试过程中遇到的问题,在这里进行记录,下次不要犯同样的错误. 迪普科技 Linux服务器下的top命令 #动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / to ...

  3. python pip NameError:name 'pip' is not defined”

    https://www.jianshu.com/p/f57f98ebcb21 问题: 如果直接在命令行里面输入pip或者pip3,提示:(如图1) “NameError:name 'pip' is n ...

  4. JavaScript的函数声明与函数表达式的区别

    1)函数声明(Function Declaration); // 函数声明 function funDeclaration(type){ return type==="Declaration ...

  5. 2、编程工具IAR、烧写工具SmartRF的使用

        IAR可以生成hex文件,SmartRF烧写hex文件到CC2530单片机. [IAR] 主要步骤:创建workspace.新建工程Project.新建文件(C源件).C源件Add到Proje ...

  6. 114. Flatten Binary Tree to Linked List(M)

    . Flatten Binary Tree to Linked List Given a binary tree, flatten it to a linked list in-place. For ...

  7. 安装Redis 4.0单实例

    一.Redis简单介绍 转载于网络 Redis是一个开源(BSD许可)的内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件.由于Redis采用运行在内存中的数据集工作方式,其性能卓越,能支持 ...

  8. IDEA常用快捷键整理(Mac OS X版本)

    最近eclipse把我弄疯了!各种提示没有!烦,果断用了IDEA. 一.前提 IDEA版本:IntelliJ IDEA 15.0.3 Keymaps:Mac OS X 二.视图切换快捷键 1.cmd ...

  9. As 400错

    8:25 Gradle sync started 8:25 Gradle sync failed: Unable to tunnel through proxy. Proxy returns &quo ...

  10. 记录一次php连接mssql的配置

    记录一次php连接mssql的配置 在现有php环境中,php连接mssql数据库失败,tsql 连接正常. 确认问题在php环境上. 网上有个同仁总结的很好,https://blog.csdn.ne ...