当前位置:首页 » 《关于电脑》 » 正文

【Java 语言】方法、数组

25 人参与  2024年10月28日 12:01  分类 : 《关于电脑》  评论

点击全文阅读


方法 

方法:Java的方法有点类似于C语言的函数,使用方法可以让代码读起来简单一点、可以直接调用方法不用多次写重复的代码

方法的定义:修饰符 返回值类型 方法名 (参数类型 参数名){方法体;  return 返回值; };

修饰符:public static;

返回值类型:必须和返回值一致,不一致就会报错;如果没有返回值,返回值类型一定是void;

方法名:使用小驼峰命名法,方法名得“知名其义”;

参数:与调用的实参一致;如果没有就不用写;

参数名:没有硬性要求;

重点:方法必须在所调用的类里面;在Java中没有顺序可以写主方法前也可以后;方法不能嵌套定义但是能嵌套调用;没有方法声明这种说法。

方法的执行过程:调用方法--->传递参数--->找到方法地址--->执行被调方法的方法体--->被调方法结束返回--->回到主调方法继续往下执行;

方法的实参和形参:形参不改变实参的值,形参只是方法在定义时需要借助的一个变量,用来保存方法在调用时传递过来的值。

      下面是通过方法交换两个数的值,实参a和b中的值拷贝了一份传递给了形参a和b,形参的数交换不改变实参,最终结果没有交换。

       如果想要交换的话可以传引用类型参数(数组),创建一个两个数的数组,将数组作为实参传址给形参,这是形参和实参同时指同一个数组,这样改变形参就能改变实参。 

public static void toswap(int a, int b){//这里的a和b是形参    int temp = a;    a = b;    b = temp;    }public static void main(String[] args) {    int a = 5;    int b = 10;    System.out.println("交换前:a = "+a+", b = "+b);//a = 5, b = 10    toswap(a,b);//这里的a和b是实参    System.out.println("交换后:a = "+a+", b = "+b);//a = 5, b = 10}

方法重载 

方法重载:方法名相同参数列表必须不同(个数、类型、次序) ;返回类型无关(只是返回类型不一样会报错);

public static int add(int a, int b){    return a + b;}public static double add(double x, double y){    return x + y;}public static void main(String[] args) {    double c = 10.3;    double d = 20.7;    int a = 5;    int b = 10;    System.out.println("int类型的两个数相加:"+add(a, b));    System.out.println("double类型的两个数相加:"+add(c, d));}

方法中不能定义两个名字一样的变量,那为什么类中就 可以定义方法名相同的方法呢?

       原因是:方法全路径名+参数列表+返回值类型,构成方法完整的名字。

递归 

递归:在一个方法中不断的自己调用自己,前提是有一个终止条件不然就成为一个死递归;

public static int fac1(int n){    if (n == 1){        return 1;    }else{        return n * fac1(n-1);    }}public static void main4(String[] args) {    int n = 5;    System.out.println("递归求n = "+n+"的阶乘:"+fac1(n));}

数组

数组:数组是存储相同类型的元素,在内存中是顺序连续存放的;数组是有限个类型相同的变量的集合,并通过数组名和索引来引用。

元素:数组中的每个变量称为数组的分量,也称为数组的元素或下标变量。

索引:用于区分数组的各个元素的数字编号称为下标或索引。在大多数编程语言中,数组索引从0开始。

类型:数组中的元素必须具有相同的数据类型,如整数、浮点数、字符等。

数组的创建:

1). 在Java中数组类型是需要带上[](例:int []),后面加数组名,new int[10]意思就是新建一个int类型且长度是10的数组,所以想要什么样的数组就new+类型[长度],这个长度也可以是变量,不一定是常量;

2).  也可以放在创建和数据赋值一起,[]放数组名前后都可以,放前一般是Java,放后一般是C语言;

int[] arr1 = new int[10]; //这样创建的数组元素默认全部为0int[] arr2 = {1, 2, 3, 4, 5, 6, 7, 8, 9};

 下面是数组创建的正错示范:

int[] arr1;array1 = new int[10];//可以int[] arr2;array2 = new int[]{10, 20, 30};//可以int[] arr3;array3 = {1, 2, 3};//不可以省略格式new int[]

引用类型

之前讲了基本数据类型没有讲引用数据类型,现在就来说说引用数据类型。它一般称为对象的引用,存储的是对象所在的空间地址的,而不是存储对象本身,但是可以通过引用变量操作对象。

引用变量:就是一个变量存储的数据是地址;当传参是引用变量是,形参就可以改变实参的值;

在说这个引用类型要知道的几个点:

1).局部变量的使用周期是在它使用的方法中进行;

2).如果在堆区的对象不被使用时,JVM就会回收这个对象;

3).对象一定在堆区,但是引用不一定在栈区;

认识null

在Java中null时“空引用”的意思 ,不指向任何对象。所以当定义一个数组却不知道指向哪一个对象时就可以用null(不指向对象);当对null进行访问时则会出现编译错误。

数组的应用场景

保存数组数据

在Java中有特有的将数组转成字符串【Arrays.toString(数组)】 ,在使用这个Arrays类时需要导包才可以使用,这个类使用起来很方便,不用向C语言数组一样for循环输出。

       当一个引用变量赋值给另一个引用变量时,赋值是将引用变量的里的指向对象的地址赋值给另一个引用变量,这时两个引用变量都指向同一个对象,所以这两个引用变量都可以改变对象的值。

二维数组

二维数组本质上还是一维数组,画图看看为什么说是一维数组:

二维数组不能省略行(与C语言相反),假如只写行会出现什么问题呢,我们看看:


点击全文阅读


本文链接:http://zhangshiyu.com/post/178912.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1