分享好友 最新动态首页 最新动态分类 切换频道
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. 二维数组的循环遍历(采用循环嵌套

最新文章
美发布K-12生成式人工智能成熟度工具
2024年11月21日,美国“学校网络联盟”(缩写为CoSN,美国K-12教育科技领导者专业协会,代表2050余个学区)与美国“大城市学校理事会”(缩写为CGCS,成立于1956年,成员由全美78个最大的城市公立学校系统组成,致力于改善城市儿童的教育)
通达信亦风自动划线主图指标公式
公式源码:通达信公式 亦风自动划线 的源码:F111:=ZIG(3,15);F211:=IF((F111 REF(F111,1)),100,80);昨:REF(C,1),NODRAW,COLORGREEN;上涨家数:=INDEXADV;下跌家数:=INDEXDEC;人气:上涨家数/下跌家数,NODRAW;M5:=MA(C,5),COLORFFFFFF;M10:=M
用AI绘画工具生成超逼真美女写真,轻松变身街拍达人!
在这个数字化时代,创作艺术作品的工具层出不穷。想象一下,你能否在家中轻轻松松地生成一张超逼真的美女写真?那么,答案就是有可能的!随着AI技术的不断发展,越来越多的当红AI绘画工具横空出世,让我们能够以几乎零门槛的方式创造出令人
SEO优化见效时间的详细解析
SEO优化见效时间的详细解析在数字营销的世界里,搜索引擎优化(SEO)是提升网站可见性和吸引目标受众的关键策略。然而,许多企业主和市场营销人员常常对SEO的见效时间感到困惑。本文将从几个角度探讨SEO的见效时间,包括影响因素、常见误区
揭秘搜狗SEO蜘蛛池分类与优化之道
搜狗SEO蜘蛛池分类解析包括自然池、广告池和行业池,针对不同类型,优化策略各异。自然池需优化内容质量和链接布局;广告池需确保广告内容合规且相关;行业池需聚焦行业关键词,提升专业性。整体优化需结合网站结构和用户体验,提升搜索引
规则引擎解决方案浅析
用于页面,流程,扩展点实现的选择;输出结果:实现的位置;编排无数的条件积木和行为积木,达到业务逻辑计算,券库存消减的目的;输出结果:商品重计算后的价格;通过订单,售后单,会员等信息编排和判断,达到多因子决策给出最佳答案的效
漫画台免费版app
漫画台免费版app是一款深受漫画爱好者喜爱的手机漫画阅读软件。漫画台免费版app凭借其丰富的漫画资源、极速更新、互动体验、个性化推荐以及便捷的阅读体验等亮点,成为了漫画爱好者的必备之选。软件内置了强大的搜索功能,用户可以通过漫画
达内seo培训」如何用网站内页把关键词优化排名到百度第一?
  「达内seo培训」如何用网站内页把关键词优化排名到百度第一?  【达内seo培训】这样把广安SEO优化排名到百度首页,如何用网站内页把关键词优化排名到百度第一?前面来段插曲!相信很多的公司老板在想要做网站推广,seo关键词排名,网站
线上投票怎么做,QQ音乐投票活动怎么拉票
线上投票怎么做,QQ音乐投票活动怎么拉票线上投票是一种常见的活动组织方式,通过互联网平台进行投票,参与者可以通过手机、电脑等设备进行投票。QQ音乐投票活动是一种常见的线上投票形式,参与者可以通过QQ音乐平台参与活动,获得更多的投
相关文章
推荐文章
发表评论
0评