zoukankan      html  css  js  c++  java
  • Java基础--第六天

    1:函数
      (1)定义在类中,有特定功能的一段小程序。
      (2)函数的格式:
        修饰符 返回值类型 函数名(形参类型 形式参数1,形参类型 形式参数2...)
        {
          函数体;
          reutrn 返回值;
        }

     1 /*
     2     函数定义:
     3         黑屏运行时,按任意键就可以退出;
     4         也可以使用exit命令退出
     5     函数的调用:
     6         单独调用--无返回值
     7         赋值调用--常用,返回值
     8         输出调用--演示
     9     函数的结束:
    10         函数其实是以return结束;
    11         函数执行完全,void类型函数默认,最后一行有return;语句
    12         
    13 */
    14 
    15 class FuntionDemo 
    16 {
    17     public static void main(String[] args) 
    18     {
    19         System.out.println("Hello World!");
    20         //30;单独写个常数在程序中是不行的,编译不过
    21         System.out.println(max(10,20));  //输出调用
    22         System.out.println("-----------------------");
    23 
    24         int a = 20,b = 35;               //实际参数
    25         int c = getMin(a,b);             //赋值调用
    26         System.out.println("小值是:"+c);//打印输出
    27         System.out.println("-----------------------");
    28 
    29         min(24,45);                      //单独调用,用常数直接做参数
    30         System.out.println("-----------------------");
    31 
    32         return;   //默认有写,不必重复[可省略]
    33     }
    34     public static int max(int a,int b)         //函数以及变量名命名规则
    35     {
    36         return(a>b?a:b);                       //三元运算符
    37     }
    38 
    39     public static int getMin(int a,int b)      //函数以及变量名命名规则
    40     {
    41         return(a<b?a:b);
    42     }
    43 
    44     public static void min(int a,int b)        //函数以及变量名命名规则
    45     {
    46         if(a>b)
    47             System.out.println("小值是:"+a);  //打印输出
    48         else
    49             System.out.println("小值是:"+b);
    50     }
    51 }

        A:修饰符 public static
        B:返回值类型 程序最终结果的数据类型
        C:函数名 其实就是函数的名称,方便我们调用。
        D:参数
          形参类型 数据类型
          形式参数 就是接收实际参数的变量
          实际参数 就是实际参与操作的变量(常量)
        E:函数体 就是按照正常的逻辑完成功能的代码。
        F:返回值 就是程序的最终结果
        G:reutrn 返回值 哪里调用程序,return就把结果返回到哪里。
      (3)函数的特点:
        A:函数与函数之间是平级关系。不能在函数中定义函数。
        B:运行特点 函数只有被调用才执行。
      (4)案例:
        有明确返回值的例子:

        A:求两个数据的和
        B:求两个数据的最大值
        C:比较两个数是否相等

    /*
        数组:
            new关键字:申请开辟内存
            数组初始化;
            数组排序;
            获取最值;
    */
    class ArraryDemo {
        public static void main(String[] args) {
            int[] arrary = new int[5];    //第一种初始化
            for(int i=0;i<5;i++){
                arrary[i] = i+1;
            }
            printArr(arrary);
    
            int max = getMax(arrary);//获取最大值
            System.out.println("max = "+max);
    
            int[] arr1 = new int[]{8,3,6,2,1,9,5};//第二种初始化
            printArr(arr1);
            sort(arr1);//基本排序
            printArr(arr1);
    
            int[] arr2 = {2,4,6,8,9,7,5,3,1};//第三种初始化
            int min = getMin(arr2);
            System.out.println("min = "+min);
            printArr(arr2);
            bubbleSort(arr2);
            printArr(arr2);
    
            int[] arr = {};//编译可以通过
            //基本查找
            int index = basicSearch(arr2,7);
            System.out.println("index = "+index);
            if(index>=0)
                System.out.println("验证数据:"+arr2[index]);
            index = basicSearch(arr2,17);
            System.out.println("index = "+index);
            if(index>=0)
                System.out.println("验证数据:"+arr2[index]);
        }
    
        //获取最小值
        public static int getMin(int[] arr){
            int min = 0;
            for(int i=0;i<arr.length;i++){
                if(arr[i]<arr[min])
                    min = i;
            }
            return arr[min];
        }
        
        //获取最大值
        public static int getMax(int[] arr){
            int max = arr[0];
            for(int i=0;i<arr.length;i++){
                if(arr[i]>max)
                    max = arr[i];
            }
            return max;
        }
    
        //排序,基本排序
        public static void sort(int[] arr){
            for(int i=0;i<arr.length-1;i++){
                for(int j=i+1;j<arr.length;j++){
                    if(arr[i]<arr[j])
                        changeLocation(arr,i,j);
                }
            }
        }
        
        //冒泡排序
        public static void bubbleSort(int[]arr){
            for(int i=0;i<arr.length-1;i++){
                for(int j=0;j<arr.length-i-1;j++){
                    if(arr[j]>arr[j+1])
                        changeLocation(arr,j,j+1);
                }
            }
        }
    
        //交换位置
        private static void changeLocation(int[] arr,int i,int j){
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    
        //打印数组
        public static void printArr(int[] arr)
        {
            System.out.print("[");
            for(int i=0;i<arr.length-1;i++){
                System.out.print(arr[i]+"	");
            }
            System.out.print(arr[arr.length-1]+"]");
    
            System.out.print("
    ");
        }
    
        //基本查找
        public static int basicSearch(int[] arr,int key){
            for(int x=0;x<arr.length;x++){
                if(arr[x]==key)
                    return x;
            }
            return -1;//返回值是索引值,不存在-1,表示没有查到
        }
        
    }


        void类型例子:

        A:nn乘法表
        B:根据给定的行和列输出一个*组成的长方形
      (5)函数的调用
        A:有明确返回值
          a:单独调用 一般没有意义。
          b:输出调用 但是如果想拿结果继续操作,就有问题了。所以,不好。
          c:赋值调用 推荐方式。

        B:void类型
          单独调用
      (6)函数重载
        A:函数名相同,参数列表不同(个数不同,对应的类型不同)。
          与返回值类型无关。

        B:举例:
          public static int sum(int a,int b){...}
          public static int sum(int a,int b,int c){...}
          public static int sum(float a,float b){...}

    2:数组
      (1)数组是存储同一种类型的多个元素的容器。
      (2)好处:数组中的元素会被自动从0开始编号,方便我们获取。
      (3)格式:
        A:int[] arr = new int[3];
        B:int arr[] = new int[3];//不推荐,C++
        C:int[] arr = new int[]{1,2,3};
        D:int[] arr = {1,2,3};

        推荐A和D。
      (4)Java内存图:
        A:栈 存储局部变量使用。
          使用完毕,立马消失。

        B:堆 所有new出来的都在堆里面。
          a:每一个实体都有地址值
          b:每一个实体内的内容都有默认值
            整数:0
            浮点数:0.0
            字符:'u0000'
            布尔:false
          c:在垃圾回收器空闲的时候被回收。

        C:方法区
        D:本地方法区
        E:寄存器
      (5)操作:

          数组的索引。
          数组的长度。
          数组名.length

        A:数组的遍历

        B:数组获取最值

        C:数组的查找
      (6)二维数组:
        格式:
          A:int[][] arr = new int[3][2];
          B:int[][] arr = new int[3][];
          C:int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};

          遍历:

          应用:遍历求和。

     1 /*
     2     二维数组的定义,初始化,应用---遍历
     3     三种定义方式:
     4         int[][] arr = new int[3][4];
     5         int[][] arr = new int[3][];
     6         int[][] arr = {{1,2,5,6},{1,2},{4,8,9}};
     7 */
     8 class Arrary2Demo{
     9     public static void main(String[] args) {
    10         //定义
    11         int[][] arr1 = new int[3][4];
    12         int[][] arr2 = new int[3][];
    13         int[][] arr3 = {{1,2,5,6},{1,2},{4,8,9}};
    14         //应用--遍历输出
    15         int[][] arr4 = {{1,2,5},{1,2},{4,8,9},{8,9,7}};//初始化每个季度中的每个月薪资
    16         //第一应用:
    17         //计算每个季度薪资总和:
    18         int sum = 0;
    19         for(int x=0;x<arr4[0].length;x++){
    20             sum += arr4[0][x];
    21         }
    22         System.out.println("第一季度薪资总和:"+sum);
    23 
    24         //整体遍历,计算一年所有薪资
    25         int salary = 0;
    26         for(int x=0;x<arr4.length;x++){
    27             for(int y=0;y<arr4[x].length;y++){
    28                 salary += arr4[x][y];
    29             }
    30         }
    31         System.out.println("一年薪资总和:"+salary);
    32 
    33 
    34         // byte  a=0,b=3; 
    35          //byte c =a+b;
    36          for(;;);
    37         // int other = (int) true;
    38     }
    39 }
  • 相关阅读:
    PHP漏洞全解(四)-xss跨站脚本攻击
    PHP漏洞全解(三)-客户端脚本植入
    Oauth2 接口api
    Linux重复执行上条命令
    Nginx配置文件nginx.conf中文详解
    资料收集
    Apache Rewrite常用设置说明
    微信分享,使用js,分享给朋友,朋友圈,QQ微博
    SSHFS
    Navicate
  • 原文地址:https://www.cnblogs.com/zhidianhcuan/p/4345735.html
Copyright © 2011-2022 走看看