JavaSE基础篇-2

一、数组操作

【先写几个练习】

public class Demo01Array {
    public static void main(String[] args) {
        //1.创建Random对象以及数组
        Random rd = new Random();
        int[] arr = new int[10];
        //2.定义一个变量,统计个数 count
        int count = 0;
        //3.循环随机循环存
        for (int i = 0; i < arr.length; i++) {
            arr[i] = rd.nextInt(101);
        }
        //4.遍历数组,将每一个元素获取出来

        for (int i = 0; i < arr.length; i++) {
        //5.判断如果 元素%3==0 && 元素%5==0 && 元素%7!=0
            if (arr[i]%3==0 && arr[i]%5==0 && arr[i]%7!=0){
        //6.如果判断成功,count++
               count++;
            }
        }
        //7.输出count
        System.out.println("count = " + count);
    }
}

问题升级:
  如果查不到,输出对应的提示(一般我们输出负数)

public class Demo04Array {
    public static void main(String[] args) {
        //1.创建Scanner对象
        Scanner sc = new Scanner(System.in);
        //2.定义数组,随意存点数据
        int[] arr = {11, 22, 33, 44, 55, 66, 33};
        //3.键盘录入一个整数 data
        int data = sc.nextInt();

        //定义一个变量,做标记
        int flag = 0;


        //4.遍历数组,将每一个元素获取出来
        for (int i = 0; i < arr.length; i++) {
            if (data == arr[i]) {
                //5.在遍历的过程中,用data和遍历出来的元素比较,如果相等输出对应的索引
                System.out.println(i);
                flag++;
            }
        }

        //出了循环,再次判断flag,如果还是0,证明在遍历的过程中,if根本没有进去过
        if (flag==0){
            System.out.println("没找到");
        }
    }
}

二、数组复杂操作

1)练习1

数组扩容
    
需求:
  定义一个数组:int[] arr1 = {1,2,3,4,5}
             将数组由原来的长度扩容到10

public class Demo05Array {
    public static void main(String[] args) {
        //定义一个数组:int[] arr1 = {1,2,3,4,5}
        //将数组由原来的长度扩容到10

        int[] arr1 = {1,2,3,4,5};

        //定义新的新数组,长度定位10
        int[] arr2 = new int[10];

        //遍历arr1,将arr1中的数据放到arr2中

        for (int i = 0; i < arr1.length; i++) {
            arr2[i] = arr1[i];
        }

        /*for (int i = 0; i < arr2.length; i++) {
            System.out.print(arr2[i]+" ");
        }*/

        //将arr2的地址值赋值给arr1
        arr1 = arr2;

        for (int i = 0; i < arr1.length; i++) {
            System.out.print(arr1[i]+" ");
        }
    }
}

2)练习2-数组合并

public class Demo06Array {
    public static void main(String[] args) {
        //1.定义两个数组
        int[] arr1 = {1,2,3};
        int[] arr2 = {4,5,6};
        //2.定义新数组
        int[] newArr = new int[arr1.length+ arr2.length];
        //3.遍历arr1,将arr1的元素放到newArr
        for (int i = 0; i < arr1.length; i++) {
            newArr[i] = arr1[i];
        }

        /*for (int i = 0; i < newArr.length; i++) {
            System.out.print(newArr[i]+" ");
        }*/

        int len = arr1.length;
        //4.遍历arr2,往newArr中存储
        for (int i = 0; i < arr2.length; i++) {
            /*
              第一次循环: newArr[3+0] = arr2[0]
              第二次循环: newArr[3+1] = arr2[1]
              第三次循环: newArr[3+2] = arr2[2]
             */
            newArr[len+i] = arr2[i];
        }

        for (int i = 0; i < newArr.length; i++) {
            System.out.print(newArr[i]+" ");
        }
    }
}

三、二维数组

        1)二维数组的定义格式

1.概述:数组中套着多个一维数组
2.定义:
  动态初始化
     数据类型[][] 数组名 = new 数据类型[m][n]
     数据类型 数组名[][] = new 数据类型[m][n]
     数据类型[] 数组名[] = new 数据类型[m][n]
      
     m:代表的是二维数组的长度->二维数组中最多能放几个一维数组
     n:代表的是每一个一维数组的长度->每一个一维数组中最多能放几个元素
         
  静态初始化
     数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2...},{元素1,元素2...}...}
     数据类型 数组名[][] = new 数据类型[][]{{元素1,元素2...},{元素1,元素2...}...}
     数据类型[] 数组名[] = new 数据类型[][]{{元素1,元素2...},{元素1,元素2...}...}  
   
  简化静态初始化:
     数据类型[][] 数组名 = {{元素1,元素2...},{元素1,元素2...}...}

3.特殊的定义方式:
  数据类型[][] 数组名 = new 数据类型[m][]
      只指明了二维数组的长度,但是后面没有指定一维数组长度,那么一维数组是不会被创建出来的

public class Demo01Array {
    public static void main(String[] args) {
        //动态初始化
        int[][] arr1 = new int[3][3];
        int arr2[][] = new int[3][3];
        int[] arr3[] = new int[3][3];

        //静态初始化
        String[][] arr4 = {{"白骨精","蜘蛛精","老鼠精"},{"郭嘉","大乔"},{"宋江","李逵","卢俊义"}};

        System.out.println("================");

        int[][] arr5 = new int[3][3];
        for (int i = 0; i < arr5.length; i++) {
            System.out.println(arr5[i]);
        }

        System.out.println("================");

        int[][] arr6 = new int[3][];
        for (int i = 0; i < arr6.length; i++) {
            System.out.println(arr6[i]);
        }
    }
}

2)获取二维数组长度

3)获取二维数组中的元素

4)二维数组中存储元素

5)二维数组的遍历

6)二维数组的内存图

四、方法的使用

1.方法介绍以及简单方法定义(无参无返回值)

public class Demo01Method {
    public static void main(String[] args) {
        farmer();
        cooker();
        cooker();
        me();
    }
    //农民伯伯
    public static void farmer(){
        System.out.println("播种");
        System.out.println("浇水");
        System.out.println("施肥");
        System.out.println("拔草");
        System.out.println("收割");
    }

    //厨师
    public static void cooker(){
        System.out.println("洗菜");
        System.out.println("切菜");
        System.out.println("炒菜");
        System.out.println("装盘");
    }
    //顾客
    public static void me(){
        System.out.println("洗手");
        System.out.println("吃菜");
    }
}

2.无参数无返回值的方法执行流程

3.方法定义各部分解释

4.有参数无返回值的方法定义和执行流程

public class Demo02Method {
    public static void main(String[] args) {
        //直接调用
        sum(10,20);
    }

    //有参无返回值的方法
    public static void sum(int a,int b){
        int sum = a+b;
        System.out.println("sum = " + sum);
    }
}

5.无参数有返回值定义以及执行流程

public class Demo03Method {
    public static void main(String[] args) {
        //打印调用
        System.out.println(sum());

        //赋值调用-> 建议使用
        int result = sum();
        System.out.println("result = " + result);
        if (result>100){
            System.out.println("结果大于100");
        }else{
            System.out.println("结果小于100");
        }
    }

    public static int sum(){
        int a = 10;
        int b = 20;
        int sum = a+b;
        return sum;//30
    }
}

6.有参数有返回值定义以及执行流程

public class Demo04Method {
    public static void main(String[] args) {
        int sum = sum(10, 20);
        System.out.println("sum = " + sum);
    }
    public static int sum(int a,int b){
        int sum = a+b;
        return sum;
        //return a+b;
    }
}

7.形式参数和实际参数区别、

8.参数和返回值使用的时机

9.变量作为实参使用

public class Demo05Method {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        /*
          a = 10
          b = 20

          传递a和b,仅仅是传递a和b的值,不是变量本身
         */
        boolean compare = compare(a, b);
        System.out.println("compare = " + compare);
    }

    public static boolean compare(int a,int b){
        if (a>b){
            return true;
        }else{
            return false;
        }
    }
}

【总结】

方法使用注意事项

10.方法练习


 

五、方法的重载

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面向对象编程是一种编程范式,它将程序的构建和设计思路以面向对象的方式进行组织和实现。在Java中,面向对象编程是基于Java SE(Standard Edition)的一种编程方式。第07讲主要介绍了面向对象编程中的一些基本概念和关键术语。 在面向对象编程中,我们将程序中的数据和对数据的操作(方法)封装在一起,形成一个对象。对象由两部分构成:属性和方法。属性是用来描述对象的特征,而方法则是对象可以执行的操作。对象之间通过消息(方法调用)进行通信和交互。面向对象的核心思想是通过封装、继承和多态实现程序的复用和扩展。 封装是面向对象编程中的一个重要概念,它指的是将类的属性和方法进行封装,使得外部无法直接访问和修改对象的内部状态,只能通过公共的方法来操作属性和执行方法。封装提供了一种将数据和行为组合在一起的方式,可以保护数据的完整性和安全性。 继承是面向对象编程中的另一个重要概念,它指的是通过定义一个新的类来继承现有类的属性和方法。通过继承,子类可以继承父类的属性和方法,并可以在此基础上进行扩展和修改。继承提供了一种代码复用的机制,可以减少重复编码的工作量。 多态是面向对象编程的又一个重要概念,它指的是同一类型的对象在不同的情况下可以有不同的表现形式。多态通过方法的重写和方法的重载实现。方法的重写指的是在子类中重新定义和实现父类的方法,方法的重载指的是在同一个类中可以定义多个同名但参数列表不同的方法。 总结来说,面向对象编程是一种将程序组织和设计思路以对象为中心的编程方式。在JavaSE中,我们可以通过封装、继承和多态来实现面向对象编程的目标。封装可以提高程序的可维护性和可复用性,继承可以减少重复编码的工作量,多态可以灵活地操作对象。掌握这些基本概念和关键术语,可以帮助我们更好地理解和应用面向对象编程的思想。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值