分享好友 最新动态首页 最新动态分类 切换频道
java入门基础四(方法和数组)
2024-12-27 01:26

概念:特定功能的代码块。

java入门基础四(方法和数组)

优点:减少了代码的冗余。

方法的分类:静态方法、成员方法、构造方法(此节主要在静态方法的基础上使用

注意

  1. 方法编写的位置:类里,与main方法并立。
  2. 方法与方法之间是平级关系(不能在一个方法中声明另一个方法)。
  3. 方法不被调用,永远不会主动执行。

:只能使用类名调用,无法使用类对象调用。

8.1.1 无返回值无参数的方法

语法结构

​ 访问修饰符 static void 方法名(){
​ …代码块…

​ }

示例

 
 

在main方法中可以直接通过方法名调用------ hello();

8.1.2.带有参数的方法

语法结构

访问修饰符 static void 方法名(参数类型 变量名){
…代码块…
}

示例

 
 

main()方法中调用printStar方法时,需要传递实参给printStar方法。

 
 

输出

 
 

注意

  1. 形参:形式参数,方法声明时,规定调用时要传入的数据类型及接收数据的变量
  2. 实参:实际参数,调用方法时传入的具体数据
  3. 实参与形参类型必须兼容
  4. 多个参数用逗号分隔

8.1.3.带有返回值的方法

语法结构

public static 返回值类型 方法名([参数]){
…代码块…
return 返回数据;
}

示例

 
 

注意

  1. return下面不能接执行语句,因为return表示结束当前方法(如果存在分支,不是每个分支都存在return时,主干函数必须需要一个return语句。)。
  2. 声明方法时规定返回值类型,return后面接的是要返回的具体数据,返回的数据类型和定的返回值类型必须兼容。
  3. 方法中的变量为局部变量,作用域在该方法内,不影响其他方法中的变量。

8.1.4.方法的重载

含义:方法与方法之间的关系
好处:系统会根据实参类型自动匹配到对应方法
条件
1.在同一个类里
2.方法名一致
3.参数列表的个数或者类型不一致
4.与访问修饰符,返回值无关
应用场景
在同一个类里,有多个方法功能一致,细节实现不一样,就可以考虑使用重载(例如:多个整数求最大值。)

示例

 

8.1.5 递归的使用

概念:方法调用方法自身。

要点

  1. 找规律(找出联系)。
  2. 找出口(结束的标志)。

示例

Fibonacci 数列: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,

找出规律和联系a1=1,a2=1,an=a(n-1)+a(n-2)(n>=3,n∈N*

找出结束的标志a1=1,a2=1

 
 

注意

​ 方法没有出口就会导致死循环,直到栈内存溢出报错(调用方法时,会在栈内存中开辟空间,用于存放该方法的局部变量,死循环的调用方法,栈内存就会满载并溢出)。

含义:表示对象所具有的功能。

作用

​ 调用时与静态方法不同,需要使用类的对象来调用。

​ 对象可以多次调用成员函数

​ 可以有返回值,也可以为void类型。

​ 方法名可以和类名相同,但当此成员函数没有返回类型时为构造函数。

  1. 格式

    构造方法和类名相同,并且没有返回类型和返回值。

    一个类可以有多个构造函数,但要求他们满足方法的重载。

    构造函数与其他方法一样可以有0个、1个、或多个参数。

  2. 作用

    构造方法在创建对象时被调用,一个对象的建立只能调用一个构造函数,可用于初始化对象。

:编译程序如果类中没有构造函数,系统会自动加入构造函数,为此类的默认构造函数。

  1. 格式
 
 
  1. 含义

​ 在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法。

这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void 类型的,方法必须接收一个字符串数组的参数。

  1. main方法中的args参数

    ​ main方法中还有一个输入参数,类型为String[],这个是java的规范,main()方法中必须有一个入参,类型必须String[],命名为args,则是多数人的习惯。

    使用示例

      

拓展

由于JVM在运行这个Java应用程序的时候,首先会调用main方法,调用时不会实例化这个类的对象,而是通过类名直接调用因此main方法需要是限制为public static。(类名.main()) ,且不能有返回值,所以返回类型为void。

概念:一组数据的容器(数组可以存放多个数据

注意

​ 1.数组是引用数据类型
​ 2.数组中的数据又叫做元素
​ 3.每个元素都有编号叫做下标/索引(index
​ 4.下标从0开始
​ 5.数组初始化后,会在内存中开辟一连串连续的空间
​ 6.数组一旦初始化后长度不可以改变(数组没有扩容和删除
​ 7.数组的操作:添加、修改、查询

声明: 数据类型[] 数组名;

9.1.1 静态初始化

数据由程序员指定,长度由系统分配。

静态初始化的三种方式

示例

 

9.1.2 动态初始化

数据由系统指定,长度由程序员分配。

默认指定类型

​ 整数类型:0
​ 浮点类型:0.0
​ 字符类型:’ ’
​ 布尔类型:false
​ 引用类型:null

示例

 

动态初始化和静态初始化

一开始就知道数据,采用静态初始化,反之,只知道数据长度(个数)就采用动态初始化。

9.1.3 数组相关操作

9.1.3.1 获取和修改数组内容
  1. 通过索引能够指定获取数组元素和修改数组元素。

示例(参照动态初始化化的str)

 
 
  1. 通过length获取数组元素个数。

     
  2. for循环遍历

     
  3. 增强for循环遍历(foreach

     

​ 遍历是如果需要使用下标,通过for循环遍历,如果不需要使用下标就采用foreach遍历数组。

9.1.3.2 数组的排序(数值型)

冒泡排序

 
 

使用Arrays工具类方法排序(后续9.1.6详细介绍Arrays工具类

 
9.1.3.3 数组的查找
  1. 顺序查找(遍历查找

     
  2. 二分法查找(使用对象:有序的数组

     
9.1.3.4 数组的扩充
 
9.1.3.5 数组的复制
  1. 直接复制。

     

    注意:当采用这种方式复制字符数组时,修改原数组,新的数组内容也随之改变。(当names赋值给newNames时,只是将字符数组的地址传递给新数组,所以两个数组操作的其实是一片空间。

  2. 只复制内容。

    当复制一个数组只是为了获取其中的数据时,就可以采取动态初始化,对新建的字符数组单个赋值,从而避免了多个数组操作同样的一组数据。

     

    原数组的变化,不会对新数组产生影响。

9.1.3.6 删除数组内容
  1. 数据外部迁移(将需要删除的数据舍弃,获得新数组。

     

    :这种方法会使原本的数组空间减小

  2. 数据内部迁移(在数组内部将需要删除的数据覆盖。

     

    :数组的长度不会经历变化。

9.1.4 数组作为参数和返回值

示例:长传一组数据,返回最大值和最小值。

 

9.1.5 可变参数

示例:设计方法,传入任意个int值,求和。

 
 

由此可见:可变参数的底层就是数组。

注意

  1. 可变参数后不能接其他参数,但之前可以。

     
  2. 一个方法的参数中,不能同时出现两个可变参数(即便类型不同)。

9.1.6 Arrays工具类

Arrays: java 给我们提供的专门操作数组的工具类。(其中的方法定义和使用详见API-----java类使用说明书

常见示例

 
 

:二维数组整体学习和一维数组类似,可参照学习。

含义:包含了多个一维数组

声明:数据类型 [ ] [ ] 数组名;

9.2.1 二维数组的初始化

  1. 静态初始化:数据由程序员指定,长度由系统自动分配

     
  2. 动态初始化:长度由程序员指定,数据由系统自动分配(默认分配方式见9.1.2

     
  3. 二维数组的循环遍历(采用循环嵌套

最新文章
seo优化关键词哪家好,seo关键词优化软件
大家好,今天小编关注到一个比较有意思的话题,就是关于seo优化关键词哪家好的问题,于是小编就整理了1个相关介绍seo优化关键词哪家好的解答,让我们一起看看吧。以下是SEO必备的十大工具:Google Analytics:Google Analytics是一款免费的
用AI生成超逼真美女写真:搜狐简单AI工具深度评测与实用教程
步骤3:上传素材或选择风格你可以选择提供一张自己喜欢的照片作为素材,也可以直接选择自己喜欢的风格,AI会根据这些信息进行智能生成。步骤4:调整设置参数根据自己的需求调整参数,比如面部特征、妆容、背景等,以达到最佳效果。步骤5:
强撸灰飞烟灭,8门510毫米重炮,齐射会是神马样?绝对超级震撼
驱逐、巡洋、战列、航母,《战舰世界》中玩家可以操控这四个舰种。她们各有特色,却又相互制约,看似独立,却相辅相成。有很多朋友都喜欢战列舰,战列舰之所以称得上是超级海上霸主,就是因为装备了极具杀伤力的大口径火炮。这些巨炮是战列
优化自己,让自已更加优秀(深度好文)
文学欣赏,热点文摘,每日更新,天天精彩。点上方标题下《散文大家》关注。 汪国真曾说:当你仓促地到了中年,体态、面容、眼神、心境都被盖上了印戳。 闯过一重重生活的难关,咬牙接住命运的挑战,我们看似过得游刃有余,但其实 渐渐力不
微信图文跳转外链的实现方法详解
微信作为目前国内最大的社交软件之一,是各类企业与商家宣传推广所必不可少的平台。微信图文跳转外链是一种非常重要的推广方式,可以帮助宣传人员将用户吸引到自己的网站上,从而提高流量与销量。那么,我们该如何实现微信图文跳转外链呢?
抖音短剧系统源码交付,部署上线维护全包,支持媒资管理/广告回传
标题:抖音短剧系统源码交付,一站式服务助您搭建短视频盛宴随着短视频行业的火爆,越来越多的人投身于抖音短剧的制作与运营。而一款的短剧系统对于提升运营效率和内容质量至关重要。今天,就为大家介绍一款备受瞩目的抖音短剧系统——南阳
网站怎么使用wordress搭建自己的博客
使用adc功能来判断不同电压,那必定是通过电压的不同来区分的,这就需要按键与电阻进行组合,我设计打算使用正比关系的按键阻值,这样会比较好在程序判断,最后就如仿真图那样设计,按键按下让某部分电路短路,剩下的电路得到不同的电压值
迅雷种子搜索器,迅雷种子搜索器,手游玩家的资源获取神器
在手游领域,资源的获取对于玩家来说至关重要,而迅雷种子搜索器作为一款基于p2p技术的资源搜索软件,不仅可以帮助玩家快速定位并下载所需的游戏资源,还能提供电影、小说、图片、音乐等各种资源,成为手游玩家的资源获取神器。玩家需要在
中证香港100信息技术指数报21944.21点,前十大权重包含比亚迪电子等
金融界12月11日消息,A股三大指数收盘涨跌不一,中证香港100信息技术指数 (H100信息,L11187)报21944.21点。数据统计显示,中证香港100信息技术指数近一个月上涨6.24%,近三个月上涨57.07%,年至今上涨53.78%。据了解,中证香港100行业指数
相关文章
推荐文章
发表评论
0评