Java之方法和数组

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

方法

一、方法的概念和使用

1.什么是方法

在java中方法就是个代码片段.。几乎相当于c语言的函数。

2.方法定义

相比C语言多了个修饰符。

Java之方法和数组,java,开发语言

现在看下其注意事项:
 1. 修饰符:现阶段直接使用public static 固定搭配
2返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成 void。而且返回一个值所有情况都要考虑,否则会报错,看下面代码

Java之方法和数组,java,开发语言
3. 方法名字:采用小驼峰命名
4. 参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开
5. 方法体:方法内部要执行的语句
6. 在java当中,方法必须写在类当中
7. 在java当中,方法不能嵌套定义。
8. 在java当中,没有方法声明一说,而在c语言是有函数声明的。这是因为c语言编译是自上而下,而java编译是全局的
9.跟c语言一样,在Java中main方法也作为程序的入口从而运行,其有且只能有一个,如果缺少main方法则不能运行该程序。之后随着学习更多的知识会对其有更清晰的认识,现在对其的认知还是太模糊了。 比如我们不清楚是一个类中只能有一个main函数还是一个文件中只能有一个main函数。

3.方法调用

Java之方法和数组,java,开发语言

例题:计算两个整数相加
Java之方法和数组,java,开发语言

例题:计算5的阶乘
Java之方法和数组,java,开发语言

4.方法中实参和形参的关系

跟c语言一样,也有传值调用和传址调用。

4.1传值调用

注意传值调用没有改变实参的值,只是将实参的值拷贝到形参中去
Java之方法和数组,java,开发语言

例题:交换两个整型变量的值
Java之方法和数组,java,开发语言
通过以上代码可以看到改变x,y的值并没有影响a,b的值。传值调用不影响函数外部的值,如果要影响,则要传址调用。

4.2传址调用

在c语言里传址调用是用了指针,而在java中没有指针这种语法,所以java需要用到引用。 而这些东西我们现在还没学,所以等到学习数组再详细解释吧
Java之方法和数组,java,开发语言

二、方法的重载

在Java中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了

1.为什么要方法重载

现在定义一个方法public static int add(int x, int y), 我们调用这个方法时有多种形式,如:double ret2 = add(a2, b2);     int ret1 = add(a, b);   此时第一种形式是错误的,因为类型不匹配。为了使编译器能正常运行且不需要提供许多不同的方法名,因为名字取多了自己都会烦并且取名字也是个技术活,这时我们要用到方法重载。

Java之方法和数组,java,开发语言
该代码只提供了一个方法名add,代码变得更加美观,可读性也增加了呢。

方法的重载注意事项:
1. 方法名必须相同
2. 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序不同,其中有一个不同参数列表就不同了)
3. 与返回值类型是否相同无关

// 注意:两个方法如果仅仅只是因为返回值类型不同,是不能构成重载的,两个条件都要满足。
Java之方法和数组,java,开发语言
这么大的红色波浪线提示异常了呢。

如果发生了方法的重载,编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法。

2.方法签名

经过编译器编译修改过之后方法最终的名字。具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字即方法签名。(这才是方法真的名字名),方法签名解释了为什么方法重载可以存在,而两个相同的变量不能存在。方法签名这个知识点知道就好,不需要过度讲述。

三、递归

递归在c语言里就学过了,在java中递归跟c语言的是完全一样的。这里就不过多讲述了。

Java之方法和数组,java,开发语言

   数组

一、 数组的基本概念

1.数组的创建和初始化

1.1数组的声明

Java之方法和数组,java,开发语言

注意:java的声明不会分配内存空间,声明时[]里面不能填数字。

1.2数组的创建和初始化

java中使用new关键字进行实例化对象,即创建一个对象(数组)。

关于new的作用:
1. 分配内存 :当你使用new关键字时,Java虚拟机会为对象分配内存。
2. 默认初始化:new初始化数组。基本类型默认初始化为0,引用类型为null。(Java中局部变量一定要初始化,因为没有New来赋初始值)。
3. 调用构造函数来赋值(后面介绍)。

数组初始化主要分为动态初始化以及静态初始化

1. 动态初始化:在创建数组时,直接指定数组中元素的个数。
Java之方法和数组,java,开发语言
2. 静态初始化:在创建数组时不直接指定数据元素个数,而直接将具体的数据内容进行指定。

Java之方法和数组,java,开发语言

注意:java中不能同时指定大小与赋值

Java之方法和数组,java,开发语言

静态初始化可以简写,省去后面的new []。 本质还是一样的

Java之方法和数组,java,开发语言

但是简写在一些时候也是用不了的, 如我们数组的创建和初始化可以分成两步,在分为两步时,静态初始化的简写就用不了了。

Java之方法和数组,java,开发语言

数组也可以按照依照C语言创建数组的方法去创建,但不推荐,不要这么写Java之方法和数组,java,开发语言

2.数组的使用

2.1遍历数组

