往期:
JAVA 修炼秘籍第一章:《痛苦的折磨》
JAVA 修炼秘籍第二章:《逐渐魔化》
JAVA 修炼秘籍第三章:《绝地反击》


文章目录

  • 一、方法
    • 方法的重载
    • 方法递归
  • 二、数组
    • 获取数组长度与访问数组
    • 拷贝数组与以字符串的形式打印数组

一、方法

在JAVA中什么是方法呢,方法其实与C语言中的函数是大相径庭的,方法可以帮助我们更清晰的理解代码,并且可以重复使用重复调用,大大减少了代码的重复性。

方法的书写格式如下:

public class Prog{public static int add(int x,int y){return x+y;}public static void main(String[] args) {int a=3;int b=5;int c=add(a,b);}
}

通过图片来分析代码:

注释部分:
1.在JAVA的方法书写格式与定义中,方法参数可以没有,如果有一定要指定类型。
2.返回值可以没有,如果没有返回值的方法,写上void。
3.方法定义时的参数为形参,方法调用时的参数为实参,形参是实参的一份临时拷贝。
4.方法的定义必须在类中, 调用位置的上方或者下方都可已。
5.方法只会在被调用时运行,不调用则不会。
6.遇到return语句则直接返回,不会继续函数内部后面的代码。

方法的重载

什么是方法的重载,当我想要计算两个正数数相加需要写一个函数,当我想计算两个小数相加又要写一个函数,两个短整型呢?还是很麻烦,这个时候,我们就需要用到重载,可以大大提升我们的代码清晰度,与简洁。不光可以写两个,可以重载很多个。

代码如下:

public static int add(int x,int y){return x+y;}public static double add(double x,double y){return x+y;}public static void main(String[] args) {int a=10;int b=20;double c=2.5;double d=10.3;System.out.println(add(a,b));System.out.println(add(c,d));}

输出结果为:30 12.8。
注释部分:
1.可以看到两个add函数的实现大致相同,他们的作用也相同,不同的点在于他们的参数类型不同,返回值不同。
2.方法名相同。
3.返回值不做要求。
4.参数列表不同,参数个数与参数类型。
5.必须在一个类中。

方法递归

一个方法在执行的过程中调用自身, 就称为递归,递归的程序的执行过程不太容易理解, 要想理解清楚递归, 必须先理解清楚 “方法的执行过程”,
尤其是 方法执行结束 之后, 回到调用位置继续往下执行。

代码部分:计算n的阶乘

public static int factor(int n){if(n==1){return 1;}return n*factor(n-1);}public static void main(String[] args) {int n=5;System.out.println(factor(n));}

注释部分:
1.自身调用自身。
2.要有终止条件。
3.自己能推到出递归公式。

赠送一张图片方便理解:


一定要认真学习并且习惯使用递归,因为在后面一些数据结构中二叉树等都是需要用递归来实现的,递归YYDS,用多了就不难了。

二、数组

在JAVA中数组的使用是非常方便的,数组是多个相同类型的批量创建,数组的定义如下,然后来介绍一下数组的存储形式。

代码如下:

 public static void main(String[] args) {int[] arr={1,2,3,4,5};}

注释部分:
1.上面代码转换为中文-》数据类型[ ] 数组名={初始化数据}。
2.这样就用一行代码创建了5个类型为 int 的变量。
3.JAVA中的数组都是在堆上创建的,数组名只是保留了地址。
4.JAVA中栈上的地址是拿不到的,堆上的地址可以拿到,但是不是真的,但是可以看作是真实的。
5.数组的的内存形式如下图所示:

获取数组长度与访问数组

在JAVA中获取数组长度非常简单,随时随地获取,非常简单

代码如下:

