Java入门-java的方法

这篇具有很好参考价值的文章主要介绍了Java入门-java的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

java方法

java的方法是用来完成某种功能的代码块。使用方法封装代码块,可以提高代码的可复用性,模块化,使用者无需知道代码的具体实现也能通过方法调用使用其提供的功能,简化了应用过程。

方法结构

一般一个方法的构成有如图几部分构成:

Java入门-java的方法,java入门,java,开发语言

方法的基本构成如下面的例子:

程序案例:

public static int add(int a, int b){

  return a +b;

}
方法构成 含义
访问控制符 private/protected/pubic/省略(不写)
static关键字 可写(是否为静态方法,目前必备)
返回类型 类型,和return的类型一致void(方法没有返回)
方法名称 也是方法的入口,即内存中方法的地址。通过它可以找到我们要调用的方法在哪。例如: add()
形参 形式上的参数,只是一个标记不是具体的值。例如: (int a, in b) a,b为形参
方法体 大括号的内容,大括号可以理解为方法的作用域,即大括号中定义的变量其它方法是访问不到的。
方法使用中常见错误 1. 方法体不能定义方法。2. 方法定义了返回类型,一定要有return 返回相应的类型。3. 方法中大括号不匹配。

方法参数

方法参数由定义和使用划分为形参(定义时)和实参(调用时)。

(1) 形参

形参即形式上的参数,在定义方法时虚拟的参数名称。例如下面例子中的a和b即为形式参数,名字是可以替换的,规范中建议方法的参数命名能够见名知意:

public  static int add(int a , int b){

}

(2) 实参

实际是指在实际方法调用过程中的实际传入的参数,例如以下程序在调用过程中调用add方法中传入的4和6即为实际传入的参数是实参。

程序案例:

pubic static void main(String[] args){

int x = add(4, 6);

}

public static int add(int a , int b){

return a + b;

}

(3) 形参和实参的关系图

Java入门-java的方法,java入门,java,开发语言

不定参数

为了简化多参数的传递方式,编译器提供了一种不定参数的方式,其底层会转换为数组形式。

public void func(类型 ... 形参名称){

//编译器再运行时将传入的实参,转换为数组执行

}

程序案例:

public static void func(int... a) {

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

		System.out.println(a[i] + "\t");

	}

}

方法的调用

一旦方法定义好之后,方法则可以提供程序调用,常用的调用方式分为两种:

(1) 有返回值的方法:当作值使用。

程序案例:

pubic static void main(String[] args){

int x =add(4,6); //作为值返回给x

 System.out.println(x);

 System.out.println(99 + add(7,8)); //直接使用当作值用

}

(2) 无返回值方法: 做一行代码调用。

程序案例:

/**

 * 打印0~100之间的所有偶数

 */

public static void print(){	

	for(int i=0; i <= 100; i+= 2){
	 	System.out.print(i + "\t");	
	}
}

方法重载

如果同一个类中包含了两个或两个以上方法名相同、方法参数的个数、顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了。

方法重载的目的

方法重载的目的是在一个类(class范围)使用相同的方法名称,通过****参数类型或个数****不同复用方法名称,避免记录管理太多的方法名称。比如我们可以命名两个整数相加为add,如果是三个整数,四个整数相加呢?显然相同名称对于客户调用会容易很多。

方法重载的原理

编译器底层将方法名和参数类型重新组合命名为新的标识符,例如:add(int a, int b)转化为add_int_int, 将add(double a, int b)转换为 add_double_int, 也就是说编译器底层维护的方法名称依然是唯一的。

方法重载的几个必要条件

  • 在同一个类中
  • 方法名称完全相同
  • 方法的参数类型或者数量不同(与返回值等无关)

程序案例:

public static int add(int a, int b) {

  return a + b;

}
public static int add(int a, int b, int c) {

  return a + b + c;

}

方法递归

概念