所谓 "遍历 " 是指将数组中的所有元素都访问一遍 , 访问是指对数组中的元素进行某种操作比如:打印。
注意:数组中可以通过 数组对象.length 来获取数组的长度
Java之方法和数组,java,开发语言
我们可以使用 for-each遍历数组,for-each就是一个加强版的for循环。
Java之方法和数组,java,开发语言

for-each能够更方便的完成对数组的遍历. 可以避免循环条件和更新语句写错.  而循环可以访问特定元素,for-each不能。

二、数组是引用类型

1.基本类型变量与引用类型变量的区别

基本数据类型创建的变量,称为基本变量,该变量空间中直接存放的是其所对应的值;

而引用数据类型创建的变量,一般称为对象的引用,其空间中存储的是对象所在空间的地址。

Java之方法和数组,java,开发语言
在上述代码中, a b arr ,都是函数内部的变量,因此其空间都在 main 方法对应的栈帧中分配。
a b 是内置类型的变量,因此其空间中保存的就是给该变量初始化的值。
array 是数组类型的引用变量,其内部保存的内容可以简单理解成是数组在堆空间中的首地址
引用变量并不直接存储对象本身,可以简单理解成存储的是对象在堆中空间的起始地址。通过该
地址,引用变量便可以去操作对象 有点类似 C 语言中的指针,但是 Java 中引用要比指针的操作更简单。
Java之方法和数组,java,开发语言上述代码在c语言里面是不能实现的,因为引用不需要解引用,引用直接通过指向对象的地址访问元素,而指针要解引用才能访问元素。也就是说:上述代码是引用指向引用指向的对象,而C中这样写是指针指向指针,这肯定是不允许的。

2.认识null

null 在 Java 中表示 "空引用" , 也就是一个不指向对象的引用。

Java之方法和数组,java,开发语言

 null 的作用类似于 C 语言中的 NULL (空指针), 都是表示一个无效的内存位置. 因此不能对这个内存进行任何读写操作. 一旦尝试读写, 就会抛出 Null Pointer Exception

三、数组的应用场景

1.作为函数的参数

1.1参数传基本数据类型
Java之方法和数组,java,开发语言
发现在func方法中修改形参 x 的值, 不影响实参的 num 值.
1.2参数传数组数据类型
Java之方法和数组,java,开发语言

发现在func方法内部修改数组的内容, 方法外部的数组内容也发生改变.

在这里有没有可能参数传的是数组但是也改变不了方法外部的数组内容呢(以下代码便没改变)

Java之方法和数组,java,开发语言

2.作为函数的返回值

在C语言中不能将数组类型当返回值,但Java 可以,返回值为引用(地址),可以通过将返回值赋值给数组来访问元素,见以下代码。

Java之方法和数组,java,开发语言

四、常见方便数组的方法

1.tostring方法:将数组按字符串输出。即将数组元素打印出来,以后可不用循环了。注意二维数组使用deepToString。

2.copyof方法:复制数组。copyofRange可以控制赋值的元素。

Java之方法和数组,java,开发语言
1. equals 方法:用于比较两个数组是否相等。它逐个比较两个数组中的元素,如果两个数组具有相同的长度,并且对应位置的元素都相等,则返回 `true`;否则返回 `false`。

Java之方法和数组,java,开发语言
2. fill方法:用于将数组中的所有元素·替换为一个指定的值。这个方法对于所有类型的数组都是可用的。

Java之方法和数组,java,开发语言
3. binarySearch 方法:用于在已经排序的数组中搜索一个特定的元素。如果元素存在于数组中,则返回元素的索引(下标);如果元素不存在,则返回一个负数。
Java之方法和数组,java,开发语言

五、二维数组

二维数组本质是由多个一维数组组成的。

在Java中,当你使用语句 int[][] array = new int[3][3]; 创建一个二维数组时,你实际上是在创建一个由3个一维数组组成的数组,每个一维数组都有3个元素。这个语句初始化了第一维的大小(即有3个一维数组),并且为每个一维数组分配了空间,使得它们各自也有3个元素。然而,尽管每个一维数组都有空间,但是它们的元素都是默认值,对于整数类型来说,默认值是0。如果你想要为这些一维数组赋予特定的值,你需要单独为每个一维数组赋值,当你使用 array[0] = new int[]{1, 2, 3}; 这样的语句时,你实际上是在替换第一个一维数组(即array[0])的引用,使其指向一个新创建的、包含特定值的一维数组。见以下代码

Java之方法和数组,java,开发语言

1.二维数组的创建和初始化

Java之方法和数组,java,开发语言

注意:以下代码是不规则的初始化创建,即省略了列(java里不能省略行),至于为什么可以省略列,上面红字部分解释的很清楚了。

Java之方法和数组,java,开发语言

同理, 还存在 "三维数组", "四维数组" 等更复杂的数组, 只不过出现频率都很低. 其道理跟二维数组是一样的(用二维数组可以推出来)

2.二维数组的打印

2.1使用循环打印

Java之方法和数组,java,开发语言

2.2使用for  each打印:

Java之方法和数组,java,开发语言文章来源地址https://www.toymoban.com/news/detail-861894.html

2.3使用deepToString方法进行打印。

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

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

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

相关文章

  • java 数组创建的方法

    java 数组创建的方法

      数组是一个由一组元素组成的集合,我们可以用一个数组来表示集合。 java中最基本的数据类型是字符串,其长度是固定的,且不可变,一个字符串只能以一个数字开头。 在 Java中我们可以通过 myConst来指定数组的长度。下面就看一下 myConst参数和 array参数的区别:

    2024年02月03日
    浏览(9)
  • java合并数组的方法

    java合并数组的方法

      在 Java中,数组是一种重要的数据结构,在 Java中数组的操作方式有两种,一种是直接使用数组来操作,另一种是通过引用计数或者双指针对数组进行操作。对于直接使用数组来操作的方式,我们可以通过两个方法来实现。 一种是将数组作为参数传递给方法,然后在方法中

    2024年02月02日
    浏览(9)
  • JAVA数组去重方法

    拓展(HashSet去重原理): HashSet是一种基于哈希表实现的Set接口。它通过hashCode()方法来确定元素在集合中的存储位置,通过equals()方法来判断元素是否相同。 当向HashSet中添加元素时,HashSet会先计算元素的hashCode值,然后根据hashCode值将元素放入不同的桶(bucket)中。当多个元素

    2024年02月12日
    浏览(7)
  • 〔004〕Java 基础之数组、方法

    〔004〕Java 基础之数组、方法

    数组: 就是一个容器,用来存储一批 同种类型 的数据 静态化数组: 就是预先填入数组的元素,知道数组有哪些值 格式: 定义 数据类型[] 数组名 也可以写成 数据类型 数组名[] 注意: 什么类型的数组只能存放什么类型的数据 方式一: 数组类型[] 数组名 = new 数组类型{元素

    2024年02月04日
    浏览(20)
  • JAVA——二维数组遍历二维数组的三种方法

    JAVA——二维数组遍历二维数组的三种方法

    目录 🍒java中二维数组的定义和赋值 🍒二维数组遍历的三种方法 🍇第一种:for循环遍历 🍇第二种方法:通过Arrays.deepToString()遍历 🍇第三种方法:通过for(   :   )遍历 二维数组其实就是特殊的一维数组; 在java中将这句话诠释得淋漓尽致; 运行截图: 运行截图: 注意

    2024年02月08日
    浏览(9)
  • Java怎样输出数组——三种方法

    Java中可以使用以下三种方式输出数组: 输出结果为:1 2 3 4 5 输出结果为:1 2 3 4 5 可以使用Arrays类的toString()方法来输出数组,它会将数组转换为字符串并且带有中括号和逗号分隔符。示例代码如下: 输出结果为: [1, 2, 3, 4, 5] 注意: 1:使用for循环遍历数组并逐个输出数组元

    2024年02月11日
    浏览(3)
  • 【算法基础】java基础——数组&静态方法

    数组:         数组能够顺序存续相同类型的多个数据。         一维数组:如果有n个数据,它们的编号为0到n-1,对于0到n-1之间任意的i,可以用a[i]表示数组a中的第i+1个元素。 初始化数组: 举例: double []a; a=new double[N]; double [] b=new double [N]; int c={1,3,4,76,8} 使用数组: a.

    2024年01月20日
    浏览(7)
  • java中初始化数组的方法

    方式一: 注:此种方式创建的数组,如不显式初始化数组元素,则各元素为当前数据类型的默认值。基本数据类型为0,对象类型为null。所以使用前需要将各元素显式赋值。 方式二: 注:此方式与方式一的结果相同,但是更简便。 方式三: 注:此方式与方式一和方式二的结

    2024年02月12日
    浏览(13)
  • Java数组中Arrays.fill()方法讲解

    fill()方法共有两种参数类型,分别是: (1)Arrays.fill(int[] a,int value)            a :要进行替换元素的数组            value :替换的元素值 (2)Arrays.fill(int[] a,int fromIndex,int toIndex,int value)            a :要进行替换元素的数组            fromIndex :需要替换元素的第

    2024年02月12日
    浏览(18)
  • Java-数组和方法(day6-7)

    Java-数组和方法(day6-7)

    活动地址:CSDN21天学习挑战赛 🍁 博客主页: 👉@不会压弯的小飞侠 ✨ 欢迎关注: 👉 点赞 👍 收藏 ⭐ 留言 ✒ ✨ 系列专栏: 👉21天挑战回顾java ✨ 知足上进,不负野心。 🔥 欢迎大佬指正,一起学习!一起加油! 🔥 第一周学习内容:java基础知识 🔥 第六-七天学习内容

    2023年04月11日
    浏览(10)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包