今天的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方法。