Java连载67-深入一维数组、main方法中的args参数…
2020-01-03 16:02:07来源:博客园 阅读 ()
一、复习了一维数组,还复习了强制类型转换的注意点。
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.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料
原文链接:https://www.cnblogs.com/ruigege0000/p/12142905.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:月薪过万必会的:双亲委托模型
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash