方法与数组
方法的概念和定义
在一个程序中,相同的程序段可能会多次重复出现,为了减少出错概率,一般将其单独提炼出来,写成子程序形式,以供多次调用。这类子程序在java语言中被称做方法,有些语言称之为函数
int Average(int x,int y)//int为输出类型,Average为方法名
{
int result;
result=(x+y)/2;
return result;
}
<!--方法中的x,y均为形式参数,简称形参,在定义时形参没有实际空间,只有在被调用之后,系统才为它调用实际的存储空间-->
一般情况下,上述方法第一行被称作方法头,若在方法后加上分号,则称之为方法原型,用来对方法进行声明。大括号中的内容被称作方法体,该方法体一般有return语句,用以将程序流程返回到调用处,并带回相应的返回值。
void Print-lines(int i)//意为输出i星号
{
for(int j=0;j<i;j++)
System.out.println("*******")
}
void Print-wang()//输出一个由星号组成的王
{
System.out.println("*****");
System.out.println(" * ");
System.out.println("*****");
System.out.println(" * ");
System.out.println("*****");
}
方法的调用
1调用方式
方法表达式
public class test{
static int Average(int x,int y)//int为输出类型,Average为方法名
{
int result;
result=(x+y)/2;
return result;
}
public static void main(String[] args)
{
int a=12;
int b=24;
int ave=Average(a,b);
System.out.println("Average of"+a+"and"+b+"is"+ava+);
}
}
方法语句
把方法调用作为一个语句
public class test{
static void Print-wang()//输出一个由星号组成的王
{
System.out.println("*****");
System.out.println(" * ");
System.out.println("*****");
System.out.println(" * ");
System.out.println("*****");
}
public static void main(String[] args)
{
Print-wang();
}
}
方法参数
该情况是将该方法的返回值作为实参进行传送,因此要求该方法必须有返回值。
public class test{
static int Average(int x,int y)//int为输出类型,Average为方法名
{
int result;
result=(x+y)/2;
return result;
}
public static void main(String[] args)
{
int a=12;
int b=24;
System.out.println("Average"of"+a+"and"+b+"is"+Average(a,b));
}
}
2.参数传递
int a=2,b=3;
Average(a,b);
System.out.println()//此处将实参a,b传递给形参a,b
3.返回值
返回值类型 方法名(类型 形参1,类型 形参2.....)
{
方法体
return 表达式//return(表达式)
}
4.方法嵌套以及递归(与C语言相同)
方法嵌套
递归
变量作用域
局部变量
-
局部变量又称作内部变量,局部变量是在方法内做定义说明的,在各个方法(包括main方法)中定义的变量及方法的形式参数均为局部变量,其作用于仅限于方法内,离开该方法后再使用这种变量是对非法的,他已经被释放不存在了
int ml(int a)/*方法ml*/
{
int b,c......
}
int m2(int x)/*方法m2/*/
{
int y,z......
}
public.static,void.main(String args[]){
int m,n......
}
在ml中定义了三个变量:a为形参变量,b、c为一般变量,它们均属于局部变量,仅在ml范围内有效,在其他范围则失去效果,同理,m2和main函数中的变量仅在对应范围内有效。
关于局部变量的作用域,应该注意一下几点:
-
主方法中定义的变量只能在主方法中使用,不能再其他方法使用。同时主方法中也不能使用其他方法中定义的变量。因为主方法也是一个方法,与其他方法是平行关系,这一点应特别注意
-
形参变量是属于被调方法的局部变量,而实参变量一般是属于主调方法的局部变量。
-
允许在不同方法中使用相同变量名,他们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆
-
在复合语句中的变量,其作用域也只在复合语句范围内。
数组
数组的概念
数组的声明和创建
一维数组
数据类型 [] 数组名:
或者
数据类型 数组名[];
注意:java语言在定义数组时,不能马上制定数组元素的个数
创建数组的方法:初始化方式和new方式
-
初始化方式:直接给数组的每一个指定元素一个初始值,系统自动根据所给的数据个数分配相应的数据空间
数据类型 数组名[]={数据1,数据2......}
short x[]={1,2,3,4,5,6}
-
new操作方式
数据类型 数组名[]=new 数据类型[元素个数]
数据类型 数组名[];
数组名=new 数据类型[元素个数];
二维数组
二维数组的声明如下:
数据类型 [ ] [ ] 数组名;
或者:
数据类型 数组名 [] [];
创建二维数组的方式:初始化值方式和new方式
注意:java语言支持非等长数组