Java教程

JavaDay05

本文主要是介绍JavaDay05,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

方法

Java方法是语句的集合,它们在一起执行一个功能。

  • 方法是解决一类问题的步骤的有序组合
  • 方法包含于类或者对象中
  • 方法在程序中被创建,在其他地方被引用

一个方法只完成一个功能,这样有利于我们后期的扩展

方法的定义

  • 修饰符:是可选的,告诉编译器如何调用改方法。定义了该方法的访问类型。(public static final)
  • 返回值类型:方法可能会返回值。returnvalueType是方法返回值的数据类型。有些方法执行所需的操作,没有返回值,用void。
  • 方法名:方法的实际名称。
  • 参数类型:参数是一个占位符。
  • 方法体:方法体包含具体的语句,定义该方法的功能

方法调用

  • 调用方法:对象名.方法名(实参列表)
  • 当方法返回一个值时,方法调用通常被当作一个值
  • 如果方法返回值时void,方法调用一定时一条语句

值传递(Java)和引用传递

方法的重载

重载就是在一个类中,有相同的函数名称,但形参不同的函数。
方法重载的规则:
  • 方法名称必须相同。
  • 参数列表必须不同。(个数不同,类型不同)
  • 方法的返回类型可以相同也可以不同。
  • 仅返回类型不同不足以成为方法的重载。
package com.Java.code.method;

public class Test01 {
    //main方法
    public static void main(String[] args){
        //实际参数:实际调用传递给他的参数
        int sum = add( 1,2,3);
        System.out.println(sum);
    }

    //加法
    //形式参数:用来定义作用的
    public static int add(int a,int b,int c){
        return a+b+c;
    }
    public static int add(double a,double b){
        return  (int)(a+b);
    }
    public static int add(int aaa,int bbb){
        return aaa+bbb;
    }

}

可变参数

  • 在方法声明中,在指定参数类型后加一个省略号(...)。
  • 一个方法只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

递归

自己调用自己
递归结构包括两个部分
  • 递归头:什么时候不调用自己方法。如果没有头,将陷入死循环
  • 递归体:什么时候需要调用自身方法。

数组

数组的定义

  • 数组是相同类型数据的有序集合
  • 数组描述的是相同类型的若干个数据,安装一定的先后次序排列组合而成。
  • 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下表来访问他们。

数组的声明:

package com.Java.code.array;

public class Test01 {
    public static void main(String[] args) {
        int[]  nums;//声明一个数组
        nums = new int[10];//创建一个数组

        nums[0]=1;
        nums[1]=2;
        nums[2]=3;
        nums[3]=4;
        nums[4]=5;
        nums[5]=6;
        nums[6]=7;
        nums[7]=8;
        nums[8]=9;
        nums[9]=10;
        int sum = 0;
        for (int i = 0; i <nums.length ; i++) {

            sum=sum+nums[i];
        }
        System.out.println(sum);
    }
}

java.lang.ArrayIndexOutOfBoundsException

数组下标越界。

数组初始化

静态初始化
//静态初始化:创建+赋值
int[] a = {1,2,3,4,5,6,7,8};
System.out.println(a[0]);
动态初始化
//动态初始化 包含默认初始
int[] b = new int[10];
b[0]=10;
System.out.println(b[0]);

数组的使用

普通的for循环
public class Test03 {
    public static void main(String[] args){
        int[] arrays = {1,2,3,4,5,6,7,8,9,10};
        //打印全部的数组元素
        for (int i = 0; i <arrays.length ; i++) {
            System.out.println(arrays[i]);
        }
        System.out.println("===================");
        //计算所有元素的中和
        int sum = 0;
        for (int i = 0; i <arrays.length ; i++) {
            sum = sum+arrays[i];
        }
        System.out.println(sum);
        System.out.println("====================");
        //查找最大元素
        int max = arrays[0];
        for (int i = 1; i <arrays.length; i++) {
            if(arrays[i]>max){
                max = arrays[i];
            }
        }
        System.out.println("max="+max);
    }
}
增强型for循环

数组.for

        int[] arrays = {1,2,3,4,5};
        //JDK1.5  没有下表
//        for (int array : arrays) {
//            System.out.println(array);
//        }
作为数组方法
public static void Arrays(int arrays[]){
    for (int i = 0; i <arrays.length ; i++) {
        System.out.println(arrays[i]+" ");
    }
}
数组做返回值
public class Test04 {
    public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};
        //JDK1.5  没有下表
//        for (int array : arrays) {
//            System.out.println(array);
//        }
        int[] reverse = reverse(arrays);
        Arrays(reverse);
    }

    //打印数组元素
    public static void Arrays(int[] arrays){
        for(int i = 0; i <arrays.length ; i++) {
            System.out.println(arrays[i]+" ");
        }
    }

    //反转数组
    public static int[] reverse(int[] arrays){
        int[] result = new int[arrays.length];
        for (int i = 0,j=result.length-1; i < arrays.length; i++,j--) {
            result[j]=arrays[i];
        }

        return result;
    }
}

多维数组

int[][] a = new int[3][5];
int[][] b = {{1,2},{3,4},{5,6}};

Arrays类

package com.Java.code.array;


import java.util.Arrays;

public class Test06 {
    public static void main(String[] args) {
        int[] a = {1,2,3,4,5664,233,678};
        System.out.println(a);  //[I@1b6d3586
        //打印数组元素
        System.out.println(Arrays.toString(a));//[1, 2, 3, 4, 5664, 233, 678]
        Arrays.sort(a);//排序  升序
        System.out.println(Arrays.toString(a));

        Arrays.fill(a,0);
        System.out.println(Arrays.toString(a));
    }
}

冒泡排序

package com.Java.code.array;

import java.util.Arrays;

public class Test07 {
    public static void main(String[] args) {
        int[] array = {1,2,2,2,523,23,234,123};
        int[] a = sort(array);
        System.out.println(Arrays.toString(a));
    }
        //冒泡排序
        //1.比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置
        //2.每一次比较,都会产生出一个最大,或者一个最小的数字。
        //3.下一次,可以少一次排序。
        public static int[] sort(int[] array){
            int temp;
            for(int i = 0; i< array.length-1;i++){
                for (int j = 0; j <array.length-1-i; j++)            {
                    if(array[j+1]>array[j]) {
                    temp = array[j+1];
                    array[j+1] = array[j];
                    array[j] = temp;
                }
                    }
                }
              return array;
            }


        }
这篇关于JavaDay05的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!