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<row;x++){
for(int y=0;y<col;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<arr.length;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<arr.length;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<arr.length;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<arr.length-1;x++){
for(int y = 0;y<arr.length-x-1;y++){//-x的目的是让每一次比较的元素减少;-1的目的是:避免角标越界。
if(arr[y]>arr[y+1]){
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
}
Java初认识--函数和数组的更多相关文章
- 第二十三节:Java语言基础-详细讲解函数与数组
函数 函数在Java中称为方法,在其他语言中可能称为函数,函数,方法就是定义在类中具有特定功能的程序.函数,在Java中可称为方法. 函数的格式: 修饰符 返回值类型 函数名(参数类型 参数1, 参数 ...
- java基础基础总结----- 关键字、标识符、注释、常量和变量、运算符、语句、函数、数组(三)
Java语言基础组成:关键字.标识符.注释.常量和变量.运算符.语句.函数.数组 一.标识符 标识符是在程序中自定义的一些名称,由大小写字母[a-zA-Z],数字[0-9],下划线[ _ ],特殊字符 ...
- C++和Java函数传递数组参数比较
如果我想实现函数参数传递数组的业务需求,在Java中很容易实现,如下所示.因为Java有.length方法,可以获取数组的长度. public class Test { public static v ...
- java String.split()函数的用法分析
java String.split()函数的用法分析 栏目:Java基础 作者:admin 日期:2015-04-06 评论:0 点击: 3,195 次 在java.lang包中有String.spl ...
- Android使用JNI(从java调用本地函数)
当编写一个混合有本地C代码和Java的应用程序时,需要使用Java本地接口(JNI)作为连接桥梁.JNI作为一个软件层和API,允许使用本地代码调用Java对象的方法,同时也允许在Java方法中调用本 ...
- 用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况
用JAVA写一个函数.功能例如以下:随意给定一组数,比如{12,60,-8,99,15,35,17,18},找出随意数相加之后的结果为35(随意设定)的情况. 能够递归算法来解: package te ...
- JavaScript---网络编程(2)-函数与数组
上节,学完循环了~ 现在学Javascript的函数和数组. JavaScript语法 每一种语言都有自己的语法规则,JS语法与Java很像,所以学习起来比较容易.JS中也一样有变量,语句,函数,数组 ...
- java中main函数解析(转载)
从写java至今,写的最多的可能就是主函数 public static void main(String[] args) {} 但是以前一直都没有问自己,为什么要这么写,因为在c语言中就没有这样子的要 ...
- java对获取的字节数组进行处理
java对获取的字节数组bytes[]进行处理: 第一种,直接将该字节数组转换为字符串(部分): String content = ,); //从位置0开始获取2个字节 这样,对获取的数据报进行全部转 ...
随机推荐
- ubuntu 在下面 hadoop 安装
这两天已经安装hadoop 这些道路是曲折的,记录它 在redhat安装后一直无法开始datanode,因为jdk 问题,换了一个jdk后问题依然,自己猜測是redhat版本号太低的原因,于是仅仅好舍 ...
- Swift继承
//声明一个基类 class vehicle { var maxPassenger : Int = 0 var manufacturer : String! func description() -& ...
- bootstrap使用汇总
//大多数功能都能够指定data属性来指定 但是,有必要的情况下使用jquery由于事件是不同的过程 //活动通常有两种状态show shown 通用和过去的 <!DOCTYPE html> ...
- Unity3d 导入图像尺寸失真解决方案
导入到unity3d内的图像被默认长宽变换为满足2^n关系. 例如以下图,我有张图片名称为984plus598表示我尺寸为984*598.拷贝到unity3d中后的大小为1024*512 方法一: 在 ...
- 中国的手写输入法iOS8.1在崩溃
当中国的手写输入法.会导致app收起.于debug时刻.报错: 2014-10-22 14:45:10.269 App[524:170755] -[UIKBBlurredKeyView candida ...
- (DDD)仓储的思考
(DDD)仓储的思考 为什么需要仓储呢?领域对象(一般是聚合根)的被创建出来后的到最后持久化到数据库都需要跟数据库打交道,这样我们就需要一个类似数据库访问层的东西来管理领域对象.那是不是我们就可以设计 ...
- ActionBarActivity: cannot be resolved to a type
"the import android.support.v7 cannot be resolved " or "ActionBarActivity: cannot be ...
- SQL Server表分区详解
原文:SQL Server表分区详解 什么是表分区 一般情况下,我们建立数据库表时,表数据都存放在一个文件里. 但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆 ...
- 百度官方wormHole后门检测记录(转)
本次这个安卓后门真是哔了狗了,刚加入大安卓阵营就出了这个篓子,跟你root不root和什么安卓版本没有版毛钱关系,完全是百度SDK官方提供的后门,不是漏洞,人为的. 乌云地址:http://drops ...
- Java存储区域——JVM札记<一个>
Java当虚拟机数据区域 执行数据区主要包括:方法区.堆.VM栈.本地方法栈.程序计数器. 当中方法区和栈是线程共享的区域,另外三块区域是每一个线程私有的区域.各个数据区的功能简单说明例如以下: 程序 ...