public static void main(String[] args) {int[] arr={1,2,3,4,5};System.out.println(arr.length);System.out.println(arr[1];}

注释部分:
1.数组名.length就可以直接计算出当前数组的长度,打印结果为5.
2.数组名[下标],可以直接访问下标所对应的数字,数组的下标是从0开始的,不是1

拷贝数组与以字符串的形式打印数组

拷贝数组其实可以手动实现,也可以使用方便快捷的库方法直接调用,这里介绍这两种数组操作的快捷方法,可以去放心大胆的刷题,自己实现也非常容易.
代码如下:

import java.util.Arrays;(1)
public static void main(String[] args) {int[] arr1={1,2,3,4,5,6};(2)int[] arr2=new int[arr1.length];(3)System.out.println(Arrays.toString(arr1));(4)arr2=Arrays.copyOf(arr1,arr1.length);(5)System.out.println(Arrays.toString(arr2));(6)}

注释部分:(按照代码中(数字)来分析) (1).调用包,使用库方法; (2).创建数组1; (3).创建空数组2,长度为数组1的长度.
(4).输出arr1这个库方法是以字符串的形式打印数组,格式为Arrays.toSring(数组名);
(5).拷贝数组,将arr1中的内容拷贝到arr2中,格式Arrays.copyOf(被拷贝数组名,拷贝长度);
(6)与(4)相同.

数组内容梳理完成,还有二维数组,二维数组与数组大同小异,随处可见,这里就不多比比了,再见.

JAVA修炼秘籍第四章《闭关修炼》相关推荐

  1. JAVA修炼秘籍第六章《鏖战》

    往期: JAVA 修炼秘籍第一章:<痛苦的折磨> JAVA 修炼秘籍第二章:<逐渐魔化> JAVA 修炼秘籍第三章:<绝地反击> JAVA 修炼秘籍第四章:< ...

  2. Java核心技术卷一 -第四章:方法参数

    系列文章目录 Java核心技术卷一 -第一章:java"白皮书"的关键术语 Java核心技术卷一 -第三章:数据类型 Java核心技术卷一 -第三章:变量与常量 Java核心技术卷 ...

  3. Kali Linux 网络扫描秘籍 第四章 指纹识别(三)

    第四章 指纹识别(三) 作者:Justin Hutchens 译者:飞龙 协议:CC BY-NC-SA 4.0 4.13 SNMPwalk SNMP 分析 SNMPwalk 是个更加复杂的 SNMP ...

  4. 【JAVA SE】第四章 变量和方法

    第四章 变量和方法 文章目录 第四章 变量和方法 一.变量 1.Java 变量类型 二.方法 1.什么是方法 2.方法的优点 3.方法的命名规则 4.方法的定义 5.方法调用 6.方法的重载 一.变量 ...

  5. Kali Linux 网络扫描秘籍 第四章 指纹识别(二)

    第四章 指纹识别(二) 作者:Justin Hutchens 译者:飞龙 协议:CC BY-NC-SA 4.0 4.6 Nmap 服务识别 虽然特征抓取是非常有利的信息来源,服务特征中的版本发现越来越 ...

  6. Kali Linux 网络扫描秘籍 第四章 指纹识别(一)

    第四章 指纹识别(一) 作者:Justin Hutchens 译者:飞龙 协议:CC BY-NC-SA 4.0 4.1 Netcat 特征抓取 Netcat 是个多用途的网络工具,可以用于在 Kali ...

  7. Kali Linux Web 渗透测试秘籍 第四章 漏洞发现

    第四章 漏洞发现 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 我们现在已经完成了渗透测试的侦查阶段,并且识别了应用所使用的服务器和 ...

  8. Kali Linux 秘籍 第四章 信息收集

    第四章 信息收集 作者:Willie L. Pritchett, David De Smet 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 攻击的重要阶段之一就是信息收集.为了能够实施攻击, ...

  9. Scikit-learn 秘籍 第四章 使用 scikit-learn 对数据分类

    第四章 使用 scikit-learn 对数据分类 作者:Trent Hauck 译者:飞龙 协议:CC BY-NC-SA 4.0 分类在大量语境下都非常重要.例如,如果我们打算自动化一些决策过程,我 ...

最新文章

  1. * ngIf和* ngFor在同一元素上导致错误
  2. sql server 2008 64位连接sql 2000服务器出错解决办法
  3. 聊聊rocketmq的BrokerHousekeepingService
  4. jetson nano 采坑记录
  5. 日志插件 log4net 的使用
  6. php3级分类,关于php非递归三级分类输出json数据
  7. 正确地实现以太币转账
  8. java浏览器渲染_优化浏览器渲染
  9. html实现视频录制,保存和回放
  10. Verilog中{}的应用
  11. 【夜读】有些人注定不会失败
  12. 偏导,梯度,Hesse矩阵的一些概念和求函数的极值
  13. ClusterStorage-5-配置ACLs与Quotas之设置ACLs
  14. MKS PI V1.0使用说明书
  15. 4.4 ipu_param_mem.h头文件分析
  16. 日本python教程视频_清华学姐推荐的python视频400集,拿走不谢
  17. 《Java黑皮书基础篇第10版》 第1章【笔记】
  18. ionic4-ts 字符串中获取汉字与去掉汉字
  19. java 16进制工具
  20. 三菱PLC各型号之间的区别

热门文章

  1. vba 判断文本框内容是否为空_VBA代码用SetFocus精确控制焦点事件
  2. 软件测试外包到蚂蚁金服,2019蚂蚁金服面试经验(服务运营岗,测试开发工程师等)...
  3. 【新闻早知道】10月13日 星期日
  4. poj 4084:拓扑排序
  5. PHP下拉如何选择比选一个,新手养鱼,如何能够选择一个观赏鱼的最佳饲养模式?其实也不难...
  6. 详解数据库设计的四个阶段
  7. 分布式系统的冰与火与技术栈
  8. 开机、重启和用户登录注销
  9. vmware 安装openstack,安装mysql,keyston glance,nova
  10. GUVV-T20GD-U 太阳光紫外线传感器TO-39U韩国GENICOM光电二极管杀菌灯监控