方法

9.1方法概述

方法就是用来完成解决某件事情或实现某个功能的办法

可以通过在程序代码中引用方法名称和所需的参数,实现在该程序中执行(或称调用)该方法。方法,一般都有一个返回值,用来作为事情的处理结果。

9.2方法的语法格式

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,......){

执行语句

………

return 返回值;

}

l  修饰符:方法的修饰符比较多,有对访问权限进行限定的,有静态修饰符static,还有最终修饰符final等,这些修饰符在后面的学习过程中会逐步介绍public

l  返回值类型:用于限定方法返回值的数据类型void

l  参数类型:用于限定调用方法时传入参数的数据类型

l  参数名:是一个变量,用于接收调用方法时传入的数据

l  return关键字:用于结束方法以及返回方法指定类型的值

l  返回值:被return语句返回的值,该值会返回给调用者

public class MethodDemo01 {

public static void main(String[] args) {

int area = getArea(3, 5); // 调用 getArea方法

System.out.println(" The area is " + area);

}

// 下面定义了一个求矩形面积的方法,接收两个参数,其中x为高,y为宽

public static int getArea(int x, int y) {

int temp = x * y; // 使用变量temp记住运算结果

return temp; // 将变量temp的值返回

}

}

运行结果:

9.3方法的重载

Java允许在一个类中定义多个名称相同的方法,但是参数的类型或个数或者顺序必须不同,这就是方法的重载。

public class MethodDemo02 {

public static void main(String[] args) {

// 下面是针对求和方法的调用

int sum1 = add01(1, 2);

int sum2 = add02(1, 2, 3);

double sum3 = add03(1.2, 2.3);

// 下面的代码是打印求和的结果

System.out.println("sum1=" + sum1);

System.out.println("sum2=" + sum2);

System.out.println("sum3=" + sum3);

}

// 下面的方法实现了两个整数相加

public static int add01(int x, int y) {

return x + y;

}

// 下面的方法实现了三个整数相加

public static int add02(int x, int y, int z) {

return x + y + z;

}

// 下面的方法实现了两个小数相加

public static double add03(double x, double y) {

return x + y;

}

}

运行结果:

解释:

在main()方法中调用add()方法时,通过传入不同的参数便可以确定调用哪个重载的方法,如add(1,2)调用的是两个整数求和的方法。值得注意的是,方法的重载与返回值类型无关,它只有两个条件,一是方法名相同,二是参数个数或参数类型不相同。

9.4重载的注意事项

l  重载方法参数必须不同:

参数个数不同,如method(int x)与method(int x,int y)不同

参数类型不同,如method(int x)与method(double x)不同g

参数顺序不同,如method(int x,double y)与method(double x,int y)不同

l  重载只与方法名与参数类型相关与返回值无关

如void method(int x)与int method(int y)不是方法重载,不能同时存在

l  重载与具体的变量标识符无关

如method(int x)与method(int y)不是方法重载,不能同时存在

9.5参数传递

参数传递可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数,这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了。这种传递方式,我们称为参数传递

public class ArgumentsDemo01 {

public static void main(String[] args) {

int a=5;

int b=10;

change(a, b);//调用方法时,传入的数值称为实际参数

System.out.println("a=" + a);

System.out.println("b=" + b);

}

public static void change(int a, int b){//方法中指定的多个参数称为形式参数

a=200;

b=500;

}

}

运行结果:

运行过程:

public class ArgumentsDemo02 {

public static void main(String[] args) {

int[] arr = { 1, 2, 3 };

change(arr);// 调用方法时,传入的数值称为实际参数

for (int i = 0; i < arr.length; i++) {

System.out.println(arr[i]);

}

}

public static void change(int[] arr) {// 方法中指定的多个参数称为形式参数

for (int i = 0; i < arr.length; i++) {

arr[i] *= 2;

}

}

}

运行结果:

运行过程:

l  当调用方法时,如果传入的数值为基本数据类型(包含String类型),形式参数的改变对实际参数不影响

l  当调用方法时,如果传入的数值为引用数据类型(String类型除外),形式参数的改变对实际参数有影响

