1. 方法概述

1.1 什么是方法

将好几串代码组成一个整体,这个整体就是方法。

2. 方法的定义和调用

2.1 方法定义

2.2 方法的调用

方法名()就可以调用方法

代码示例:
必须在main方法中调用方法,因为main是方法的入口。

运行结果:

2.3 方法调用过程

先从main方法开始,找到方法后再调用方法。

执行完第6步方法后,这个方法就算结束了,消失了,然后再执行方法后面的代码,如果没有就结束运行。

2.4 方法练习

3. 带参数方法的定义和调用

3.1 带参数方法定义

3.2 带参数的方法调用

3.3 形参和实参

形参:方法定义中未被赋值的参数。
实参:方法调用中赋值给形参的参数。

代码示例:

运行结果:

3.4 带参数方法练习

4. 带返回值方法的定义和调用

4.1 带返回值方法的定义

4.2 带返回值方法的调用

代码示例:

4.3 带返回值方法练习

5. 方法的注意事项

5.1 方法注意事项

如果想return返回值,方法中就必须添加数据类型。

5.2 方法的通用格式

6. 方法重载

6.1 方法重载概述

6.2 方法重载特点

方法名相同,参数不同,与返回值无关

代码示例:

运行结果:

注意:
方法重载与返回值无关
在调用的时候,Java虚拟机会通过参数的不同来区分同名的方法

6.3 方法重载练习

7. 方法重载的传递

7.1 方法重载传递(基本类型)

对于基本数据类型的参数,形式参数的改变,不会影响实际参数的值。

先运行main方法,栈内存中存放main方法。

运行 int number = 100; 栈内存中存放。

输出number的值,100;

调用change方法,也会被方法栈内存;

进入number方法,方法中有一个形参int number,栈内存中也会存放一个,新参的值由main方法中的number赋值,所以他也是100。

在进入change方法中,将change的新参number修改为200.

但是main方法中的number还是100,所以,对于基本数据类型的参数,形式参数的改变,不影响实际参数的值

第二次输出还是100.

7.2 方法参数传递(引用类型)

对于引用类型的参数,形式参数的改变,会影响实际参数的值。

我们来看看内存执行流程。
方法从main方法开始执行,存入栈内存。

执行int [ ] arr = {10,20,30}; ,左边放入栈内存,右边放入堆内存
因为,数组还有一种写法是,int [ ] arr = new int [] {10,20,30};,所以 数组为自己new了一块空间存放值。

输出arr[1] 的值,20

然后调用change方法,放入栈内存

运行change方法,将形参int [] arr放入栈内存,将实参arr(arr的内存地址为001)放入新参,

进入change方法,将形参arr[1]的值修改为200(因为main方法和change方法共用一个堆内存地址,所以是可以修改值的)

所以,对于引用类型的参数,形式参数的改变,影响实际参数的值。

7.3 案例

  • 数组遍历

 public static void main(String[] args) {
int arrays[] = {10,3,34,26,57};
getArray(arrays);
} public static void getArray(int arr[]){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
}
  • 获取数据最大值

public static void main(String[] args) {
int arrays[] = {10,3,34,26,57};
int maxNum = getMax(arrays);
System.out.println(maxNum);
} public static int getMax(int[] num){
int max = num[0];
for (int i = 1; i < num.length; i++) {
if(max<num[i]){
max = num[i];
}
}
return max;
}

Java基础00-方法10的更多相关文章

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

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

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

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

  3. Java基础(00)

    Java发展史 Java之父:詹姆斯.高斯林(James Gosling). SUN(Stanford University Network 斯坦福大学网络公司)产物. 1995年5月23日,java ...

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

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

  5. java基础(6):方法

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

  6. Java基础之方法详解

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

  7. 关于java基础_方法的简单习题

    package day05; import java.util.Arrays; /** * 方法作业 * @author ASUS * */ public class Demo6 { /* * 1.定 ...

  8. 【java基础】方法2

    让形参可变的方法 jdk1.5之后,java允许定义形参长度可变的参数,允许为方法指定数量不确定的形参. package object; public class VariableParam { // ...

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

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

  10. java基础—equals方法

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

随机推荐

  1. ARMed解决方案对DSP的战争

    ARMed解决方案对DSP的战争 ARM体系结构简化了数字信号处理 ARM与数字信号处理(DSP)有什么关系? ARM似乎在处理领域处于领先地位.该处理器已将其视为其最大的细分市场之一,这主要是由于该 ...

  2. Nucleus 实时操作系统中断(上)

    Nucleus 实时操作系统中断(上) Interrupts in the Nucleus SE RTOS 所有现代微处理器和微控制器都有某种中断设施.这种能力对于提供许多应用程序所需的响应能力是必不 ...

  3. JAVA复习题(一)基础知识

    类的构造方法描述正确的是( )A. 类中的构造方法不能省略B. 构造方法必须与类同名,但方法不能与class同名C. 构造方法在一个对象被new时执行D. 一个类只能有一个构造方法我的答案:C正确答案 ...

  4. 04-拉格朗日对偶问题和KKT条件

    04-拉格朗日对偶问题和KKT条件 目录 一.拉格朗日对偶函数 二.拉格朗日对偶问题 三.强弱对偶的几何解释 四.鞍点解释 4.1 鞍点的基础定义 4.2 极大极小不等式和鞍点性质 五.最优性条件与 ...

  5. 带你了解Java的序列化与反序列化

    什么是序列化 序列化:将 Java 对象转换成字节流的过程. 什么是反序列化 反序列化:将字节流转换成 Java 对象的过程. 序列化的实现 当 Java 对象需要在网络上传输 或者 持久化存储到文件 ...

  6. 【Linux进阶】使用grep、find、sed以及awk进行文本操作

    目录 一.元字符 二.grep命令 1. 过滤出包含某字符串的行 2. 过滤出以某字符串开头(结尾)的行 3. 过滤出包含某字符串及其相邻的行 4. 过滤出不包含某关键字的行 5. 过滤出包含多个字符 ...

  7. 题解 P3605 [USACO17JAN]Promotion Counting P

    分块\(yyds\) ----关于线段树合并的题我用分块过掉这件事 题目传送门 先说正解 正解当然是线段树合并等一类做法了 至于解析...出门右转题解区第一篇 (就是他让我看不懂,然后用分块打的\(Q ...

  8. NOIP模拟测试29「爬山·学数数·七十和十七」

    爬山题解不想写了 学数数 离散化然后找到以每一个值为最大值的连续子段有多少个,然后开个桶维护 那么怎么找以每一个值为最大值的连续子段个数 方法1(我的极笨的方法) 考试时我的丑陋思路, 定义极左值为左 ...

  9. Python进程和线程实例详解

    前言 进程是什么? 进程就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成.我们编写的程序用来描述进程要完成哪些功能以及如何完成:数据集则是程序在执行过程中所需 ...

  10. 电容三点式振荡电路详解及Multisim实例仿真

    电容三点式振荡器也称考毕兹(Colpitts,也叫科耳皮兹)振荡器,是三极管自激LC振荡器的一种,因振荡回路中两个串联电容的三个端分别与三极管的三个极相接而得名,适合于高频振荡输出的电路形式之一.电容 ...