Java基础语法之方法详细介绍【精】

Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。 阅读详情

Java基础语法

方法

方法概念

方法(Method)称为函数(Function)

方法 : 在程序中是一个可以完成某个功能的独立代码片段

  • 某个功能 : 只要可以实现的都是功能 (求和)
  • 独立代码 : 方法是在一个{} 实现的, 不同的方法之间是没有联系的

方法好处 : 可以将重复的代码抽取出来,方便我们反复应用.

方法定义

  • 定义格式

    修饰符 返回值类型 方法名(参数列表){
    	方法体,主体
    	return ;
    }
    
    • 修饰符 : 目前我们很多点没有讲解,现在就是固定用法 public static
    • 返回值类型 : 本质上是数据类型,方法是实现功能的代码,功能实现完毕后应该是有结果的,结果的数据类型
    • 方法名 : 标识符,自定义, 见名知意
    • 参数列表 : 方法要实现的功能中,是否会有未知的数据,就是参数列表
    • 方法体 : 写完成功能的代码

方法定义的练习

  • 要求 : 使用方法技术,实现两个整数的求和

        /*
    	 * 我们自己定义方法,实现需求   实现两个整数的求和
    	 * 2个分析 : 
    	 *   功能计算后的结果是什么,还是整数 返回值
    	 *   功能计算中是否存在未知的数据, 两个整数就是未知的
    	 *     写在方法的参数列表,  定义2个整数类型变量
    	 */
    	public static int sum(int a, int b) {
    		// 方法体 : 写完成功能的代码
    		return a + b;
    	}
    

方法的调用

什么是方法的调用 : 就是让我们写好的方法执行起来

如何调用方法 : call name 叫名字

传递方法的参数, 接收方法的返回值结果

public static void main(String[] args) {
		//调用写的方法 sum, 明确方法中的2个未知数
		int i = sum(5,6); // 11
		System.out.println(i);
	}
	/*
	 * 我们自己定义方法,实现需求   实现两个整数的求和
	 * 2个分析 : 
	 *   功能计算后的结果是什么,还是整数 返回值
	 *   功能计算中是否存在未知的数据, 两个整数就是未知的
	 *     写在方法的参数列表,  定义2个整数类型变量
	 */
	public static int sum(int a, int b) {
		// 方法体 : 写完成功能的代码
		return a + b;
	}

方法调用的内存图

方法的运行,是在方法栈运行.

方法的压栈和方法的弹栈,方法进入内存(栈)到达底部, 栈内存特点是先进去的后出来.

方法定义的注意事项 (匹配)

  • 方法不能定义在另一个方法中,写在类中
  • 方法的定义没有先后顺序的
  • 方法定义的返回值类型,必须和return后面的类型一致
  • 调用方法传递参数也要一致
  • 如果方法定义上,返回值是void, 你却返回了值

方法定义的练习

  • 定义方法 : 实现任意整数的乘法表

    public static void main(String[] args) {
    		//调用打印乘法表的方法
    		printChengFaBiao(7);
    	}
    	/*
    	 * 定义方法 : 实现任意整数的乘法表
    	 * 分析:
    	 *  返回值: 功能实现后,结果的数据类型, 没有返回结果  void
    	 *  方法参数: 实现功能的未知数, 任意整数
    	 *  
    	 *  方法的返回值没有,void 方法里面可以不写 return
    	 */
    	public static void printChengFaBiao(int num) {
    		//实现乘法表的功能
    		for(int i = 1 ; i <= num ; i++) {
    			for(int j = 1; j <= i ; j++) {
    				System.out.print(j+"*"+i+"="+j*i+"\t");
    			}
    			System.out.println();
    		}
    	}
    
  • 定义方法 : 实现任意数字的高斯算法 1+2+3…+100

