System.out.print(a[i]+"\t");
}
}
}
实验总结
本次实验是刚开始接触java语言的简单数学运算程序设计,在之前学过C语言的基础下,java和C语言最大共同点就是publicstaticvoidmain(String[]args),这是java程序的入口地址,java虚拟机运行程序的时候首先找的就是main方法.跟C语言里面的main()函数的作用是一样的.只有有main()方法的java程序才能够被java虚拟机欲行,可理解这句是java为规定的格式。
但是由于受到C语言的影响,还是有点转变不过来,特别是一题关于输出“+”号连接应用等问题经常忘记导致程序报错,第五题java程序输入的方式和数组创建引用都是java语言特有的,而且是非常重要的。
实验三类与对象
一、实验目的
1.掌握类和对象的基本概念以及面向对象程序设计的基本思想。
2.掌握类的设计、构造方法、类的成员变量和成员方法。
3.掌握实例对象的创建与使用。
4.掌握变量作用域范围与参数传递方式。
5.通过试验,加深对Java语言和类的了解。
二、实验原理
类是对一组具有相同属性、表现相同行为的对象的描述,类名必须是一个有效的标识符,习惯上以大写字母开头。
类名后以花括号括住的内容为类体,在类体中可以声明多个成员,这些成员分为数据成员和方法成员。
数据成员用于定义类的属性,方法成员用于定义类的行为。
声明一个类的成员时,可以用保留字private和public控制数据成员或方法成员是否允许其它程序片段访问。
在private后声明的变量称为私有成员,这些成员仅能由该类中声明的方法来访问;在public后声明的变量称为公有成员,这些成员是类与外部世界的接口。
考虑到类是一种类型,那么它也可以像基本数据类型一样声明具体的实例,这些实例称为对象。
类中定义的数据成员决定了该类的每一个对象实例的表示方法,方法成员决定了该类的每一个对象实例的可用操作。
保留字new的作用是为对象分配存储空间并初始化这些存储空间的值。
声明一个类的数据成员时可用初始化设置数据成员的初始值,创建对象实例时这些初始化语句会自动执行一次。
对象引用是使用声明语句声明的变量,而对象实例是使用new创建的一片匿名的存储区域,该存储区域由该对象实例的实例变量的存储区域组成。
在Java程序中只能通过对象引用操作对象实例。
三、实验环境
JDK1.6forwindows
四、实验内容和步骤
1.编写程序实现如下功能:
已知学生类有域变量(学号、姓名、性别、年龄)和方法(构造方法、获得学号、获得姓名、获得性别、获得年龄、修改年龄,显示基本信息),定义一组学生对象,并初始化他们的基本信息,然后依次输出。
修改某人的年龄,再输出此人的基本信息。
附:
实验步骤
1定义类Student,并添加如下域变量:
Stringsno;Stringname;Stringsex;intage;
2在类Student中添加如下方法,并编写代码实现具体方法的功能:
publicStudent(Stringfsno,Stringfname,Stringfsex,intfage){……}
StringgetSno(){……}
StringgetName(){……}
StringgetSex(){……}
intgetAge(){……}
voidsetAge(intfage){……}
voiddisplay(){……}
3定义一个包含main方法的Application程序类sy3_1,初始化一个学生类对象数组,并利用循环语句显示所有学生的基本信息。
4保存文件名为sy3_1.java,然后编译、调试和运行程序。
程序源代码:
classStudent
{Stringsno;//设置类的域变量
Stringname;
Stringsex;
intage;
//构造方法
publicStudent(Stringfsno,Stringfname,Stringfsex,intfage)
{this.sno=fsno;
this.name=fname;
this.sex=fsex;
this.age=fage;
}
//成员方法:
获得学号
publicStringgetNO()
{returnsno;
}
//成员方法:
获得姓名
publicStringgetName()
{returnname;
}
//成员方法:
获得性别
publicStringgetSex()
{returnsex;
}
//成员方法:
获得年龄
publicintgetAge()
{returnage;
}
//成员方法:
修改年龄
voidsetAge(intfage)
{age=fage;
}
//成员方法:
显示基本信息
voiddisplay()
{System.out.println(getNO()+""+getName()+""+getSex()+""+getAge());
}
}
publicclasssy3_1
{publicstaticvoidmain(Stringargs[])
{Students[]=newStudent[3];
floatsum,average;
s[0]=newStudent("2013394101","王","男",20);
s[1]=newStudent("2013394108","李","女",18);
s[2]=newStudent("2013394118","林","男",19);
System.out.println("学号姓名性别年龄");
for(inti=0;i<=2;i++)
s[i].display();
s[1].setAge(17);
s[1].display();
}
}
运行效果截图:
2.定义一个名为Rectangle表示长方形的类,它包含double类型的长(length)和宽(width)两个数据成员和以下成员方法:
①为Rectangle类建立构造方法;
②建立与length属性对应的getLength()方法,为length获取数值;
③建立与length属性对应的setLength()方法,用于更改length属性的值;
④建立与width属性对应的getWidth()方法,为width获取数值;
⑤建立与width属性对应的setWidth()方法,用于更改width属性的值;
⑥计算长方形的周长的方法getPerimeter();
⑦计算长方形的面积的方法getArea();
编写另一个类sy3_2,在其main方法中定义并实例化一个长方形对象,输出这个长方形的长、宽值,计算其周长和面积并输出。
修改长方形的长、宽值,再次输出长方形的周长和面积。
程序源代码如下:
classRectangle//定义长方形类Rectangle
{privatedoublelength;//声明数据成员length
privatedoublewidth;//声明数据成员width
publicRectangle(doubleflength,doublefwidth)//构造函数
{this.length=flength;
this.width=fwidth;
}
//定义成员函数getLength(),用来得到长方形的长
publicdoublegetLength()
{returnlength;
}
//定义成员函数getWidth(),用来得到长方形的宽
publicdoublegetWidth()
{returnwidth;
}
//定义成员函数setLength(),用来改变长方形的长
publicvoidsetLength(doubleflength)
{length=flength;
}
//定义成员函数setWidth(),用来改变长方形的宽
publicvoidsetWidth(doublefwidth)
{width=fwidth;
}
//定义函数成员getPerimeter,用来计算周长
publicdoublegetPerimeter()
{return2*(length+width);
}
//定义函数成员GetArea,用来计算面积
publicdoublegetArea()
{returnlength*width;
}
//成员方法:
显示信息
voiddisplay()
{System.out.println(getLength()+""+getWidth()+""+getPerimeter()+""+getArea());
}
}
publicclasssy3_2
{publicstaticvoidmain(Stringargs[])
{Rectangler1=newRectangle(10,20);
System.out.println("长宽周长面积");
r1.display();
r1.setLength(10);
r1.setWidth(20);
r1.display();
}
}
运行结果如下图:
3.编写程序实现如下功能:
已知学生类有域变量(姓名、考号、综合成绩)和方法(获取综合成绩显示基本信息),学校类有静态变量(录取分数线)和方法(设置录取分数、获取录取分数线)。
现要求编写程序输出一组学生对象中被某学校录取的学生基本信息。
程序源代码:
importjavax.swing.*;
classStudent
{Stringsno;//设置类的域变量
Stringname;
floatscore;
//构造方法
publicStudent(Stringfsno,Stringfname,floatfscore)
{this.sno=fsno;
this.name=fname;
this.score=fscore;
}
//成员方法:
获得学号
publicStringgetNO()
{returnsno;
}
//成员方法:
获得姓名
publicStringgetName()
{returnname;
}
//成员方法:
获得分数
publicfloatgetScore()
{returnscore;
}
//成员方法:
显示基本信息
voiddisplay()
{System.out.println(getNO()+""+getName()+""+getScore());
}
}
classSchool
{floatscoreline;
publicSchool(floatfscoreline)
{this.scoreline=fscoreline;
}
floatgetScoreline()
{Stringstr=JOptionPane.showInputDialog(null,"输入学校的入取分数线!
");
intw=Integer.parseInt(str);
returnw;
}
}
publicclasssy3_3
{publicstaticvoidmain(Stringargs[])
{floatfsx;
Students[]=newStudent[3];
s[0]=newStudent("2013394101","王",560);
s[1]=newStudent("2013394118","林",580);
s[2]=newStudent("2013394114","陈",570);
Schoolsh=newSchool(600);
fsx=sh.getScoreline();
System.out.println("学号姓名分数");
for(inti=0;i<=2;i++)
if(fsx<=s[i].score)s[i].display();
}
}
程序执行结果如下图