Java基础00-方法10
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的更多相关文章
- Java基础02 方法与数据成员
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在Java基础01 从HelloWorld到面向对象,我们初步了解了对象(obje ...
- Java基础——clone()方法浅析
一.clone的概念 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ...
- Java基础(00)
Java发展史 Java之父:詹姆斯.高斯林(James Gosling). SUN(Stanford University Network 斯坦福大学网络公司)产物. 1995年5月23日,java ...
- Java基础02 方法与数据成员(转载)
对象中的数据成员表示对象的状态.对象可以执行方法,表示特定的动作. 此外,我们还了解了类(class).同一类的对象属于相同的类型(type).我们可以定义类,并使用该定义来产生对象. 调用同一对 ...
- java基础(6):方法
1. 方法 1.1 方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情(坐车到学校这件事情)需要解决,解决办法呢?可 ...
- Java基础之方法详解
方法的所属性 在Java的语言中,方法相当于C语言中的函数,但是它与传统的函数也有着明确的不同:在结构化的语言中,函数是一等公民,整个程序是由一个个函数组成的:但是在面向对象的语言里,类是一等公民,整 ...
- 关于java基础_方法的简单习题
package day05; import java.util.Arrays; /** * 方法作业 * @author ASUS * */ public class Demo6 { /* * 1.定 ...
- 【java基础】方法2
让形参可变的方法 jdk1.5之后,java允许定义形参长度可变的参数,允许为方法指定数量不确定的形参. package object; public class VariableParam { // ...
- [ 转载 ] Java基础13--equals方法
一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class TestEquals { 4 public s ...
- java基础—equals方法
一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class TestEquals { 4 public s ...
随机推荐
- ResNet网络的训练和预测
ResNet网络的训练和预测 简介 Introduction 图像分类与CNN 图像分类 是指将图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法,是计算机视觉中其他任务,比如目标检测 ...
- 三维视觉惯性SLAM的有效Schmidt-EKF
三维视觉惯性SLAM的有效Schmidt-EKF An Efficient Schmidt-EKF for 3D Visual-Inertial SLAM 论文地址: http://openaccess ...
- 3D-LiDAR
3D-LiDAR 结合光学+激光扫描+数据处理技术,实现对人和物体的无盲点检测. 利用专有光学技术实现高精度,高分辨率三维扫描. 到目前为止,传感器只能准确地检测出物体的存在,而且很难感知目标的大小和 ...
- TensorRT 数据和表格示例
TensorRT 数据和表格示例 TensorRT 7.1在绑定索引方面比其前身更加严格.以前,允许错误配置文件的绑定索引.考虑一个网络,该网络具有四个输入,一个输出,以及在其中的三个优化配置文件 I ...
- Spring Cloud系列(七):消息总线
在上一篇中,当一个配置中心的客户端启动之后,它所引用的值就无法改变了,但是Spring Cloud 提供了一种手段去解决了这个问题--Spring Cloud Bus. 一.Spring Cloud ...
- MySQL的Limit 性能差?真的不能再用了?
首先说明一下MySQL的版本: mysql> select version();+-----------+| version() |+-----------+| 5.7.17 |+------- ...
- 一次SQL查询优化原理分析(900W+数据,从17s到300ms)
有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: ...
- 『心善渊』Selenium3.0基础 — 14、Selenium对单选和多选按钮的操作
目录 1.页面中的单选按钮和多选按钮 2.判断按钮是否选中is_selected() 3.单选按钮的操作 4.多选按钮的操作 5.选择部分多选按钮的操作 1.页面中的单选按钮和多选按钮 页面中的单选按 ...
- 去除office自动生成目录后生成的小框框(内容控件,目录控件)
如何自动生成目录在这里就不进行阐述了,想必能看到这这里的人已经完成了目录的自动生成,那我就来直接演示如何去除自动生成目录后烦人的目录内容控件吧 直接上图片
- 对volatile的理解--从JMM以及单例模式剖析
请谈谈你对volatile的理解 1.volitale是Java虚拟机提供的一种轻量级的同步机制 三大特性1.1保证可见性 1.2不保证原子性 1.3禁止指令重排 首先保证可见性 1.1 可见性 概念 ...