public static void main(String[] args) {
		//调用打印乘法表的方法
		//printChengFaBiao(7);
		
		//调用高斯算法的方法
		int sum = getSum(200);
		System.out.println(sum);
	}
	/*
	 * 定义方法 : 实现任意数字的高斯算法 1+2+3...+100
	 * 分析:
	 *  返回值: 功能实现后,结果的数据类型, 结果是求和的数, 整数int
	 *  方法参数: 实现功能的未知数, 任意整数
	 */
	public static int getSum(int num) {
		//定义变量,保存求和的结果
		int sum = 0;
		for(int i = 1 ; i <= num ; i++) {
			sum = sum + i;
		}
		//计算的结果,返回
		return sum;
	}
	/*
	 * 定义方法 : 实现任意整数的乘法表
	 * 分析:
	 *  返回值: 功能实现后,结果的数据类型, 没有返回结果  void
	 *  方法参数: 实现功能的未知数, 任意整数
	 *  
	 *  方法的返回值没有,void 方法里面可以不写 return
	 */
	public static void printChengFaBiao(int num) {
		//实现乘法表的功能
		for(int i = 1 ; i <= num ; i++) {
			for(int j = 1; j <= i ; j++) {
				System.out.print(j+"*"+i+"="+j*i+"\t");
			}
			System.out.println();
		}
	}

方法调用上的总结 (调用方式)

  1. 赋值调用
  • 接收方法的返回值结果
  1. 输出语句调用
    • 直接将方法的调用,写在输出语句中
  2. 直接调用,不接收任何结果
  3. 如果方法返回值类型是 void , 不能接收返回值
public static void main(String[] args) {
		//1: 赋值调用,方法必须有返回值
		int i = sum(1,2);
		System.out.println(i);
		
		//2: 输出语句调用,方法直接放在输出语句
		System.out.println( sum(7,8) );
		
		//3: 直接调用,不接收任何结果
		sum(1,5);
		
		Scanner  sc = new Scanner(System.in);
		System.out.println( sc.nextInt() );
		//System.out.println( print()  );
	}
	public static void print() {
		System.out.println("这是一个void方法");
	}
	
	public static int sum(int a, int b) {
		return a + b;
	}

方法的重载

方法的重载(overload) : 在同一个类中,允许方法名字是相同的,只要方法的参数列表不一致,这些方法就是重载现象.

方法的重载 : 和修饰符,返回值无关

参数列表不一致 :

  • 包含参数的个数不同
  • 参数的数据类型不同
  • 参数的顺序的不同
  • 以上三个,只要有一个不同,就是重载
public static void main(String[] args) {
		//function();
	}
	/*
	 * 写方法,看其他的方法,是否与本方法重载
	 */
	public static void function() {
		
	}
	public static void function(int a) {
		
	}
	
	public static int function(double a) {
		return 0;
	}

	 void function(int a, int b) {
		
	 }
	 public static void function(double b,int a) {
		 
	 }
	 
	 public static void function(int a, double b) {
		 
	 }
  • 方法重载调用练习

    public static void main(String[] args) {
    		function((byte)1);
    		function((short)1);
    		function(1L);
    	}
    	
    	public static void function() {
    		System.out.println("这是无参数的方法");
    	}
    	
    	public static void function(byte b) {
    		System.out.println("字节型参数的方法: "+b);
    	}
    	
    	public static void function(short s) {
    		System.out.println("短整型参数的方法: "+s);
    	}
    	
    	public static void function(int i) {
    		System.out.println("整型参数的方法: "+i);
    	}
    	
    	public static void function(long l) {
    		System.out.println("长整型参数的方法: "+l);
    	}
    
  • 方法重载练习

    需求 : 方法定义实现乘法表

    用户如果传递参数,就按照他传递参数输出乘法表

    用户不传递参数,输出99的, 默认

/*
 *   需求 : 方法定义实现乘法表
	  用户如果传递参数,就按照他传递参数输出乘法表
          用户不传递参数,输出99的, 默认
          
          本案例的存在的问题 : 代码出现了重复 (很大重复)
          进行简化,不能有这么大的重复
          
          方法: 共性代码的抽取
 */
public class MethodDemo07 {
	public static void main(String[] args) {
		printChengFaBiao(5);
	}
	
