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


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

Java连载67-深入一维数组、main方法中的args参数详解的更多相关文章

  1. 跟着阿里p7一起学java高并发 - 第19天:JUC中的Executor框架详解1,全面掌握java并发核心技术

    这是java高并发系列第19篇文章. 本文主要内容 介绍Executor框架相关内容 介绍Executor 介绍ExecutorService 介绍线程池ThreadPoolExecutor及案例 介 ...

  2. 【C#基础知识】C#控制台程序入口函数 Main(string[] args) 参数详解

    测试环境vs2019+.net5.0 请看 :https://cloud.tencent.com/developer/article/1507934 本测试环境vs2022+.net6.0 +wind ...

  3. java架构之路-(分布式)初识zookeeper安装与参数详解

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...

  4. 【图文+视频新手也友好】Java一维数组详细讲解(内含练习题答案+详解彩蛋喔~)

    目录 视频讲解: 一.数组的概述 二.一维数组的使用 三.Arrays工具类中的sort方法(sort方法用的多,我们具体讲一下) 四.数组中的常见异常 五.一维数组练习题 六.彩蛋(本期视频使用的P ...

  5. C#中static void Main(string[] args) 参数详解

    学习C#编程最常见的示例程序是在控制台应用程序中输出Hello World! using System; namespace DemoMainArgs { class Program { static ...

  6. C#控制台程序入口函数 Main(string[] args) 参数详解

    学习C#编程最常见的示例程序是在控制台应用程序中输出Hello World! using System; namespace DemoMainArgs { class Program { static ...

  7. int main(int argc,char* argv[])参数详解

    argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[] ...

  8. jQuery()方法的第二个参数详解

    关于jQuery()方法的第二个参数,有下面这几种用法: 1.jQuery(selector, [context]) 这种用法,相当于 $(context).find(selector) 或者 con ...

  9. c语言main函数返回值、参数详解(返回值是必须的,0表示正常退出)

    C语言Main函数返回值 main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其它数字的含义则由系统决定.通常,返回非零代表程序异常退出. 很多人甚至市面上的一些书籍,都 ...

随机推荐

  1. Vue日常报错

    报错信息: Error: Cannot find module 'webpack/bin/config-yargs' at Function.Module._resolveFilename (inte ...

  2. 并发编程之Event事件

    Event事件 用来同步线程之间的状态. 举个例子: ​ 你把一个任务丢到了子线程中,这个任务将异步执行.如何获取到这个任务的执行状态 解决方法: 如果是拿到执行结果 我们可以采用异步回调, 在这里我 ...

  3. 2 JavaScript输出&字面量&变量&操作符&语句&标识符和关键字&字符集&语句&数据类型与类型转换

    JS输出: JavaScript没有任何打印或者输出的函数,但是可以用不同的方式输出数据 window.alert():弹出警告框 document.write():写入文档 innerHTML:写入 ...

  4. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:设定文本左对齐

    <!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...

  5. 2020牛客寒假算法基础集训营4 J 二维跑步

    https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43035417 假设有i步选择不动,就有n-i步移动 假设其中又有a ...

  6. Spring_MVC 21问

    1.什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,C ...

  7. js对数字的处理:取整、四舍五入、数字与字符串的转换

    取整.四舍五入 向下取整Math.floor() 向上取整Math.ceil() 四舍五入Math.round()) 保留有效数位n.toFixed() 产生大于等于0小于1的随机数Math.rand ...

  8. 学习黑马教学视频SSM整合中Security遇到的问题org.springframework.security.access.AccessDeniedException: Access is denied

    问题已解决. 总结: 报错:org.springframework.security.access.AccessDeniedException: Access is denied 当您遇到同样问题时, ...

  9. IDEA 打 jar包

    方法一:Maven插件打包(我用此方法解决的问题) 报错:找不到主类Main class,找不到某个依赖的 jar包 解决方法:将未找到的依赖 jar,使用mvn命令打包放入到我们的本地mvn仓库,I ...

  10. ubuntu14 安装git

    1.安装git Step1 测试git是否安装,终端输入 $ git 没有安装时,不会识别git命令: