当前位置: 首页 > news >正文

java泡沫_Java初认识--函数和数组

一、函数

1、函数的定义

函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法。

java中最小的功能单元就是函数。

2、函数的格式

修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参2)

{

执行语句;

return返回值;

}

返回值类型:函数运行后的结果的数据类型。

参数类型:是形式参数的数据类型。

形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。

实际参数:传递给形式参数的具体数值。

return:用于结束函数。

返回值:该值会返回给调用者。

3、函数的应用

编写代码就是不断的实现功能,java中最小的功能单元就是函数,所以我们写代码的时候,只要把功能定义在一个独立的函数中,不要把代码都放在主函数里面,主函数的功能就是调用函数,这样就提高了代码的复用。

如何定义一个函数呢?

1,:既然函数时一个独立的功能,那么该功能的运算结果是什么先明确;

2:明确在定义该功能的过程中是否需要未知的内容参与运算;

范例1 需求:计算任意一个 整数乘以3+5 的结果。

1:明确功能的结果是一个整数*3+5的结果;返回值类型为int型。

2:在实现该功能的过程中没有未知内容参与运算;明确函数的参数列表(参数类型和参数的个数)。

public class FunctionDemo {

public static void main(String[] args){

int num = 3;

System.out.println(num*3+5);//输出3*3+5的结果

num = 8;

System.out.println(num*3+5);//输出8*3+5的结果

}

}

// 发现以上的运算因为获取不同数据的运算结果,代码出现了重复。

// 为了提高代码的复用性,对代码进行了抽取,将这个部分定义成一个独立的功能,方便日后使用。

// Java中对功能的定义是通过函数的形式来实现的。

// 需要定义功能,完成一个整数的*3+5的运算,并打印结果。

1,先明确函数定义的格式。

整数*3+5的返回值是个整数,返回值类型为int型。

int getResult (int num)

{

return num*3+5;

}//定义这个功能,完成任意一个整数*3+5,并把这个结果返回。这个函数时独立存在的,等待主函数的调用。

2、下面我们进行主函数对这个功能的调用。

public class FunctionDemo {

public static void main(String[] args){

int x = getResult(2);//我们调用getResult这个功能函数,传入数字2进行2*3+5的运算。

int x = getResult(6);

System.out.println("x="+x);

}

public static int getResult(int num){当然我们也可以直接在这个功能中输出结果,不用返回给主函数,这时返回值类型用void(空)这个关键字来表示;当返回值类型是void时,函数中的return语句可以省略不写。

return num*3+5;

}

}

范例2 比较两个数的大小

public class FunctionDemo {

public static void main(String[] args){

boolean C = getMax(6,3);//主函数调用getMax函数。

System.out.println(C);

}

public static boolean getMax(int a,int b ){

return a>b;这个函数是最简化的,可以写成三元运算符return a>b?true:false;

}

}

范例3:打印矩形

public class FunctionDemo {

public static void main(String[] args){

Loop(6,3);//我们只需要在这里调用Loop函数,输入我们想要的行数和列数,就可以了,不用再重复写代码。

}

public static void Loop(int row,int col ){//因为没有结果,直接打印了,所有返回值类型为void;有两个未知的内容,行数和列数不确定。

for(int x=0;x

for(int y=0;y

System.out.print("*");

}

System.out.println();

}

}

}

二、数组

1、数组的概念

数据类型有两种,一种是基本数据类型,一种是引用数据类型,数组就是引用数据类型中的其中一种。

同一种类型数据的集合,其实数组就是一个容器。

数组最大的优点就是:可以自动给数组中的元素从0开始编号,方便操作这些元素。我们可以不知道这些元素的名称,我需要知道她的编号就可以了。

2、数组的格式

格式1、元素类型[] 数组名 = new 元素类型[元素个数或数组长度]

关键字new:用来在内存中产生一个容器实体,数据存储,必须得有一个地方,用new操作符来完成。

需求:定义一个可以存储3个整数的容器。

int[] x = new int[3]

//用new操作符在内存中定义了一个真实存在的数组,可以存储3个整数。

// 任何一个变量都应该有自己的数据类型,但是这个x并不是int类型的,而是数组类型。x前面的int代表的是元素类型是数组的。

// 局部变量a在栈内存中,new出来的实体在堆内存中,堆内存中全是实体,包括数组和对象(数组也是对象)。x引用这个new出来的数组。

格式2:int[] x = new int[]{2,6,1}

创建一个数组实体,并给这个数组中的每个元素赋值,用于数组元素明确的情况,不用指定数组的长度,不容易出错。

需求:打印数组中某一个角标的值

格式1:

public class FunctionDemo {

public static void main(String[] args){

int[] x = new int[3];

x[0]=1;//如果不指定具体数值的话,默认都为0;

x[1]=3;

x[2]=9;

System.out.println(x[1]);

}//打印结果就是3。

}