程序调用自身的编程技巧称为递归(recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。 简单讲就是我们常说的自己调用自己(实际上是调用和自己的形式相同但是参数不同的方法而已)。

递归流程

解决方法递归问题,一般流程如下:

  • 找出递归的终止条件

  • 找出解决问题的通项公式

程序案例:

计算一个整数的阶乘:

public static int f(int n) {

if (1 == n) {

	return 1; //递归终止条件

}

return n *f(n - 1); //一般表达式(通项)

}

案例解析:

Java入门-java的方法,java入门,java,开发语言Java入门-java的方法,java入门,java,开发语言

f(5) = 5 x f(4);

f(4) = 4 x f(3);   

f(3) = 3 x f(2);

f(2) = 2 x f(1);

f(1) = 1; 

当n == 1 的时候,获取到结果,将结果返回给f(2),依次向上返回直到f(5)就获得了结果。这恰巧是栈的调用方式,先压栈,到达f(1)时开始出栈。文章来源地址https://www.toymoban.com/news/detail-846313.html

到了这里,关于Java入门-java的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java从入门到精通(一)· 语言背景

    温故而知新,闲着没事干,准备将Java编程语言的知识点从头梳理一遍,整理成笔记,逐篇发布。 部分图片素材来源与B站“黑马程序员”的课程。 Java是1995年 由Sun公司推出的一门高级编程语言。 业内公认Java之父为 詹姆斯·高斯林 。 重要事件:2009年,Sun公司被 Oracle公司 收

    2024年02月15日
    浏览(42)
  • 开发语言漫谈-Java

            由于C++过于复杂,Java诞生了。与C++相比,Java更易于学习和使用,它去掉C++中的指针和解决了内存管理问题。Java提供了垃圾自动回收机制,自动管理不再使用的内存。Python又进一步简化,使得语法更简洁,更易于阅读和编写。当然随着简化,性能就越来越低。    

    2024年04月10日
    浏览(46)
  • Java语言------图书馆管理系统(入门简略版)

    目录 一.图书管理系统分析 1.1系统设计要求  1.2设计思路 二.操作代码的实现  2.1书架书籍代码实现 2.2用户操作代码实现 2.2.1增加书籍 2.2.2移除书籍 2.2.3查询书籍 2.2.4展示书架书籍信息 2.2.5借阅书籍代码 2.2.6归还图书代码 2.2.7退出系统 3.用户登录操作  四.主函数的调用 总结

    2023年04月13日
    浏览(46)
  • java语言输出当前日期时间的方法

    你是否是一个时间焦虑者?还在为起床工作而设置的七点半闹钟难受吗?早醒后闭上眼要时不时看一眼手机时间的不悦,我懂,我懂,我都懂。 那怎么通过编程输出实时的时间呢?         通过 Date包 和 格式化 来 输出当前的时间                注:需要导包!!!       

    2024年02月06日
    浏览(58)
  • Java开发小白入门前的工具安装

    学习过程是痛苦的, 我们要学会苦中作乐! 关于java语言的基本介绍百度上都有,拉出来的都很详细,不做过多的介绍,我想写的主要是以干活为主,大家一起学习java 的知识。 编程的学习主要还是要靠自己勤劳的双手------敲代码,一遍又一遍的把代码敲出来,直到它成为你

    2024年04月16日
    浏览(52)
  • 海康威视相机SDK二次开发(JAVA语言)

    前言 有个项目需要使用java程序读取海康威视的相机图片。相机通过以太网连接服务器,部署在服务器上的java程序将相机拍摄的画面保存在指定路径下。 海康威视提供了sdk开发包,可以在官网中下载,windows和linux系统都有。但是开发包中给出的示例代码,无法满足实际需要,

    2024年04月29日
    浏览(46)
  • Java入门篇:打造你的Java开发环境——从零开始配置IDEA与Eclipse

    “工欲善其事,必先利其器” 作为每一位Java初学者的必经之路,搭建合适的开发环境是至关重要的第一步。本篇将详细指导你如何安装并配置两大主流Java开发工具——IntelliJ IDEA和Eclipse,助你在编程之旅上迈出坚实的第一步。 1. 下载并安装Java Development Kit (JDK) 步骤1 访问O

    2024年01月25日
    浏览(56)
  • 《Java Web轻量级整合开发入门》学习笔记

    轻量级Java Web整合开发 第一章 轻量级Java Web开发概述 1.2  java web 开发概述 1.JSP是一种编译执行的前台页面技术。对于每个JSP页面,Web服务器都会生成一个相应的Java文件,然后再编译该Java文件,生成相应的Class类型文件。在客户端访问到的JSP页面,就是相应Class文件执行的结果

    2024年02月08日
    浏览(52)
  • 【Java】后端开发语言Java和C#,两者对比注解和属性的区别以及作用

    欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《Java》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。 温馨提示:博主能力有限,理解水平有限

    2024年01月16日
    浏览(51)
  • 【java面试】Java开发当中遇到的问题以及解决方法(147)

    问题一: 每个公司都有部门树结构,但是大公司的部门树每年可能会发生调整; 一般开发中我们都是直接根据部门ID去查询或者过滤数据或者做权限管控; 部门调整以后,可能就会查询不到数据或者过滤数据出问题; 如何解决 :每年调整的部门ID和原来的部门ID做映射关系(

    2024年01月24日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包