数组:
1.定义方法:
1)type array_name[]=null; //声明数组或
type[] array_name=null;//声明数组,不包含任何内容,只分配内存(栈空间)来保存指向数 组实体地址的变量array_name,此时它的值为null
array_name = new type[element_num]; //为数组分配堆内存空间,并把这块内存空间地址赋值给array_name,可以有多个栈内存中的变量指向它,也就是可以把它赋值给多个引用变量。这里分配的空间大小为sizeof(array_name)*element_num.
如:int arr[]=null;
arr = new int[5];
2)可以这样写:
type array_name[]=new type[element_num];
for(int i=0;i<element_num;i++)
array_name[i]=I;
以上数组的初始化为动态初始化,除此之外还可以对数组静态初始化:
type array_name[]={1,2,3,4,5};
2.元素表示方法
array_name[index] (index是从0开始的整数,即0<=index<array_name.length)
3.二维数组的声明
type array_name[][];//声明数组
array_name=new type[row_num][col_num];//实例化二维数组
for(int i=0;i<row_num;i++) //动态初始化,赋值
{
for(int j=0;j<col_num;j++)
array_name[i][j]=val;
}
或
type array_name=new type[row_num][col_num];//声明数组并开辟内存空间
二维数组也可以用静态初始化:
type array_name={{第0行初值},{第1行初值},…,{第n-1行初值}};
**数组的声明、实例化和赋值也与一、二维类同。
方法:
方法就是一段可供程序反复调用的代码段。它本身与函数类同,只是叫法不同。
方法的定义:
[public] [static] return_type method_name([para_list])//static表明此方法由类调用而非对象调用,如果不加static则表明此方法由对象调用,public表明此方法的访问权限
{
method_body;
}
如果方法不用传递参数,那么就不用写参数列表,只在方法名后面写一空括号(),如果方法没有返回值,那么方法返回类型为void,且可以省略方法体中的return语句。
方法名命名规则:
除第一个单词的首字小写之外,其余单词的首字母大写。
方法的重载:
方法名相同,方法的参数类型和个数不同。通过传递不同的参数个数、不同的参数类型来调用同名的不同方法来实现不同的功能。重载方法与方法的类型无关。
如:public static int xx(int a,int b);
public static int xx(int a,int b,int c);//是重载
public static void xx(int a,int b);//不是重载方法
用return语句退出方法
方法的递归调用:
条件:有明确的结束条件,传入不同的参数值实现递归调用。
递归调用要小心,避免出现内存溢出。
数组的引用传递
方法的参数可以是基本类型,也可以是引用类型,譬如数组。当参数为引用类型时,所传递的参数类型要与方法定义的对应参数类型相匹配,且在方法调用的过程中如果改变了引用参数本身,那么这个改变将保存下来。
如:
public static void main(String[] args)
{
int tmp[]=fun();
print(tmp);
}
public static void print(int x[])
{
for(int i=0;i<x.length;i++)
{
System.out.println(x[i]+”、”);
}
}
public static int[] fun()
{
int aa[]={1,3,5,7,9};
return aa;
}
运行结果:1,3,5,7,9
Java新特性对数组的支持
可变参数:
public static void main(String[] args)
{
System.out.print(“不传递参数(fun()):”);
fun();
System.out.println(“/n传递1个参数(fun(1))”);
fun(1);
System.out.println(“/n传递5个参数(fun(1,2,3,4,5))”);
fun(1,2,3,4,5);
}
public static void fun(int… arg)
{
for(int i=0;i<arg.length;i++)
{
System.out.println(arg[i]+”、”);
}
}
运行结果:
不传递参数(fun()):
传递1个参数(fun()):1、
传递5个参数(fun(1,2,3,4,5)):1、2、3、4、5
foreach输出:
for(type var_name : arr_name/para_name)
{
……
}