	/*
	 * 写有参数的方法,传递什么,输出什么
	 */
	public static void printChengFaBiao(int num) {
		//实现乘法表的功能
		for(int i = 1 ; i <= num ; i++) {
			for(int j = 1; j <= i ; j++) {
				System.out.print(j+"*"+i+"="+j*i+"\t");
			}
			System.out.println();
		}
	}
	
	/*
	 * 写无参数的方法,实现输出99乘法表
	 * 上面的方法,是带有参数的方法,传递9,就是99乘法表
	 * 在本方法中,调用上面的方法,传递9
	 */
	public static void printChengFaBiao() {
		printChengFaBiao(9);
		
		//实现乘法表的功能
		/*
		 * for(int i = 1 ; i <= 9 ; i++) { for(int j = 1; j <= i ; j++) {
		 * System.out.print(j+"*"+i+"="+j*i+"\t"); } System.out.println(); }
		 */
	}
}

方法参数的传递效果

  • 方法的参数是基本数据类型
	public static void main(String[] args) {
		//定义2个变量
		int a = 1;
		int b = 2;
		//调用方法change,传递实际参数
		change(a, b);
		System.out.println(a); // a = 1
		System.out.println(b); // b = 2
	}
	/*
	 * 定义方法,传递2个整数值
	 * 不返回
	 */
	public static void change(int a, int b) {
		a = a + b;
		b = b + a;
	}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SGA2qkOM-1594295646757)(images/方法的参数是基本数据类型.jpg)]

  • 方法的参数是引用数据类型

    public static void main(String[] args) {
    		int[] arr = {1,2,3};
    		System.out.println(arr[0]); // 1
    		//调用方法change,传递数组,传递到方法参数的也是内存的地址
    		change(arr);
    		System.out.println(arr[0]); // 100
    	}
    	
    	//change方法参数,写数组, 方法参数接收到的也是地址
    	public static void change(int[] arr) {
    		//修改数组中的元素值
    		arr[0] = 100;
    	}
    
static void main(String[] args) {
		//定义2个变量
		int a = 1;
		int b = 2;
		//调用方法change,传递实际参数
		change(a, b);
		System.out.println(a); // a = 1
		System.out.println(b); // b = 2
	}
	/*
	 * 定义方法,传递2个整数值
	 * 不返回
	 */
	public static void change(int a, int b) {
		a = a + b;
		b = b + a;
	}

方法的参数是引用数据类型

public static void main(String[] args) {
		int[] arr = {1,2,3};
		System.out.println(arr[0]); // 1
		//调用方法change,传递数组,传递到方法参数的也是内存的地址
		change(arr);
		System.out.println(arr[0]); // 100
	}
	
	//change方法参数,写数组, 方法参数接收到的也是地址
	public static void change(int[] arr) {
		//修改数组中的元素值
		arr[0] = 100;
	}
计算机视觉(相机标定;内参;外参;畸变系数) 目录 一、预备知识 1、坐标系变换过程(相机成像过程) (1)相机坐标系转换为图像坐标系(透视投影变换遵循的是针孔成像原理) (2)齐次坐标的引入原因:(为什么引入齐次坐标???) 2、内参与外参矩阵的构成 3、畸变参数 二、相机标定 1、张正友标定法(光学标定)及其求解思路 2、求解内参矩阵与外参矩阵的思路: (1)计算内参与外参矩阵的乘积M (2)求解内参矩阵A (3)求解外参矩阵(R1 R2 T) 三、参数优化 1、L-M算法 2、相机标定步骤 四、相关代码及其实验结. 阅读详情

相关推荐

ESP32 开发实战:VS Code 头文件波浪线及编译错误的终极解决方案

本文针对ESP32开发者在VS Code中常见的头文件红色波浪线和fatal error编译错误,提供了终极解决方案。通过详细讲解如何配置c_cpp_properties.json文件来修复编辑器智能提示,以及如何修改CMakeLists.txt来修正编译器路径,帮助开发者彻底解决环境配置问题,提升开发效率。

prometheus9mon的博客 294

Java基础语法

1. Java概述 1.1 Java语言发展史 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言 Java之父:詹姆斯·高斯林(James Gosling) 2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.com 当前,我们课程使用的JDK版本:11.0 1.2 Java语言跨平台原理