Java基础方法整理的更多相关文章

  1. Java基础-方法(method)的应用

    Java基础-方法(method)的应用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 方法就是定义在类中,具有特定功能的一段小程序,方法也称为函数(function),方法可以接 ...

  2. Java基础 随笔整理

    Java基础随笔整理 为了方便阅读,特整理了相关的学习笔记 Java感想 操千曲而后晓声 Java入门 Java其他 Java虚拟机详解 语言入门百题 Java开发工具 · Eclipse Java语 ...

  3. Java基础——方法的调用

    Java基础--方法的调用     总结: 1. 在同一个类中-- 对于静态方法,其他的静态和非静态方法都可以直接通过"方法名"或者"类名.方法名"调用它. 对 ...

  4. 《Java基础——方法的调用》

    Java基础--方法的调用     总结: 1. 在同一个类中-- 对于静态方法,其它的静态和非静态方法都可以直接通过"方法名"或者"类名.方法名"调用它. 对 ...

  5. Java基础进阶整理

    Java学习笔记整理 本文档是我个人整理的,首先是想通过完成本文档更加扎实自己的基础加强对java语言的理解,然后就是想给入了门的同志们做下贡献. 当然,本文档主要是对java语言基础(当然还有很多基 ...

  6. java基础概念整理综合 及补充(jdk1.8)

    2018 java基础 笔记回顾摘要 一 1,html 与 注释: <!--   -->  注释不能嵌套 代码都得有注释. 2,空格符:   3,css选择的优先级: id选择器 > ...

  7. java基础知识整理

    java基础入门知识(转载请注明出处.) 1.JVM.JRE和JDK的区别. (1)JVM(Java Virtual Machine):java虚拟机,用于保证java跨平台的特性,java语言是跨平 ...

  8. JAVA基础--重新整理(1)后版

    比较喜欢用demo来讲解. 变量: public static void main(String[] args) { int age;//变量声明 age = 16;//变量的初始化,第一次赋值 ag ...

  9. Java基础-方法重载和方法重写的区别

    什么是java方法重载 (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2)  ...

随机推荐

  1. codeforces433B

    Kuriyama Mirai's Stones CodeForces - 433B 有n颗宝石,每个宝石都有自己的价值. 然后m次询问.问区间[i,j]的宝石的总值,或者问排序后的区间[i,j]的总值 ...

  2. 如何创建djiago项目和djiago连接数据库

    介绍 主要介绍在python中如何使用pycharm创建djiago项目以及如何将djiago项目和mysal数据库连接起来 创建djiago项目 1.使用pycharm创建djiao项目 点击pyc ...

  3. jdk6使用WebSocket

    pom.xml <dependency> <groupId>org.java-websocket</groupId> <artifactId>Java- ...

  4. JS获取宽度高度大集合

    网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...

  5. 51Nod 1344 走格子

    参考自:https://www.cnblogs.com/ECJTUACM-873284962/p/6445381.html 1344 走格子 基准时间限制:1 秒 空间限制:131072 KB 分值: ...

  6. Educational Codeforces Round 33 (Rated for Div. 2) F. Subtree Minimum Query(主席树合并)

    题意 给定一棵 \(n\) 个点的带点权树,以 \(1\) 为根, \(m\) 次询问,每次询问给出两个值 \(p, k\) ,求以下值: \(p\) 的子树中距离 \(p \le k\) 的所有点权 ...

  7. 【WC2018】即时战略(动态点分治,替罪羊树)

    [WC2018]即时战略(动态点分治,替罪羊树) 题面 UOJ 题解 其实这题我也不知道应该怎么确定他到底用了啥.只是想法很类似就写上了QwQ. 首先链的部分都告诉你要特殊处理那就没有办法只能特殊处理 ...

  8. Vue中的slot内容分发

    ①概述: 简单来说,假如父组件需要在子组件内放一些DOM,那么这些DOM是显示.不显示.在哪个地方显示.如何显示,就是slot分发负责的活. ②默认情况下 父组件在子组件内套的内容,是不显示的. 例如 ...

  9. MYSQL timestamp NOT NULL插入NULL的报错问题

    1. 在开发两个数据库数据同步功能的时候,需要在本地搭建一个本地的数据库作为一个本地库,然后用于同步开发库中的数据.在插入的时候出现了一个问题. 问题描述: 我们每张表中都会存在一个create_ti ...

  10. webpack入门(五)webpack CLI

    webpack的CLI安装和命令 Installation $ npm install webpack -g The webpack command is now available globally ...