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.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料
Java连载67-深入一维数组、main方法中的args参数详解的更多相关文章
- 跟着阿里p7一起学java高并发 - 第19天:JUC中的Executor框架详解1,全面掌握java并发核心技术
这是java高并发系列第19篇文章. 本文主要内容 介绍Executor框架相关内容 介绍Executor 介绍ExecutorService 介绍线程池ThreadPoolExecutor及案例 介 ...
- 【C#基础知识】C#控制台程序入口函数 Main(string[] args) 参数详解
测试环境vs2019+.net5.0 请看 :https://cloud.tencent.com/developer/article/1507934 本测试环境vs2022+.net6.0 +wind ...
- java架构之路-(分布式)初识zookeeper安装与参数详解
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...
- 【图文+视频新手也友好】Java一维数组详细讲解(内含练习题答案+详解彩蛋喔~)
目录 视频讲解: 一.数组的概述 二.一维数组的使用 三.Arrays工具类中的sort方法(sort方法用的多,我们具体讲一下) 四.数组中的常见异常 五.一维数组练习题 六.彩蛋(本期视频使用的P ...
- C#中static void Main(string[] args) 参数详解
学习C#编程最常见的示例程序是在控制台应用程序中输出Hello World! using System; namespace DemoMainArgs { class Program { static ...
- C#控制台程序入口函数 Main(string[] args) 参数详解
学习C#编程最常见的示例程序是在控制台应用程序中输出Hello World! using System; namespace DemoMainArgs { class Program { static ...
- int main(int argc,char* argv[])参数详解
argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[] ...
- jQuery()方法的第二个参数详解
关于jQuery()方法的第二个参数,有下面这几种用法: 1.jQuery(selector, [context]) 这种用法,相当于 $(context).find(selector) 或者 con ...
- c语言main函数返回值、参数详解(返回值是必须的,0表示正常退出)
C语言Main函数返回值 main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其它数字的含义则由系统决定.通常,返回非零代表程序异常退出. 很多人甚至市面上的一些书籍,都 ...
随机推荐
- @implementer,抽象类,接口
@implementer,抽象类,接口 1. implementer 在看twisted源码时,经常出现@implementer(IReactorFDSet) 它来自zope.interfa ...
- 模块学习-time,datetime模块
1 time.timezone #以秒为单位显示时区 >>> import time >>> time.timezone -28800 北京为东八区,所以为-288 ...
- python开发接口
享一段代码,开发了3个接口: 1.上传文件 2.查看所有文件 3.下载文件 使用python开发,需要安装flask模块,使用pip ...
- Caffe2 创建你的专属数据集(Create Your Own Dataset)[9]
这一节尝试把你的数据转换成caffe2能够使用的形式.这个教程使用Iris的数据集.你可以点击这里查看Ipython Notebook教程. DB数据格式 Caffe2使用二进制的DB格式来保存数据. ...
- 模拟服务容器Ioc
服务容器是一个用于管理类依赖和执行依赖注入的强大工具. 一个类要被容器所能够提取,必须要先注册至这个容器.既然称这个容器叫做服务容器,那么我们需要某个服务,就得先注册.绑定这个服务到容器,那么提供服务 ...
- 记一次安装体验:pwn工具
几天前删了JDK,结果和VM在一个目录中,结果VM全没了,重安走起 记载一下安装虚拟机出现的问题,官网一个字....慢,于是找了百度网盘,据说win10版本太低没法用,我就下了vw15.5.0(建立在 ...
- Linux centos7VMware Apache和PHP结合、Apache默认虚拟主机
一.Apache和PHP结合 httpd主配置文件/usr/local/apache2.4/conf/httpd.conf 启动报错 [root@davery ~]# /usr/local/apach ...
- Linux centos7 Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法
一. Linux网络相关 yum install net-tools ifconfig查看网卡ip ifup ens33开启网卡 ifdown ens33关闭网卡 设定虚拟网卡ens33:0 mii- ...
- redis之string数据类型常用方法总结
目录 redis 字符串(string)[需要掌握] 特点 语法 redis 字符串(string)[需要掌握] 特点 一个键能存储512MB数据 string类型是二进制安全的,可以存储任何数据,比 ...
- RedHat OpenShift QuickStart 1.1 OpenShift基础
openshift 提供了命令行工具和web可视化页面,这些工具通过REST API去和openshift交互 一.开始为开发人员使用OpenShift 1. 探索命令行 2. 探索web conso ...