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

  1.  
  2. package com.bjpowernode.java_learning;
  3.  
  4. public class D67_1_GoDeepIntoArrays {
  5.  
  6. public static void main(String[] args) {
  7.  
  8. //创建一个数组,这个数组既可以存储Dog,也可以存储Cat
  9.  
  10. Animal67[] as = new Animal67[4];
  11.  
  12. //给数组每个元素赋值
  13.  
  14. Dog67 d1 = new Dog67();
  15.  
  16. Dog67 d2 = new Dog67();
  17.  
  18. Cat67 c1 = new Cat67();
  19.  
  20. Cat67 c2 = new Cat67();
  21.  
  22. as[0] = d1;
  23.  
  24. as[1] = d2;
  25.  
  26. as[2] = c1;
  27.  
  28. as[3] = c2;
  29.  
  30. //需求:遍历数组,取出每个对象,如果是Dog67那么就执行eat方法,如果是Cat67就执行move方法
  31.  
  32. for(int i = 0;i<as.length;i++) {
  33.  
  34. Animal67 a = as[i];
  35.  
  36. if (a instanceof Cat67) {
  37.  
  38. Cat67 c3 = (Cat67)a;
  39.  
  40. c3.move();
  41.  
  42. }else {
  43.  
  44. Dog67 d3 = (Dog67)a;
  45.  
  46. d3.eat();
  47.  
  48. }
  49.  
  50. }
  51.  
  52. }
  53.  
  54. }
  55.  
  56. class Animal67{
  57.  
  58. }
  59.  
  60. class Dog67 extends Animal67{
  61.  
  62. public void eat() {
  63.  
  64. System.out.println("Dog eat");
  65.  
  66. }
  67.  
  68. }
  69.  
  70. class Cat67 extends Animal67{
  71.  
  72. public void move() {
  73.  
  74. System.out.println("Cat move");
  75.  
  76. }
  77.  
  78. }
  1.  
  2. package com.bjpowernode.java_learning;
  3.  
  4. public class D67_1_GoDeepIntoArrays {
  5.  
  6. public static void main(String[] args) {
  7.  
  8. //创建一个数组,这个数组既可以存储Dog,也可以存储Cat
  9.  
  10. Animal67[] as = new Animal67[4];
  11.  
  12. //给数组每个元素赋值
  13.  
  14. Dog67 d1 = new Dog67();
  15.  
  16. Dog67 d2 = new Dog67();
  17.  
  18. Cat67 c1 = new Cat67();
  19.  
  20. Cat67 c2 = new Cat67();
  21.  
  22. as[0] = d1;
  23.  
  24. as[1] = d2;
  25.  
  26. as[2] = c1;
  27.  
  28. as[3] = c2;
  29.  
  30. //需求:遍历数组,取出每个对象,如果是Dog67那么就执行eat方法,如果是Cat67就执行move方法
  31.  
  32. for(int i = 0;i<as.length;i++) {
  33.  
  34. Animal67 a = as[i];
  35.  
  36. if (a instanceof Cat67) {
  37.  
  38. Cat67 c3 = (Cat67)a;
  39.  
  40. c3.move();
  41.  
  42. }else {
  43.  
  44. Dog67 d3 = (Dog67)a;
  45.  
  46. d3.eat();
  47.  
  48. }
  49.  
  50. }
  51.  
  52. }
  53.  
  54. }
  55.  
  56. class Animal67{
  57.  
  58. }
  59.  
  60. class Dog67 extends Animal67{
  61.  
  62. public void eat() {
  63.  
  64. System.out.println("Dog eat");
  65.  
  66. }
  67.  
  68. }
  69.  
  70. class Cat67 extends Animal67{
  71.  
  72. public void move() {
  73.  
  74. System.out.println("Cat move");
  75.  
  76. }
  77.  
  78. }

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

  1. package com.bjpowernode.java_learning;
  2.  
  3. public class D67_2_ {
  4.  
  5. public static void main(String[] args) {
  6.  
  7. //第一种方式
  8.  
  9. int[] a = {12,3,4,5,6};
  10.  
  11. m1(a);
  12.  
  13. //第二种方式
  14.  
  15. m1(new int[] {34,4,5,6});
  16.  
  17. //m1({34,4,5,6});这种方式是不行的,编译报错
  18.  
  19. }
  20.  
  21. public static void m1(int[] a) {
  22.  
  23. for(int i = 0;i<a.length;i++) {
  24.  
  25. System.out.println(a[i]);
  26.  
  27. }
  28.  
  29. }
  30.  
  31. }

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

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

