【Java】在Java实验课上学到的一点关于main方法的小知识

今天的Java实验课是学习类与对象,先贴一段代码。

class Student {
	String name;
	int age;
	int chinese;
	int math;
	int english;
	int total()//返回三科的总分
	{
		return chinese + math + english;
	}
	int average()//返回三科的平均分
	{
		return (chinese + math + english)/3; 
	}
}

这是实验的部分内容,此处定义了一个Student类。

接下来就是创建该类的对象及使用,附上第二段代码。

class MyObject {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student s1=new Student();
		s1.name="张三";
		s1.age=13;
		s1.chinese=80;
		s1.math=90;
		s1.english=85;
		System.out.println("你好,我叫"+s1.name+",我今年"+s1.age+"岁");
		System.out.println("我的总分是"+s1.total());
		System.out.println("我的平均分是"+s1.average());
		Student s2=new Student();
		s2.name="李四";
		s2.age=12;
		s2.chinese=80;
		s2.math=90;
		s2.english=90;
		System.out.println("你好,我叫"+s2.name+",我今年"+s2.age+"岁");
		System.out.println("我的总分是"+s2.total());
		System.out.println("我的平均分是"+s2.average());
	}

}

此时机灵可爱的室友为了了解main方法中的参数寻找了这样一篇博客:

http://www.cnblogs.com/dodocie/p/7439651.html

在这篇博文的第二点,提到了可以在另一个类中向包含main()的类传递参数,于是仿照例子写了这一段代码:

class MyObject {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//Student s1=new Student();
		String[] b= {"6","6","6"};
		Student.main(b);
		System.out.print("hi");
	}

}

预计运行结果应该为:

6

hi

但是实际上输出了40···

检查之后发现是参数的类型不对,需要用Integer.parseInt()方法将String[]转化成int类型

最终代码如下:

class Student {
	String name;
	int age;
	int chinese;
	int math;
	int english;
	int total()//返回三科的总分
	{
		return chinese + math + english;
	}
	int average()//返回三科的平均分
	{
		return (chinese + math + english)/3; 
	}
	public static void main(String[] args)
	{
		Student a=new Student();
		a.chinese=Integer.parseInt(args[0]);
		a.math=Integer.parseInt(args[1]);
		a.english=Integer.parseInt(args[2]);
		System.out.println(a.average());
	}
}

实验表明:main方法也可以用来传递参数,当两边参数类型不匹配时,程序并不会报错,而是会执行该类(此处为Student类而非MyObject类)下的main方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值