terence的博客 10万+

AnyLogic 8.8.3 最新版安装指南:从下载到配置的完整流程(附Java环境设置技巧)

本文提供了AnyLogic 8.8.3最新版从下载到配置的完整安装指南,重点解决了跨平台(Windows、macOS、Linux)部署中的常见问题。核心内容详细讲解了Java开发环境(JDK)的精准配置技巧,包括版本选择、系统环境变量设置与验证,确保为仿真建模工作奠定稳固基础。

efc1234567的博客 759

【Java】基础语法介绍

本篇文章围绕Java的基础语法展开讲解,包含关键字、输入输出、数据类型、运算符、分支循环、类和对象、接口、数组等内容

Eristic0618的博客 8158

Raptor码(一):2007RFC5053标准编解码学习

RFC 5053 标准

a_beatiful_knife的博客 3493

java需要学习的基础语法

Java 简介 Java 开发环境配置 Java 基础语法 Java 对象和类 Java 基本数据类型 Java 变量类型 Java 修饰符 Java 运算符 Java 循环结构 Java 条件语句 Java Number类 Java Character类 Java String类 Java StringBuffer Java 数组 Java 日期时间 Java 正...

weixin_41719737的博客 1万+

022、Conv-BN-SiLU 基础卷积块:构造函数参数计算,前向传播的 PyTorch 逐行实现

本文详细解析了Conv-BN-SiLU卷积块的实现细节与注意事项。作者从调试经历出发,指出bias参数冗余会导致数值不稳定,强调卷积层应设置bias=False。文章对比了SiLU与ReLU的特性差异,逐行分析了构造函数参数计算(包括自动填充、分组卷积等)和前向传播过程,特别讲解了BN层与SiLU激活的数值特性。最后分享了三个实践中的常见问题:BN的momentum设置、SiLU输出范围的影响,以及分组卷积的通道对齐要求,并提供了卷积与BN融合的推理优化技巧。全文聚焦实际工程实现中的关键细节,具有较强实操指

ai技术增长的博客 217

Java基础编程——基础语法及介绍

Java基础编程——基础语法及介绍 介绍 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。 Java分为三个体系: JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版) JavaME

Box_sir的博客 3927

uniapp中使用canvas生成海报,并下载保存到手机相册

如下图,是在H5中,canvas生成后的效果,首先说明,H5不支持返回图片的临时路径,不能用于保存,APP端生成成功后,会返回图片的临时路径用来保存到相册。本地测试,用的网络图片,没有出现跨域的问题,APP端也正常显示。 完整代码:可以将整个代码复制到你得uniapp项目中直接运行。代码中做了详细的注册,关于API的用法,这里只标注的简单的提示,具体还是参考 官方链接uniapp-canvas吧 <template> <view class="demo"> <c.

sunluyi的博客 3万+

Qt实现离线缓存地图(附完整源码)

Qt实现离线缓存地图(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 856

Java基础语法之数组详细介绍【精】

Java基础语法 数组操作的2个异常 数组的索引超过范围异常 (索引越界) 程序中访问了不存在的索引, 每个数组的索引范围从0开始,最大的索引=数组的长度-1 public static void main(String[] args) { //定义存储int类型的数组 int[] arr = {1,2,3,4,5}; //数组中存储5个元素,长度是5个 System.out.println(arr.length); //索引0-4 //访问不存在的索引 System.out.

debugEDM的博客 206

【Bug已解决】npm install -g @anthropic-ai/claude-code 出现 EACCES: permission denied 解决方案

方案适用场景推荐指数nvm 管理 Node长期开发环境,一次配置永久生效⭐⭐⭐⭐⭐修改 npm 全局目录不想引入 nvm,快速解决⭐⭐⭐⭐修复现有目录权限之前用过 sudo 装包,需要修复⭐⭐⭐Windows 管理员/改目录Windows 平台专用⭐⭐⭐⭐官方原生安装脚本想彻底避开 npm 权限问题⭐⭐⭐⭐报的本质是npm 全局安装目录的属主权限与当前执行用户不匹配,而不是 npm 或 Claude Code 本身有问题。不要用sudo"强行"解决。

一键难忘的博客 1万+

Java学习基础语法

这里写自定义目录标题 Java 开发环境配置 Java 基础语法 Java 对象和类 Java 基本数据类型 Java 变量类型 Java 修饰符 Java 运算符 Java 循环结构 Java 分支结构 Java Number类 Java Character类 Java String类 Java StringBuffer Java 数组 Java 日期时间 Java 正则表达式 Java 方法 ...

chensiyuan0805的博客 5700

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

JAVA部分基础语法及语句的详细介绍

我们在使用java进行编程之前,需要先准备java的编程环境,相关工具的导入及下载可以在各大平台和论坛上找到。而作为一种面向对象的编程语言,它的规则一定是罗密严谨的,下面笔者将就最基础的java语法和语句展开介绍。+=类:自增运算n=n+10;需要注意的是,我们在代码中所使用的符号和除输出文本外任何内容的编写都需要。定义:变量是指在代码中代替一份数据,并且在后续完成逻辑代码的操作的一个词。:该符号意为“非”,表示取条件的补集,也称为取布尔值的反值(如!规则:右边的值将被赋给左边的变量 int n=10;

sushengming的博客 958

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

java基础语法总结

总而言之,Java语法简单清晰,易于学习和使用,在学习的过程中要多复习多上手敲代码,保持自己语言学习的连贯性。本文章主要对基础语法进行了一个简单的概述,想要进一步深入学习可以多看看其它更加具体化的文章和资料,希望本文对你有所帮助。

weixin_49817511的博客 1354

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java基础语法之各种循环数组详细介绍

Java基础语法 流程控制语句 if…else if…else if…else 多分支语法格式: if(条件判断){ } else if(条件判断){ } else if(条件判断){ } else { } 适合与多条件的判断,但是 if else过多,会导致程序的阅读性下降 优势 : 高效的优势,只要有一个if的条件判断结果是true,整体的语句结构就结束了 public static void main(String[] args) { int i = 99

debugEDM的博客 725

【JAVA】第一张_Java基础语法

这些基础语法要点是学习Java编程的基础,通过理解和掌握它们,你将能够编写出结构良好、功能完善的Java程序,并为进一步学习和应用更高级的特性打下坚实的基础。继续学习和实践,你将逐渐成为一个优秀的Java开发者!

qq_52143611的博客 1630

Java 基础语法(一)【详细教程】

Java 作为一门被广泛应用于软件开发各个领域的高级编程语言,以其强大的功能、良好的跨平台性和卓越的安全性,在全球范围内拥有庞大的开发者社区和众多的应用场景。而其基础语法,就如同坚实的基石,为构建复杂且功能强大的 Java 程序奠定了不可或缺的基础。

野生派蒙的博客 1569

Java基础语法 (基础介绍 二)

java的基础语法,对象和类的基础介绍与使用。

weixin_64261178的博客 919

java基础详细介绍

本文章篇幅较长,建议收藏使用,如有些基础,建议看java基础介绍表格版,更为简单明了

fyr6103032003的博客 917

Java 基础语法介绍

一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。

2404_89484254的博客 1046

Java基础语法介绍

class 类名{。。。。类名 对象名 = new 类名();抽象类不能被实例化,只能被继承。// 抽象类声明// 属性(可以有具体实现)// 构造方法// 抽象方法 - 没有方法体,子类必须实现// 具体方法 - 有方法体,子类可以直接使用或重写System.out.println(name + "正在睡觉...");// 具体方法。

y2222_的博客 726

保姆式教学JAVA基础环境的搭建,Java api,基础语法,书写风格介绍

Java入门保姆级教学,从IDEA,JDK,java apk下载与配置,设置到写出第一个代码到入门知识的进一步学习,丰富程度超乎你的想象!!!

Lbycomputer的博客 800
上一篇: Java基础语法之数组详细介绍【精】
下一篇: Java笔记-了解面向对象
Debug_EDM
博客等级 码龄8年 21粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值