黑马程序员_Java数组与方法

android培训java培训

数组:一组数,一组变量。例:定义100个整形变量

数组属于引用类型,数组型数据是对象,数组中的每个元素相当于该对象的成员变量。

数组中的元素可以是任意数据类型,包括基本数据类型和引用数据类型。

Java语言中生命数组时不能指定其长度。例:int a[5];非法

数组属于引用类型的数据,在声明时,默认的初始值为“null”。

null:此数据没有,暂时不能是使用。

引用数据类型都必须开辟空间,使用new关键字开辟。数组下标从0开始。

public class JavaDemo33

{

       public static void main(String args[])

       {

              int i [] = null;//声明一个数组i,初始值为null 动态声明数组方法

              i = new int [10];

//new为数组分配内存空间,定义数组内容,包含10个整形变量,初始值为0

              //数组的使用看下标,数组元素为0-9

              System.out.println(i[0]);//打印i数组中的第一个元素

       }

}

在数组声明时不能声明其个数,只能用new开辟空间。和其它语言有区别。

public class JavaDemo34

{

       public static void main(String args[])

       {

              int i [] = null;

              i = new int [10];

              for (int x=0;x<10 ;x++ )//打印数组中的元素和值

              {

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

              }

       }

}

引用传递:传递内存地址的使用权。永远要在脑海中考虑内存的变化。

public class JavaDemo38

{

       public static void main(String args[])

       {

              int i []={1,2,2,2,23,3,4,5,6,7,8};

              System.out.println("i的大小"+i.length);

              for (int x=0;x<i.length ;x++ )

              {

                     System.out.println("i的初值"+i[x]);

              }

              System.out.println();

              int y[]=i;

              System.out.println("y引用传递后大小"+y.length);

       }

}

public class JavaDemo35

{

       public static void main(String args[])

       {

              int i [] = null;

              i = new int [10];

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

              {

                     i [x] = x * x;

              }

              System.out.println("————改变之前————");

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

              {

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

              }

              int y[]=i;//为开辟的堆内存空间声明一个别名

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

              //y中的内容进行修改,x中的内容也随之被修改,叫做引用传递

              {

                     y[x]=x+1;

              }

              System.out.println("————改变之后————");

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

              {

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

              }

       }

}

数组的初始化:

       动态初始化:数组定义与为元素分配空间(赋值)分开进行,先开辟数组空间,之后为每个元素在赋值。

       静态初始化:定义数组时同时为数组元素分配空间并赋值。

Java中为了避免出现数组越界的错误,准备了一个length属性,空通过其求出数组大小。

public class JavaDemo36

{

       public static void main(String args[])

       {

              int i[]={1,2,3,4,5,6,7,8,9,10,40,444,5555,11};//静态声明数组方式

              System.out.println("i数组的大小: "+i.length);//输出i数组内的元素大小

              /*

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

              {

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

              }*/

              for (int x=0;x<i.length ;x++ )//此方法更简单

              {

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

              }

       }

}

二维数组:

public class JavaDemo37

{

       public static void main(String args[])

       {

           int a[] []={{1,3,5},{2,4,6},{11,22,33}};

          for (int x=0;x<a.length ;x++ )

              {

                     for (int y=0;y<a[x].length ;y++ )

                     {

                            System.out.print(a[x][y]+"\t");

                     }

                     System.out.println();

              }

       }

}

方法:一段可以重复调用的代码。形式:

public static 方法返回值 方法名称([参数列表])

{

              语句;

              [return返回值];

}

方法调用在Java中有多种形式,现在所说的方法就是可以用main方法直接调用的方法。

public class JavaDemo39

{

       public static void main(String args[])

       {

              print();

       }

   // 定义一个方法,此方法用于打印Hello World

       // public static必须加上,因为是由主方法直接去调用

       // void:表示此方法不需要任何返回值

       // print:表示方法的名称,可以任意编写

       // 方法名称编写时:第一个单词首字母小写,之后每个单词的首字母大写

       public static void print()

       {

              System.out.println("******************");

              System.out.println("** Hello  Wor0d **");

              System.out.println("******************");

       }

}

如果定义一个有返回值的方法,将void换成相应的类型即可。

public class JavaDemo40

{

       public static void main(String args[])

       {

              int sum = add(10,30);//调用add方法 sum用来接受add方法的返回值

              System.out.println(sum);

       }

       public static int add(int x ,int y)

       //定义一个两数相加的方法

       //xy只在add方法中起作用,局部变量

       {

              int temp=x+y;

              return temp;//如果返回值,则要加入return语句

       }

}

方法重载:方法名称相同,但可以根据传入的参数的类型和个数完成不同的功能。例:print()方法就可以接受各种不同的参数。

public class JavaDemo41

{

       public static void main(String args[])

       {//被重载的add方法

              add();

              add(1);

              add(1,11);

              add(10.0f);

       }

       public static void add()

       {

              System.out.println("一个无参数的add方法");

       }

       public static void add(int i)

       {

              System.out.println("有一个int参数的add方法");

       }

       public static void add(int i,int j)

       {

              System.out.println("有二个int参数的add方法");

       }

       public static void add(float i)

       {

              System.out.println("有一个float参数的add方法");

       }

}

Java中的这种特性也成为多态性——方法的多态性。通过同一个方法完成不同的功能。

public class JavaDemo42

{

       public static void main(String args[])

       {

              int i[]=new int [10];

              inti(i);

              print(i);

       }

       //声明一个方法,为数组中的内容初始化

       //把堆内存空间的内容取出,在方法中进行加工

       public static void inti(int x[])

       {

              for (int y=0;y<x.length ;y++ )// 进行数组中元素值的初始化

              {

                     x[y]=y+1;

              }

       }

       //定义第二个方法用于打印数组

       public static void print(int x[])

       {

              for (int y=0;y<x.length ;y++ )

              {

                     System.out.println("数组["+y+"] = "+x[y]);

              }

       }

}

让方法返回一个数组:

public class JavaDemo43

{

       public static void main(String args[])

       {

              int i[]=inti(40);

              print(i);

       }

       //用方法返回一个数组

       public static int[] inti(int len)//根据数组的大小

       {

              //java中的数组可以动态开辟

              int x[]=new int [len];

              for (int y=0;y<x.length ;y++ )// 进行数组中元素值的初始化

              {

                     x[y]=y+1;

              }

              return x;//return时不用加“[]

       }

       //定义第二个方法用于打印数组

       public static void print(int x[])

       {

              for (int y=0;y<x.length ;y++ )

              {

                     System.out.println("数组["+y+"] = "+x[y]);

              }

       }

}

Java中提供了大量的API方法,熟练使用API可以编写出任意的程序。

public class JavaDemo44

{

       public static void main(String args[])

       {

              int source[] = {1,2,3,4,5,6} ;

              int dest[] = {11,22,33,44,55,66,77,88,99} ;

              System.out.println("------- dest数组拷贝之前 ---------") ;

              printArray(dest) ;

              // 进行数组的拷贝

              System.arraycopy(source,0,dest,0,source.length) ;//sourse.lenght表示所有

             

              System.out.println("------- dest数组拷贝之后 ---------") ;

              printArray(dest) ;

       }

       public static void printArray(int x[])

       {

              for (int i=0;i<x.length;i++)

              {

                     System.out.println("数组["+i+"] = "+x[i]) ;

              }

       }

};

基本数据类型是一个值传递的过程,只传一个具体的值或字符。

引用数据类型,传递的是地址,方法已经明确验证。方法没有任何返回值,靠的是修改内存空间。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值