zoukankan      html  css  js  c++  java
  • Java基础第5天+方法、数组

    1:方法(掌握)

    (1)方法:就是完成特定功能的代码块。

    注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法。

    (2)格式:

    修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {

    方法体语句;

    return 返回值;

    }

    修饰符:目前就用 public static。后面再详细讲解其他修饰符

    返回值类型:就是功能结果的数据类型

    方法名:就是起了一个名字,方便我们调用该方法。

    参数类型:就是参数的数据类型

    参数名:就是变量

    参数分类:

    实参:实际参与运算的数据

    形参:方法上定义的,用于接收实际参数的变量

    方法体语句:就是完成功能的代码块

    return:结束方法

    返回值:就是功能的结果,由return带给调用者。

    (3)两个明确:

    返回值类型:结果的数据类型

    参数列表:参数的个数及对应的数据类型

    (4)方法调用

    A:有明确返回值的方法

    a:单独调用,没有意义

    b:输出调用,不是很好,因为我可能需要不结果进行进一步的操作。但是讲课一般我就用了。

    c:赋值调用,推荐方案

    B:void类型修饰的方法

    a:单独调用

    (5)案例:

    A:求和方案

     

    /*
    需求:求两个数据之和的案例

    两个明确:
    返回值类型:int
    参数列表:2个,都是int类型。
    */
    public static int sum(int a,int b) {
      //如何实现呢?
      //int c = a + b;
      //return c;

      //c就是a+b,所以,我可以直接返回a+b
      return a + b;
    }

     

    B:获取两个数中的较大值

    /* 

    需求:两个数中的较大值 

    两个明确: 

    返回值类型:int 

    参数列表:int a,int b

    */ 

    public static int getMax(int a,int b) {

    //if语句 

    /* 

    if(a > b) { 

    //System.out.println(a); 

    return a;

    }else { 

    //System.out.println(b);

    return b; 

    */

     

    //用三元改进

    //int c = ((a > b)? a: b); 

    //return c;

    //由于c就是后面的式子 

    return ((a>b)? a : b); 

    }

     

    C:比较两个数据是否相同

    /* 

    需求:比较两个数是否相等 

    两个明确: 

    返回值类型:boolean 

    参数列表:int a,int b 

    */

     

    public static boolean compare(int a,int b) { 

    //if语句的格式2实现

    /* 

    if(a == b) { 

    return true; 

    }else {

    return false; 

    */

      

    //三元改进

    //boolean flag = ((a==b)? true: false); 

    //return flag;

      

    //继续改进

    //return ((a==b)? true: false);

      

    //最终版

    return a == b;

    }

     

    D:获取三个数中的最大值

    /* 

    需求;返回三个数中的最大值 

    两个明确: 

    返回值类型:int 

    参数列表:int a,int b,int c 

    */ 

    public static int getMax(int a,int b,int c) {

    //if嵌套

    /*

    if(a > b) {

    if(a > c) { 

    return a; 

    }else { 

    return c; 

    }else {

    if(b > c) {

    return b;

    }else {

    return c;

    }

    */

      

    //用三元改 

    /* 

    if(a > b) { 

    return (a>c? a: c);

    }else { 

    return (b>c? b: c);

    */

      

    //继续改进

    //return (a>b)? (a>c? a: c): (b>c? b: c); 

    //不建议,写代码一定要注意阅读性强 

    int temp = ((a>b)? a: b); 

    int max = ((temp>c)? temp: c); 

    return max; 

    }

     

    E:输出mn列的星形

    /* 

    写一个什么样子的方法呢?写一个mn列的代码 

    两个明确: 

    返回值类型:这个时候没有明确的返回值,不写东西还不行,所以,这里记住是void 

    参数列表:int m,int n 

    */ 

    public static void pringXing(int m,int n) { 

    for(int x=0; x<m; x++) { 

    for(int y=0; y<n; y++) { 

    System.out.print("*"); 

    System.out.println(); 

    }

     

    F:输出nn乘法表 

    /* 

    需求:输出对应的nn乘法表 

    两个明确:

    返回值类型:void 

    参数列表:int n 

    */ 

    public static void printNN(int n) { 

    for(int x=1; x<=n; x++) { 

    for(int y=1; y<=x; y++) { 

    System.out.print(y+"*"+x+"="+y*x+" "); 

    System.out.println(); 

    }

    }

     

    (6)方法的注意事项

    A:方法不调用不执行

    B:方法之间是平级关系,不能嵌套定义

    C:方法定义的时候,参数是用,隔开的

    D:方法在调用的时候,不用在传递数据类型

    E:如果方法有明确的返回值类型,就必须有return语句返回。

    (7)方法重载

    在同一个类中,方法名相同,参数列表不同。与返回值无关。

    参数列表不同:

    参数的个数不同。

    参数的对应的数据类型不同。

    (8)方法重载案例

    不同的类型的多个同名方法的比较。

    2:数组(掌握)

    (1)数组:存储同一种数据类型的多个元素的容器。

    (2)特点:每一个元素都有编号,从0开始,最大编号是长度-1

             编号的专业叫法:索引

    (3)定义格式

    A:数据类型[] 数组名;

    B:数据类型 数组名[];

    推荐是用A方式,B方法就忘了吧。

    但是要能看懂

    (4)数组的初始化

    A:动态初始化

    只给长度,系统给出默认值

    举例:int[] arr = new int[3];

    B:静态初始化

    给出值,系统决定长度

    举例:int[] arr = new int[]{1,2,3};

    简化版:int[] arr = {1,2,3};

    (5)Java的内存分配

    A:栈 存储局部变量

    B:堆 存储所有new出来的

    C:方法区(面向对象部分详细讲解)

    D:本地方法区(系统相关)

    E:寄存器(CPU使用)

    注意:

    a:局部变量 在方法定义中或者方法声明上定义的变量。

    b:栈内存和堆内存的区别

    栈:数据使用完毕,就消失。

    堆:每一个new出来的东西都有地址

        每一个变量都有默认值

    byte,short,int,long 0

    float,double 0.0

    char 'u0000'

    boolean false

    引用类型 null

        数据使用完毕后,在垃圾回收器空闲的时候回收。

    (6)数组内存图

    A:一个数组

     

    B:二个数组

     

    C:三个数组(两个栈变量指向同一个堆内存)

    (7)数组的常见操作

    A:遍历

    方式1

    public static void printArray(int[] arr) {

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

    System.out.println(arr[x]);

    }

    }

    方式2

    public static void printArray(int[] arr) {

    System.out.print("[");

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

    if(x == arr.length-1) {

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

    }else {

    System.out.println(arr[x]+", ");

    }

    }

    }

    B:最值

    最大值:

    public static int getMax(int[] arr) {

    int max = arr[0];

    for(int x=1; x<arr.length; x++) {

    if(arr[x] > max) {

    max = arr[x];

    }

    }

    return max;

    }

    最小值:

    public static int getMin(int[] arr) {

    int min = arr[0];

    for(int x=1; x<arr.length; x++) {

    if(arr[x] < min) {

    min = arr[x];

    }

    }

    return min;

    }

    C:逆序

    方式1

    public static void reverse(int[] arr) {

    for(int x=0; x<arr.length/2; x++) {

    int temp = arr[x];

    arr[x] = arr[arr.length-1-x];

    arr[arr.length-1-x] = temp;

    }

    }

    方式2

    public static void reverse(int[] arr) {

    for(int start=0,end=arr.length-1; start<=end; start++,end--) {

    int temp = arr[start];

    arr[start] = arr[end];

    arr[end] = temp;

    }

    }

    D:查表

    public static String getString(String[] strArray,int index) {

    return strArray[index];

    }

    E:基本查找

    方式1

    public static int getIndex(int[] arr,int value) {

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

    if(arr[x] == value) {

    return x;

    }

    }

    return -1;

    }

    方式2

    public static int getIndex(int[] arr,int value) {

    int index = -1;

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

    if(arr[x] == value) {

    index = x;

    break;

    }

    }

    return index;

    }

  • 相关阅读:
    Postman使用教程
    CAD和ArcGIS转换 矢量配准
    SAP CRM Advanced search和Simple search里Max hit表现行为的差异
    SAP CRM Product simple search的启用步骤
    如何快速定位SAP CRM订单应用(Order Application)错误消息抛出的准确位置
    如何动态修改SAP CRM WebClient UI表格栏的宽度
    如何在SAP CRM WebClient UI里创建web service并使用ABAP消费
    如何处理SAP CRM Web Service错误
    如何使用SAP CRM WebClient UI实现一个类似新浪微博的字数统计器
    如何开启SAP CRM基于WORD模板创建附件的功能
  • 原文地址:https://www.cnblogs.com/zyk2019/p/11331550.html
Copyright © 2011-2022 走看看