javaSE第四天

复习:
种类:
1.赋值语句:x = 9;
2.方法调用语句:System.out.println();
                stu.study();
                Math.max();
3.import,package
4.分支:if   switch

 if(boolean)
    int x = 9;
        int y = 10;
 else
        int z = 11;

 switch(byte,short int char  String  enum)

5.循环:
  for     while    do-while
  原理

6.嵌套循环:
  外出循环一次,内层循环全部

7.跳转语句:
   break,continue

8.标号语句:
   out:for()
     in:for()

      break in;

---------------------------------------------------------
数组:main(String[] agrs)
1.什么是数组:存储相同数据类型的容器
2.特点:相同数据类型,有序的(下标,从0开始),
       长度是不可变的(length)
3.声明数组
   数据元素的类型[]  数组名;
   int[] nums;
   int nums [];

4.创建数组(申请内存)
   数组名 = new 数据元素的类型[长度];
   nums = new int[10];
5.存放数据

  nums[0] = 1;
  nums[9] = 2;

6.使用数组

  System.out.println(nums[0]);

  for(int i = 0;i<nums.length;i++){
     System.out.println(nums[i]);
  }
  增强for循环
  for(int n : nums){
      System.out.println(n);
  }

  Arrays.toString(nums);

7.main方法的args数组的使用
//练习:求数组元素的和
    // Integer.parseInt(args[i]);
    int sum = 0;
    for(String str : args){
        sum += Integer.parseInt(str);
    }
    System.out.println(sum);
---------------------------------------------------

8.数组的拷贝和扩容

//数组的拷贝
    //arraycopy
    //第一个参数:原数组
    //第二个参数:原数组元素的起始位置
    //第三个参数:目标数组
    //第四个参数:目标数组元素的起始位置
    //第五个参数:长度
    //练习:  b={0,0,3,4,0,.....}
    System.arraycopy(a, 2, b, 2, 2);

    System.out.println(Arrays.toString(b));

//数组扩容
    //copyOf
    //第一个参数:原数组(拷贝)
    //第二个参数:扩容之后的长度
    String[] names = {"张三"};
        
    names = Arrays.copyOf(names, names.length+1);
    names[1] = "李四";
    System.out.println(Arrays.toString(names));

------------------------------------------------------------
9.数组元素的排序:

     冒泡排序:两两比较,大的沉下去,小的浮上来,从小到大
                      4
     23,56,22,15    i 0    j 3      
     23,22,15,56      1      2
     22,15,23         2      1
     15,22

 
     选择排序:
     23,56,22,15
     56,23,22,15
        23,22,15
           22,15
     for(int i = 0;i<3;i++){
    for(int j = i+1;j<4;j++){
        if(nums[i]<nums[j] {
        int temp = nums[i];
               nums[i] = nums[j];
                nums[j] = temp;
        }
    }
     }
---------------------------------------------------
10.二维数组[]
 声明:
 int[][] arrays;
 int[] arrays [];
 int arrays [][];

 创建:
 arrays = new int[2][3];

 赋值:
 arrays[0][2] = 1;
 0   0  1
 0   0  0
 

 使用数组元素,使用嵌套循环

 for(int i = 0;i<arrays.length;i++){
    for(int j = 0;j<arrays[i].length;j++){
        print(arrays[i][j]+"\t");
   }
       println();

 }

---------------------------------------------
练习:
1.对角线求和
1 2 3  1 [0][0]  3 [0][2]
1 2 2  2 [1][1]  2 [1][1]
3 2 2  2 [2][2]  3 [2][0]

2.矩阵转置
1 2 3    [0][0] [0][1] [0][2]
4 5 6    [1][0] [1][1] [1][2]
 
1 4     [0][0] [0][1]
2 5     [1][0] [1][1]
3 6     [2][0] [2][1]

3.杨辉三角
1j=0
1j=0    1
1    2    1
1    3    3    1
1    4    6    4    1
1       5       10      10       5       1
特点:每一行的开始和结束都是1;其余位置的元素是计算:
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
输入一个数字n表示行数,输出对应的前n行
-----------------------------------------------------------

方法:

1.方法的定义
  [访问修饰符 修饰符] 方法返回类型  方法名(形参列表){方法体;}

  public private 没有修饰符 protected
  static
  public static
  返回类型:无返回值void,有返回值的 任何数据类型
   public static void sum(){
    System.out.println("求和");
        return ;  表示方法结束
  }
  如果方法有返回值,那么必须有return  返回值;
  public static double sum(){
      return 1+2.0;
  }
  public static int[] f(){ return new int[1];}
 
  方法名:同变量名
  形参列表:同变量定义,多个参数用,分开
  public static int sum(int x,int y){
       return x+y;
  }
  方法体:就是方法完成的功能代码


2.方法的调用
   方法名(实参列表)
   sum(21,56);

3.方法重载
   同一个类(继承关系)
   方法名形同,参数列表不同(个数,类型,顺序),一组方法叫方法重载
   和方法的返回类型无关

   public void f(int x){}
   public int f(int y){return 1;}
   public void f(int x,int y){return x+y;}

4.值传递
--------------------------------------------
内存:堆,栈,方法区,本地方法栈,寄存器

posted on 2020-08-02 17:56  Winer_Jiu  阅读(105)  评论(0编辑  收藏  举报

导航