格式2:

public class FunctionDemo {

public static void main(String[] args){

int[] x = new int[1,3,9];

System.out.println(x[1]);

}

}

3、数组的应用

范例1:需求:遍历数组中所有角标的值。

public class FunctionDemo {

public static void main(String[] args){

int[] arr = new int[]{1,9,6};

for(int x=0;x<3;x++)

System.out.println("arr["+x+"]"+"="+arr[x]);

}

}

// 数组中有一个属性可以直接获取到数组的元素个数,即:length,只需要通过 (数组名称.length)的形式就可以得到数组的长度。

范例2:打印数组长度和数组中所有元素的和。

public class FunctionDemo {

public static void main(String[] args){

int[] arr = new int[]{1,9,6};

int sum = 0;

System.out.println("length="+arr.length);//打印数组长度

for(int x=0;x

sum+=arr[x];//打印数组中所有元素的和

System.out.println("arr["+x+"]"+"="+arr[x]);

}

System.out.println("sum="+sum);

}

}//打印的结果为:length=3

arr[0]=1

arr[1]=9

arr[2]=6

sum=16

范例3:需求:打印数组中的元素,中间用,隔开,并打印元素的和。构造一个独立的函数,使用主函数调用的方法。

public class FunctionDemo {

public static void main(String[] args){

int[] arr = new int[]{1,9,6};

printArry(arr);//printArray函数中已经实现了这些功能,主函数只需要传入一个数组,进行调用即可。

}

public static void printArry(int[] arr){

int sum = 0;

for(int x=0;x

if(x!=arr.length-1)//用来去掉最后一个元素后面的,的

System.out.print(arr[x]+",");

else{System.out.print(arr[x]);}

sum+=arr[x];

}

System.out.println();

System.out.println("sum="+sum);

}

}

范例4:冒泡排序

public class FunctionDemo {

public static void main(String[] args){

int[] arr = new int[]{1,9,6};

//排序前:

printArry(arr);

//排序:

bubbleSort(arr);

//排序后:

printArry(arr);

}

public static void printArry(int[] arr){

for(int x=0;x

if(x!=arr.length-1)

System.out.print(arr[x]+",");

else{System.out.print(arr[x]);}

}

System.out.println();

}

public static void bubbleSort(int[] arr){

for(int x=0;x

for(int y = 0;y

if(arr[y]>arr[y+1]){

int temp = arr[y];

arr[y] = arr[y+1];

arr[y+1] = temp;

}

}

}

}

}

相关文章:

  • java虚拟机内存溢出的三个原因_JVM发生内存溢出的原因分析及解决方案
  • mysql更新多个字段php_PHP:如果语句无意中导致多个MySQL列更新?
  • properties java jar_propertiesutil jar包
  • python段落注释的语法格式是_Python 基础语法
  • python读取xml配置_python解析xml配置文件
  • java 接口数据类型_Java中的基本数据类型与引用数据类型
  • java 红包接口开发_java调用微信现金红包接口的心得与体会总结
  • java项目中学到了什么_我们能从Java的HelloWorld中学到什么?
  • js java md5加密_MD5加密 (java、js)
  • junit mysql_使用Junit单元测试及操作MySQL数据库时出现错误及解决方法
  • java最简单的算术程序_java – ANTLR4访问者模式简单的算术示例
  • java版我的世界有溺尸_我的世界溺尸怎么找
  • mysql制作html静态网页6_PHP生成HTML静态页面实例代码
  • Thread核心java语句_【经典干货】《Java 多线程编程核心技术》学习笔记及总结(中)...
  • java核心技术卷2 第9版 pdf,Java核心技术 卷II 高级特性(原书第9版) PDF
  • JavaScript-如何实现克隆(clone)函数
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • angular2 简述
  • centos安装java运行环境jdk+tomcat
  • ERLANG 网工修炼笔记 ---- UDP
  • es6
  • JWT究竟是什么呢?
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • overflow: hidden IE7无效
  • Python学习之路13-记分
  • RxJS: 简单入门
  • SegmentFault 2015 Top Rank
  • SpiderData 2019年2月13日 DApp数据排行榜
  • SpingCloudBus整合RabbitMQ
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 聊一聊前端的监控
  • 面试总结JavaScript篇
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 用jQuery怎么做到前后端分离
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​io --- 处理流的核心工具​
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (4)logging(日志模块)
  • (C++17) optional的使用
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (南京观海微电子)——I3C协议介绍
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .form文件_SSM框架文件上传篇
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET gRPC 和RESTful简单对比
  • .NET Standard 的管理策略
  • .NetCore部署微服务(二)
  • .NET大文件上传知识整理