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. 解决maven依赖冲突问题

    解决maven依赖冲突问题 1.idea 安装maven helper插件 2.打开pom.xml文件 底部多出一个Dependency Analyzer选项 点开这个选项 找到冲突,点击右键,选择E ...

  2. NVIDIA TensorRT高性能深度学习推理

    NVIDIA TensorRT高性能深度学习推理 NVIDIA TensorRT 是用于高性能深度学习推理的 SDK.此 SDK 包含深度学习推理优化器和运行时环境,可为深度学习推理应用提供低延迟和高 ...

  3. DHCP的原理与配置

    DHCP 动态主机配置协议(Dynamic Host Configuration Protocol) 可以减少管理员的工作量 避免用户手工配置网络参数时造成的地址冲突 DHCP报文类型: 报文类型   ...

  4. c语言经典算法---计算Fibonacci数列

    算法是一个程序和软件的灵魂,作为一名优秀的程序员,只有对一些基础的算法有着全面的掌握,才会在设计程序和编写代码的过程中显得得心应手.下面我就分享一个C语言中比较基础却极为重要的一个算法----计算Fi ...

  5. 【NX二次开发】Block UI 双精度表

    属性说明 常规         类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical ...

  6. .NET Core/.NET5/.NET6 开源项目汇总2:任务调度组件

    系列目录     [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...

  7. Sublime Text 4 破解笔记

    Sublime Text 4 破解笔记 偶然看到Sublime已经更新到版本4了,多了许多很nice的新特性,例如: 船新 UI 感知上下文的自动补全 支持 TypeScript, JSX 和 TSX ...

  8. 微信sdk上传图片大小1k,损坏的问题以及微信上传图片需要的配置

    微信公众号的appid和appsecret有问题,会导致上传图片大小为1k这个问题 微信上传图片需要设置公众号的'JS接口安全域名'

  9. 01-Tkinter教程-窗口的管理与设置

    Tkinter介绍 官方用的GUI工具包--Tkinter(IDLE就是用这个开发的). Tkinter是Python的标准GUI库,它实际是建立在Tk技术上的.在大多数Unix平台以及Windows ...

  10. ECMAScript 2021 正式确认

    ECMAScript 2021 主要包含内容: ECMAScript 2021 于2021年6月22日获得 ECMA International 的批准.ECMAScript 是标准化的 JavaSc ...