2.例如:java ArrayTest07 abc def aaa

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

  1. package com.bjpowernode.java_learning;
  2.  
  3. public class D67_3_ArgsAnlysis {
  4.  
  5. public static void main(String[] args) {
  6.  
  7. System.out.println("String类型的数组中的元素个数为:" + args.length);
  8.  
  9. //遍历
  10.  
  11. for(int i=0; i<args.length;i++) {
  12.  
  13. System.out.println(args[i]);
  14.  
  15. }
  16.  
  17. //需求说明:运行该软件的时候必须提供用户名和密码。
  18.  
  19. //格式:java D67_3_ArgsAnlysis usrname password
  20.  
  21. //如果用户没有提供足够的参数,则退出系统
  22.  
  23. if (args.length != 2) {
  24.  
  25. System.out.println("要想使用这个系统,就必须这样输入java D67_3_ArgsAnlysis usrname password");
  26.  
  27. return ;
  28.  
  29. }
  30.  
  31. //参数正确,如果用户名为admin,密码是123则登陆成功
  32.  
  33. String username = args[0];
  34.  
  35. String passsword = args[1];
  36.  
  37. if ("admin".equals(username) && "123".equals(password)) {
  38.  
  39. //这里如果写成username.equals("admin"),就容易造成空指针异常
  40.  
  41. System.out.println("登录成功,欢迎admin");
  42.  
  43. }else {
  44.  
  45. System.out.println("登录失败,请重新确认")
  46.  
  47. }
  48.  
  49. }
  50.  
  51. }

四、源码:

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. python中模块的制作

    1.import 模块名 2.from 模块名 import 类名(或方法名或全局变量) 3.from 模块名 import *   导入模块名下的所有类名,方法,全局变量 4.from 模块名 im ...

  2. Win32 开发记录

    Typedefs LPCSTR = char* LPCWSTR = wchar_t* Webpages Control reference: https://docs.microsoft.com/en ...

  3. SpringBoot中普通类无法通过@Autowired自动注入Service、dao等bean解决方法

    无法注入原因: 有的时候我们有一些类并不想注入Spring容器中,有Spring容器实例化,但是我们又想使用Spring容器中的一些对象,所以就只能借助工具类来获取了 工具类: package com ...

  4. Spring Boot 概括

    Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 微服务 2014,martin fowler 微服务:架构风格 ...

  5. STM32单片机的软件重启和远程重启

    STM32单片机可以通过以下代码实现重启(core_cm3.h).同时如果利用AT命令进行无线通讯,服务器后台和客户端之间用MODBUS通讯即4G+MODBUS RTU,可以利用F05写单个线圈的方法 ...

  6. 帆软FineReport报表由于使用HTML显示后无法控制行高

    问题:帆软FineReport报表由于使用HTML显示后无法控制行高. 原因:首先每行的第一个单元格是以HTML显示的,然后,数据库查询的数据集中,sql语句中包含这个代码:'<pre>' ...

  7. Python中property属性的概论和使用方法

    property属性 概念: 定义一个方法但是使用装饰器property,只可以有一个self形参 可以用这样的属性动态的获取属性的值 定义方式(经典类) class Fun(): @property ...

  8. Design and History FAQ for Python3

    Source : Design and History FAQ for Python3 Why is there no goto? 你可以通过异常来获得一个可以跨函数调用的 "goto 结构 ...

  9. 用Total Commander替换windos默认资源管理器的方法

    Total Commander(简称TC)是一个功能强大的资源管理器. TC本身没有自带的替换windows资源管理器的功能,就必须自己动手解决了. 第一步先Google一下看有没有答案.当时搜出了不 ...

  10. B. Shortest Cycle 无向图求最小环

    题意: 给定 n 个点,每个点有一个权值a[i],如果a[u]&a[v] != 0,那么就可以在(u,v)之间连一条边,求最后图的最小环(环由几个点构成) 题解:逻辑运算 & 是二进制 ...