zoukankan      html  css  js  c++  java
  • Java连载67-深入一维数组、main方法中的args参数详解

    一、复习了一维数组,还复习了强制类型转换的注意点。

     
    
    package com.bjpowernode.java_learning;
    
     
    
    public class D67_1_GoDeepIntoArrays {
    
      public static void main(String[] args) {
    
        //创建一个数组,这个数组既可以存储Dog,也可以存储Cat
    
        Animal67[] as = new Animal67[4];
    
        //给数组每个元素赋值
    
        Dog67 d1 = new Dog67();
    
        Dog67 d2 = new Dog67();
    
        Cat67 c1 = new Cat67();
    
        Cat67 c2 = new Cat67();
    
        as[0] = d1;
    
        as[1] = d2;
    
        as[2] = c1;
    
        as[3] = c2;
    
        //需求:遍历数组,取出每个对象,如果是Dog67那么就执行eat方法,如果是Cat67就执行move方法
    
        for(int i = 0;i<as.length;i++) {
    
          Animal67 a = as[i];
    
          if (a instanceof Cat67) {
    
            Cat67 c3 = (Cat67)a;
    
            c3.move();
    
          }else {
    
            Dog67 d3 = (Dog67)a;
    
            d3.eat();
    
          }
    
        }
    
      }
    
    }
    
    class Animal67{
    
     
    
    }
    
    class Dog67 extends Animal67{
    
      public void eat() {
    
        System.out.println("Dog eat");
    
      }
    
    }
    
    class Cat67 extends Animal67{
    
      public void move() {
    
        System.out.println("Cat move");
    
      }
    
    }
    
     
     
    
    package com.bjpowernode.java_learning;
    
     
    
    public class D67_1_GoDeepIntoArrays {
    
      public static void main(String[] args) {
    
        //创建一个数组,这个数组既可以存储Dog,也可以存储Cat
    
        Animal67[] as = new Animal67[4];
    
        //给数组每个元素赋值
    
        Dog67 d1 = new Dog67();
    
        Dog67 d2 = new Dog67();
    
        Cat67 c1 = new Cat67();
    
        Cat67 c2 = new Cat67();
    
        as[0] = d1;
    
        as[1] = d2;
    
        as[2] = c1;
    
        as[3] = c2;
    
        //需求:遍历数组,取出每个对象,如果是Dog67那么就执行eat方法,如果是Cat67就执行move方法
    
        for(int i = 0;i<as.length;i++) {
    
          Animal67 a = as[i];
    
          if (a instanceof Cat67) {
    
            Cat67 c3 = (Cat67)a;
    
            c3.move();
    
          }else {
    
            Dog67 d3 = (Dog67)a;
    
            d3.eat();
    
          }
    
        }
    
      }
    
    }
    
    class Animal67{
    
     
    
    }
    
    class Dog67 extends Animal67{
    
      public void eat() {
    
        System.out.println("Dog eat");
    
      }
    
    }
    
    class Cat67 extends Animal67{
    
      public void move() {
    
        System.out.println("Cat move");
    
      }
    
    }
    
     

    二、方法调用的时候也可以传递一个数组

    package com.bjpowernode.java_learning;
    
     
    
    public class D67_2_ {
    
      public static void main(String[] args) {
    
        //第一种方式
    
        int[] a = {12,3,4,5,6};
    
        m1(a);
    
        //第二种方式
    
        m1(new int[] {34,4,5,6});
    
        //m1({34,4,5,6});这种方式是不行的,编译报错
    
      }
    
     
    
      public static void m1(int[] a) {
    
        for(int i = 0;i<a.length;i++) {
    
          System.out.println(a[i]);
    
        }
    
      }
    
    }

    三、关于main方法中的参数列表String[] args

    1.String[] args是专门用来接受命令行参数的

    2.例如:java ArrayTest07 abc def aaa

    JVM在调用ArraysTest07类的main方法之前,先“abc def aaa"这个字符串以”空格“的方式进行分割,然后存储在String数组中。·

    package com.bjpowernode.java_learning;
    
     
    
    public class D67_3_ArgsAnlysis {
    
      public static void main(String[] args) {
    
        System.out.println("String类型的数组中的元素个数为:" + args.length);
    
        //遍历
    
        for(int i=0; i<args.length;i++) {
    
          System.out.println(args[i]);
    
        }
    
        //需求说明:运行该软件的时候必须提供用户名和密码。
    
        //格式:java D67_3_ArgsAnlysis usrname password
    
        //如果用户没有提供足够的参数,则退出系统
    
        if (args.length != 2) {
    
          System.out.println("要想使用这个系统,就必须这样输入java D67_3_ArgsAnlysis usrname password");
    
          return ;
    
        }
    
        //参数正确,如果用户名为admin,密码是123则登陆成功
    
        String username = args[0];
    
        String passsword = args[1];
    
        if ("admin".equals(username) && "123".equals(password)) {
    
        //这里如果写成username.equals("admin"),就容易造成空指针异常
    
          System.out.println("登录成功,欢迎admin");
    
        }else {
    
          System.out.println("登录失败,请重新确认")
    
        }
    
      }
    
     
    
    }

    四、源码:

    D67_1_GoDeepIntoArrays.java

    D67_2_TwoWaysOfInvolingArray.java

    D67_3_ArgsAnlysis.java

    https://github.com/ruigege66/Java/blob/master/D67_1_GoDeepIntoArrays.java

    https://github.com/ruigege66/Java/blob/master/D67_2_TwoWaysOfInvolingArray.java

    https://github.com/ruigege66/Java/blob/master/D67_3_ArgsAnlysis.java

    2.CSDN:https://blog.csdn.net/weixin_44630050

    3.博客园:https://www.cnblogs.com/ruigege0000/

    4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

     

  • 相关阅读:
    chm打开看不到内容时好时坏
    pugixml应用随笔
    鸟哥书:记一笔
    c++ stl list使用总结(转)
    增加swap分区
    复制虚拟机,链接网络问题:没有找到合适的设备:没有找到可用于链接System eth0 的
    Python编码相关文章推荐
    Python Counter() 的实现
    Python Counter()计数工具
    浏览器自动化工具-Selenium
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/12142905.html
Copyright © 2011-2022 走看看