实验一:熟悉系统及环境
(1)在自己使用的机器上安装JDK,并正确设置系统环境变量。
(2)利用记事本或eclipse编写Java应用程序,在屏幕上显示如下信息:
************
Hello world!
************
(3)将上节课的练习题,在Java环境下进行验证。
(4)书后习题2.9,完成该题后,将代码打印或手写出来,下周一上课前交作业。
试编码定义一个公有类PubTest1,它含有两个浮点类型变量fvar1和
fvar2,还有一个整数类型的变量ivar1,PubTest1类中有一个方法
sum_f_I(),它将fvar1和ivar2的值相加,结果放在fvar2中。
提示:
1.为成员变量fvar2赋初值;
2.用print()方法显示相加结果;
3.在main()方法中创建实例pubt1来测试该类中的所有方法。import java.util.*;
class PubTest1{
private int ivar1;
private float fvar1,fvar2;
public PubTest1(){
fvar2=0.0f;
}
public float sum_f_I(){
fvar2=fvar1+ivar1;
return fvar2;
}
public void print(){
System.out.println("fvar2="+fvar2);
}
public void setIvar1(int ivalue){
ivar1=ivalue;
}
public void setFvar1(float ivalue){
fvar1=ivalue;
}
}
public class PubMainTest {
public static void main(String[] args) {
PubTest1 pubt1=new PubTest1();
pubt1.setIvar1(10);
pubt1.setFvar1(100.02f);
pubt1.sum_f_I();
pubt1.print();
}
}
实验二:简单的输入/输出处理
(1)书后习题3.3,分析该题每条语句的执行结果,并编写程序进行验证。
public class Test {
public static void main(String[] args) {
int b1=1;
int b2=1;
System.out.println("b1=" + b1);
System.out.println("b2=" + b2);
b1<<=31;
b2<<=31;
System.out.println("b1=" + b1);
System.out.println("b2=" + b2);
b1 >>= 31;
System.out.println("b1=" + b1);
b1 >>= 1;
System.out.println("b1=" + b1);
b2 >>>= 31;
System.out.println("b2=" + b2);
b2 >>>= 1;
System.out.println("b2=" + b2);
}
}
(2)小组讨论题:第二章书后练习2.10,6人为一个小组,每个小组成员按要求完成自己的任务,6名成员完成自己编写的内容之后,将所有内容合并到一个程序中,并进行测试,保证程序能够正常运行。
题目说明如下:
以一个高等学校中的各类人员为研究对象,例如可以定义教师类(Teacher),包括以下属性:姓名(name)、性别(sex)、出生日期(Date)、工资号(salaryID)、所在系所(depart)、职称(posit)等基本信息,同时还可以定义相关的方法。
教师类又可以包含研究系列、实验系列、图书管理系列、行政系列等子类,这些子类可以从父类中继承属性和方法,也可以再定义其他的属性和方法。参照这个例子,请定义一所高校中包含的各类人员的类,为每个类指明它应有的属性,按实际情况组织类的层次。对每个类的每个属性,要定义必要的相应方法。
小组各成员分工如下:
成员一:定义日期类(Date),初始日期为1900年1月1日,具有可以设置日期和返回年、月、日等功能。
成员二:定义基类(Teacher),包含各访问各属性的set方法和get 方法来记录和返回教师信息,以及print()方法输出教师基本信息。
成员三:定义子类研究系列类(ResearchTeacher),继承父类共有的属性,并增加特殊属性研究领域(resField),以及特殊属性的访问方法,并用print()方法输出研究系列教师基本信息。
成员四:定义子类实验系列类(LabTeacher),继承父类共有的属性,并增加特殊属性实验室名称(labName),以及特殊属性的访问方法,并用print()方法输出研究系列教师基本信息。
成员五:定义子类图书管理系列类(LibTeacher),继承父类共有的属性,并增加特殊属性图书室名称(libName),以及特殊属性的访问方法,并用print()方法输出研究系列教师基本信息。
成员六:定义子类行政系列类(AdminTeacher),继承父类共有的属性,并增加特殊属性管理职位(managePos),以及特殊属性的访问方法,并用print()方法输出研究系列教师基本信息。
import java.util.*;
class Date {
private int year;
private int month;
private int day;
public Date(int day, int month, int year) { //构造函数,构造方法this.year = year;
this.month = month;
this.day = day;
} //end public MyDate(int y,int m,int d)
public int getYear() { //返回年
return year;
} //end getYear()
public int getMonth() { //返回月
return month;
} //end getMonth()
public int getDay() { //返回日
return day;
} //end getDay()
} //end class Date
public class Teacher {
String name;//教师名字
boolean sex;//性别,true表示男性
Date birth;//出生日期
String salaryID;//工资号
String depart;//教师所在系所
String posit;//教师职称
String getName() {
return name;
}
void setName(String name) {
https://www.wendangku.net/doc/f88400125.html, = name;
}
boolean getSex() {
return sex;
}
void setSex(boolean sex) {
this.sex = sex;
}
Date getBirth() {
return birth;
}
void setBirth(Date birth) {
this.birth = birth;
}
String getSalaryID() {
return salaryID;
}
void setSalaryID(String salaryID) {
this.salaryID = salaryID;
}
String getDepart() {
return depart;
}
void setDepart(String depart) {
this.depart = depart;
}
String getPosit() {
return posit;
}
void setPosit(String posit) {
this.posit = posit;
}
public Teacher(){
System.out.println("父类无参数的构造方法!!!!!!!"); }//如果这里不加上这个无参数的构造方法将会出错!!!!public Teacher(String name,boolean sex,Date birth,
String salaryid,String depart,String posit){ https://www.wendangku.net/doc/f88400125.html,=name;
this.sex=sex;
this.birth=birth;
this.salaryID=salaryid;
this.depart=depart;
this.posit=posit;
}//end Teacher()
public void print(){
System.out.print("the teacher'name:");
System.out.println(this.getName());
System.out.print("the teacher'sex:");
if(this.getSex()==false){
System.out.println("女");
}
else{
System.out.println("男");
}
System.out.print("the teacher'birth:");
System.out.println(this.getBirth().getYear()+"-"+
this.getBirth().getMonth()+"-"+
this.getBirth().getDay()); System.out.print("the teacher'salaryid:");
System.out.println(this.getSalaryID());
System.out.print("the teacher'posit:");
System.out.println(this.getPosit());
System.out.print("the teacher'depart:");
System.out.println(this.getDepart());
}//end print()
public static void main(String[] args) {
Date dt1=new Date(11,23,1989);
Date dt2=new Date(2,6,1975);
Date dt3=new Date(11,8,1964);
Date dt4=new Date(10,4,1975);
Date dt5=new Date(8,9,1969);
//创建各系教师实例,用来测试
Teacher t1=new Teacher("王莹",false,dt1,"123","经济学","prefessor");
ResearchTeacher rt=new ResearchTeacher("杨zi青",true,dt2,"421","软件工程",
"associate prefessor","software");
LabTeacher lat=new LabTeacher("王夏瑾",false,dt3,"163","外语",
"pinstrucor","speech lab");
LibTeacher lit=new LibTeacher("马二孩",true,dt4,"521","大学物理",
"prefessor","physicalLib");
AdminTeacher at=new AdminTeacher("王xi",false,dt5,"663","环境",
"prefessor","dean");
/////////分别调用各自的输出方法,输出相应信息//////////////////////////// System.out.println("-------------------------------");
t1.print();//普通教师信息
System.out.println("-------------------------------");
rt.print();//研究系列教师信息
System.out.println("-------------------------------");
lat.print();//普通教师信息
System.out.println("-------------------------------");
lit.print();//实验系列教师信息
System.out.println("-------------------------------");
at.print();//行政系列教师信息
System.out.println("-------------------------------");
}//end main()
}//end public class Teacher
class ResearchTeacher extends Teacher{
private String resField;
public ResearchTeacher(String name, boolean sex, Date birth, String salaryid,
String depart, String posit, String resField) { https://www.wendangku.net/doc/f88400125.html, = name;
this.sex = sex;
this.birth = birth;
this.salaryID = salaryid;
this.depart = depart;
this.posit = posit;
this.resField = resField;
} //end public ResearchTeacher(){}
String getResField(){
return resField;
}
void setResField(String resField){
this.resField=resField;
}
public void print() {
System.out.print("research teacher info is:");
System.out.print("the teacher'name:");
System.out.println(this.getName());
System.out.print("the teacher'sex:");
if (this.getSex() == false) {
System.out.println("女");
}
else {
System.out.println("男");
}
System.out.print("the teacher'birth:");
System.out.println(this.getBirth().getYear() + "-" +
this.getBirth().getMonth() + "-" +
this.getBirth().getDay());
System.out.print("the teacher'salaryid:");
System.out.println(this.getSalaryID());
System.out.print("the teacher'posit:");
System.out.println(this.getPosit());
System.out.print("the teacher'depart:");
System.out.println(this.getDepart());
System.out.print("the teacher'resField:");
System.out.println(this.getResField());
} //end print()
}//end class ResearchTeacher
class LabTeacher extends Teacher{
private String labName;
public LabTeacher(String name, boolean sex, Date birth,
String salaryid, String depart,
String posit, String labName) { https://www.wendangku.net/doc/f88400125.html, = name;
this.sex = sex;
this.birth = birth;
this.salaryID = salaryid;
this.depart = depart;
this.posit = posit;
https://www.wendangku.net/doc/f88400125.html,bName = labName;
} //end public ResearchTeacher(){}
String getLabName(){
return labName;
}
void setLabName(String labName){
https://www.wendangku.net/doc/f88400125.html,bName=labName;
}
public void print() {
System.out.print("lab teacher info is:");
System.out.print("the teacher'name:");
System.out.println(this.getName());
System.out.print("the teacher'sex:");
if (this.getSex() == false) {
System.out.println("女");
}
else {
System.out.println("男");
}
System.out.print("the teacher'birth:");
System.out.println(this.getBirth().getYear() + "-" +
this.getBirth().getMonth() + "-" +
this.getBirth().getDay());
System.out.print("the teacher'salaryid:");
System.out.println(this.getSalaryID());
System.out.print("the teacher'posit:");
System.out.println(this.getPosit());
System.out.print("the teacher'depart:");
System.out.println(this.getDepart());
System.out.print("the teacher'labName:");
System.out.println(https://www.wendangku.net/doc/f88400125.html,bName);
} //end print()
}//end class LabTeacher
class LibTeacher extends Teacher{
private String libName;
public LibTeacher(String name,boolean sex,Date birth,
String salaryid,String depart,
String posit,String libName){ https://www.wendangku.net/doc/f88400125.html, = name;
this.sex = sex;
this.birth = birth;
this.salaryID = salaryid;
this.depart = depart;
this.posit = posit;
this.libName=libName;
}//end public ResearchTeacher(){}
String getLibName(){
return libName;
}
void setLibName(String libName){
this.libName=libName;
}
public void print() {
System.out.print("lib teacher info is:");
System.out.print("the teacher'name:");
System.out.println(this.getName());
System.out.print("the teacher'sex:");
if (this.getSex() == false) {
System.out.println("女");
}
else {
System.out.println("男");
}
System.out.print("the teacher'birth:");
System.out.println(this.getBirth().getYear() + "-" +
this.getBirth().getMonth() + "-" +
this.getBirth().getDay());
System.out.print("the teacher'salaryid:");
System.out.println(this.getSalaryID());
System.out.print("the teacher'posit:");
System.out.println(this.getPosit());
System.out.print("the teacher'depart:");
System.out.println(this.getDepart());
System.out.print("the teacher'libName:");
System.out.println(this.libName);
} //end print()
}//end class LibTeacher
class AdminTeacher extends Teacher{
private String managePos;
public AdminTeacher(String name,boolean sex,Date birth,
String salaryid,String depart,
String posit,String managePos){ https://www.wendangku.net/doc/f88400125.html, = name;
this.sex = sex;
this.birth = birth;
this.salaryID = salaryid;
this.depart = depart;
this.posit = posit;
this.managePos=managePos;
}//end public ResearchTeacher(){}
String getManagePos(){
return managePos;
}
void setManagePos(String managePos){
this.managePos=managePos;
}
public void print() {
System.out.print("adminteacher info is:");
System.out.print("the teacher'name:");
System.out.println(this.getName());
System.out.print("the teacher'sex:");
if (this.getSex() == false) {
System.out.println("女");
}
else {
System.out.println("男");
}
System.out.print("the teacher'birth:");
System.out.println(this.getBirth().getYear() + "-" +
this.getBirth().getMonth() + "-" +
this.getBirth().getDay());
System.out.print("the teacher'salaryid:");
System.out.println(this.getSalaryID());
System.out.print("the teacher'posit:");
System.out.println(this.getPosit());
System.out.print("the teacher'depart:");
System.out.println(this.getDepart());
System.out.print("the teacher'managePos:");
System.out.println(this.managePos);
} //end print()
}//end class AdminTeacher
实验三:
1、验证课堂所讲实例,自行编写一个猜拳游戏;
2、识辨写一个猜数字的游戏,由系统随机生成一个0~100之间的数,并由用户输入一个数,并判断用户所猜数字与系统生成数字之间的大小关系,程序会有“你猜大了!”“你猜小了!”“恭喜你,猜对了!”等提示,用户最多只能猜十次,超过十次之后显示“你输了,这个数字是**!”(本题目需打印出来于下次上课前交作业。)
import java.util.Scanner;
public class guess
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个1~100之间的整数!");
int j = (int) (Math.random() * 100 + 1);
while (true) {
int i = scan.nextInt();
if (i > j) {
System.out.println("您猜的数大了");
System.out.println("请继续输入!");
}
else if (i < j) {
System.out.println("您猜的数小了");
System.out.println("请继续输入!");
}
else{
System.out.println("恭喜您猜对了");
System.out.println("这个数是:"+i);
break;
}
}
}
}
3、书后习题4.10,定义一个Student数组,其中保存学生的基本信息,包括姓名、学号、性别,还分别保存三门课程的成绩及三门课程对应的学分,试编程计算这三门课程的学分积,并按学分积的降幂进行排序,输出排序后的结果。
编程提示:
根据题义,共有两种对象,一是课程,二是学生。因此分别定义两个类。
1、对于课程对象,定义了Sclass类,用来存储课程的基本信息,包括课程编号classid及其对应的学分credit;
2、对于学生对象,定义了Student类,存储学生的基本信息,包括学号sid、姓名sname、性别sex,另外还有3门课程的成绩及学分积avgscore,3门课程的成绩存储在数组score中。
3、为了测试程序,定义了主类Stuscore,在这个类中首先对学生数组(假设有5名学生)和课程数组的初始化,并包含学分积的计算方法accuscore()和按照学分积对学生进行降序排序的sort()方法。
4、多名学生的信息保存在一个数组中。
5、学分积的计算方法:学分积是一种平均成绩的算法,用各科的成绩乘以相应科目的学分,相加后除以总的学分。
6、程序运行结果可参考下图。
class StudentClass { //课程类
String classid;
int credit;
StudentClass(String classid, int credit) {
this.classid = classid;
this.credit = credit;
}
} //end class StudentClass
class StudentInfo { //学生信息类
String sid;
String sname;
char sex;
float avgscore;
float[] score = new float[3];
StudentInfo(String id, String name, char sex, float s1, float s2, float s3) { this.sid = id;
this.sname = name;
this.sex = sex;
this.score[0] = s1;
this.score[1] = s2;
this.score[2] = s3;
}
StudentInfo() {}
StudentInfo(String id, String name, char sex) {
this.sid = id;
this.sname = name;
this.sex = sex;
} //end StudentInfo(String id,String name,char sex)
void print() {
System.out.println("学号:" + this.sid + " \t名字:" + this.sname + "\t性别:" +
this.sex);
System.out.println("语文成绩=" + this.score[0] + "\n数学成绩=" + this.score[1] +
"\n自然科学成绩=" + this.score[2]);
System.out.println("平均分:" + this.avgscore);
System.out.println();
} //end void print()
void print2() {
System.out.println("姓名:"+this.sname+"\t学号:" + this.sid + "\t 平均分:" +
this.avgscore);
} //end void print2()
} //end class StudentInfo{//学生信息类
public class StuScore { //课程数组初始化
StudentInfo[] st;
StudentClass[] sc = new StudentClass[3];
void initStudentClass() {
sc[0] = new StudentClass("语文", 5);
sc[1] = new StudentClass("数学", 3);
sc[2] = new StudentClass("自然科学", 4);
} //end public class StuScore {//课程数组初始化
void initStudentInfo() { //学生信息数组初始化
st = new StudentInfo[5];
st[0] = new StudentInfo("20110023001", "王莹", '女', 100, 100, 100);
st[1] = new StudentInfo("20116546045", "杨子青", '男', 67, 71, 80);
st[2] = new StudentInfo("20115641452", "王溪", '女', 91, 93, 90);
st[3] = new StudentInfo("20111421242", "二孩", '男', 57, 76, 74);
st[4] = new StudentInfo("20119751452", "王夏瑾", '女', 76, 85, 80);
} //end void initStudentInfo(){//学生信息数组初始化
void accuScore() { //计算学分
float as = 0;
int cs = 0;
for (int i = 0; i < st.length; i++) {
for (int j = 0; j < sc.length; j++) {
as += sc[j].credit * st[i].score[j];
cs += sc[j].credit;
} //end for
st[i].avgscore = (float) (as / cs);
} //end for
} //end void AccuScore()计算学分
void sortScore() { //学分排序
StudentInfo tmp = new StudentInfo();
for (int i = 0; i < st.length; i++) {
for (int j = i + 1; j < st.length; j++) {
if (st[i].avgscore < st[j].avgscore) {
tmp = st[i];
st[i] = st[j];
st[j] = tmp;
}
}
} //end for
} //end 排序
void print() { //输出学生信息
System.out.println("-------------------------------");
System.out.println("学生信息如下:");
System.out.println("-------------------------------");
for (int i = 0; i < st.length; i++) {
st[i].print();
} //end for
} //end void print()
void print2() { //输出排名信息
System.out.println("-------------------------------");
System.out.println("学生成绩排名信息如下:");
System.out.println("-------------------------------");
for (int i = 0; i < st.length; i++) {
st[i].print2();
} //end for
} //end void print2()
public static void main(String[] args) {
StuScore stc = new StuScore();
stc.initStudentClass();
stc.initStudentInfo();
stc.accuScore();
stc.print();
stc.sortScore();
stc.print2();
} //endpublic static void main(String[] args)
} //end public class StuScore
实验四:类的继承
1、设计并实现一个Vehicle类及子类,它们代表主要的交通工具,定义必要的属性信息及访问方法。
编程提示:
1、对于 Vehicle类定义基本的属性,包括品牌 brand、颜色color、价格price、数量number等,定义print()方法用来显示其属性中的值;
2、对于子类 Car :有特殊属性最高时速 speed ;子类 Truck :有特殊属性最高时速 speed 和载重量 weight。
3、为Vehicle类定义两个构造方法,分别用来生成Vehicle实例。第一个构造方法带品牌及颜色两个参数,第二个构造方法带全部的4个参数。实现时,第二个构造方法可以借用第一个构造方法,完成前两个属性的赋值。
4、在子类中使用super()调用父类的构造方法,并调用父类的print()方法。
5、在main()方法中定义类的实例进行测试。
public class Vehicle
{
private String name;
private String brand;
private String color;
private int number;
public Vehicle(String name;String brand;String color;String number)
{
https://www.wendangku.net/doc/f88400125.html,=name;
this.brand=brand;
this.color=color;
this.number=number;
}
public String getName()
{
return name;
}
public String getBrand()
{
return brand;
}
public String getColor()
{
return color;
}
public String getNumber()
{
return number;
}
public void setName(String name)
{
https://www.wendangku.net/doc/f88400125.html,=name;
}
public void setBrand(String brand)
{
this.brand=brand;
}
public void setcColor(String color)
{
this.color=color;
}
public void setNumber(String number) {
this.number=number;
}
public void jiasu()
{
System.out.println("加速!"); }
public void jiansu()
{
System.out.println("减速!"); }
public void move()
{
System.out.println("移动!");
}
public void stop()
{
System.out.println("停止!");
}
public void toString(){
System.out.println("名字"+getName()+"品牌"+getBrand()+"颜色"+getColor+"车牌号"+getNumber());
}
}
class Truck extends Vehicle
{
private int speed;
public Vehicle(String name;String brand;String color;String number,int speed)
{
super(name;brand;color;number);
this.speed=speed;
}
public int getSpeed()
{
return speed;
}
public void setSpeed(int speed)
{
this.speed=speed;
}
public void move()
{
System.out.println("移动!");
}
public void stop()
{
System.out.println("停止!");
}
public void toString(){
System.out.println("名字"+getName()+"品牌"+getBrand()+"颜色"+getColor+"车牌号"+getNumber()+"车速"+getSpeed());
}
public static void main(String args[])
{
Vehicle v = new Vehicle("名字","品牌","颜色","车牌号");
Truck t = new Truck("名字","品牌","颜色","车牌号",60);
v.toString();
t.toString();
}
}
实验五
//编写一个注册界面(如图所示),组件的位置、大小等格式自行调整。
package awt1;
import java.awt.*;
import javax.swing.*;
public class MyFrame extends JFrame {
JLabel l1,l2,l3,l4,l5,l6;
JTextField f1;
JPasswordField p1,p2;
JComboBox cb1;
String[] s={"天津市","北京市","上海市","重庆市"}; //创建数组s作为下拉菜单的可选项
JRadioButton[] jr=new JRadioButton[2];
ButtonGroup radioGroup;
JCheckBox[] jc=new JCheckBox[4];
JButton b1,b2;
MyFrame(){
super("注册");
l1=new JLabel("用户名:");
l1.setBounds(15,15,100,20);
l2=new JLabel("密码:");
l2.setBounds(15,45,100,20);
l3=new JLabel("再输入一次密码:");
l3.setBounds(15,75,100,20);
l4=new JLabel("性别:");
l4.setBounds(15,105,100,20);
l5=new JLabel("请选择所在城市");
l5.setBounds(15,145,100,20);
l6=new JLabel("兴趣爱好");
l6.setBounds(15,175,100,20);
f1=new JTextField("username",20);
f1.setBounds(150,15,100,20);
p1=new JPasswordField("password",20);
p1.setEchoChar('*');
p1.setBounds(150,45,100,20);
p2=new JPasswordField("password",20);
p2.setEchoChar('*');
p2.setBounds(150,75,100,20);
jr[0]=new JRadioButton("男",true);
jr[0].setBounds(150,105,60,30);
jr[1]=new JRadioButton("女");
jr[1].setBounds(250,105,60,30);
radioGroup=new ButtonGroup();
radioGroup.add(jr[0]);
radioGroup.add(jr[1]);
cb1=new JComboBox(); //创建一个可编辑的下拉菜单
cb1.addItem("天津市");
cb1.addItem("北京市");
cb1.addItem("上海市");
cb1.addItem("重庆市");
cb1.setEditable(true);
cb1.setBounds(150,135,100,30);
jc[0]=new JCheckBox("读书");
jc[0].setBounds(150,165,100,30);
jc[1]=new JCheckBox("旅游");
jc[1].setBounds(250,165,100,30);
jc[2]=new JCheckBox("购物");
jc[2].setBounds(150,195,100,30);
jc[3]=new JCheckBox("游泳");
jc[3].setBounds(250,195,100,30);
实验5 分支结构程序的设计 1.程序填空题,不要改变与输入输出有关的语句。 20004 计算旅途时间 输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 有效的时间范围是0000到2359,不需要考虑出发时间晚于到达时间的情况。 例:括号内是说明 输入 712 1411(出发时间是7:12,到达时间是14:11) 输出 The train journey time is 6 hrs 59 mins. import java.util.Scanner; public class Test20004 { public static void main(String[] args) { Scanner in=new Scanner(System.in); int time1, time2, hours, mins; time1=in.nextInt(); time2=in.nextInt(); /*------------------*/ /*计算两个时间之间的小时数和分钟数*/ hours=time2/100-time1/100; mins=time2%100-time1%100; /*当计算得到的分钟数为负数时进行调整*/ hours=mins>0?hours:hours-1; mins=mins>0?mins:mins+60; //或:if(mins<0){hours-=1;mins+=60;} System.out.println("The train journey time is "+hours+" hrs "+ mins+" mins."); } } 30001 显示两级成绩 输入一个正整数repeat (0 实验2:Java面向对象程序设计(一) 实验目的 ●掌握类的定义;掌握构造方法的使用;掌握对象的创建。 ●掌握静态变量与静态方法的使用;了解静态变量和成员变量的区别。 ●熟悉访问修饰符的作用;掌握访问修饰符的使用方法。 ●掌握方法的重载;掌握访问器get/set方法。 实验步骤 一、类和对象的创建 1.创建一个圆类,成员变量有半径radius和圆周率pi,提供计算圆面积的方法,并在main方法中创建圆类的对象,调用其计算面积的方法进行测试。 2.编写上述代码,编译运行代码,查看程序执行结果。 ●试述程序中两个类的各自作用。 ●类Circle都封装了什么?求圆面积的初始数据是通过哪个方法实现的?请修改程序采用构造函数的方法初始化数据。 ●类Circle是如何声明的?在类中都声明了什么?在主函数中是如何创建Circle类对象的? 二、静态变量和静态方法的设计 (一).静态变量和实例变量练习 1.创建一个类,类名为StaticVariableTest,包含static变量和实例变量,类型为int型,在main方法中分别调用这2个变量并且输出结果。 2.部分源代码如下: 3.将上述代码中的main方法补充完整后,编译运行代码,查看程序执行结果。 ●根据完善后的源码,分析调用静态变量和实例变量有什么不同? (二).静态方法和实例方法练习 1.创建一个类,类名为StaticMethodTest,包含一个静态方法和一个实例方法,在main方法中分别调用这个两个方法进行测试。 2.部分源代码如下: 3.将上述代码中的main函数补充完整,编译运行代码,查看程序执行结果。 ●根据完善后的源码,分析如何调用静态方法和实例方法? 三、访问修饰符与方法的重载 (一).访问修饰符练习 1.创建一个Person类,在该类中用不同的访问修饰符设立不同的person属性,再创建一个PersonTest类,包括main方法,在此类中分别访问Person类中各个属性。 2.源代码如下: 3.先填写下面的表格,在预测结果中,如果能打印输出,填写程序输出结果,否则填“N”。 ●记录程序运行结果。 表4-3-1预测和验证结果 4.编写上述代码,编译运行代码。在上表中填写程序验证结果。 ●访问private变量时,编译会出现什么问题,为什么? ●通过什么方式能访问private变量?编程实现访问Person类中的private变量。 实验报告 课程名称面向对象课程设计 实验项目名称类的继承 班级与班级代码13计算机科学与技术1班实验室名称(或课室)SS1 205 专业计算机科学与技术 任课教师尹华 学号:12251102120 姓名:林淑英 实验日期:2014 年4 月28 日 广东财经大学教务处制 姓名林淑英实验报告成绩 评语: 指导教师(签名) 年月日说明:指导教师评分后,实验报告交院(系)办公室保存。 实验三类的继承、多态、接口、访问控制符与修饰符 实验目的:通过编程练习掌握类的继承,多态,接口,访问控制符与修饰符的使用方法。 实验原理:类的继承,接口。 实验设备:计算机,Eclipse。 实验题目: 1.设计一个Person 类,其成员变量有:姓名(name)、性别(gender)、年 龄(age);再设计一个Student类,它是类Person的子类,其成员变量有:学号(id)、班名(cname)、成绩(score),类Student中要有一个方法 display(),用来显示一个学生的信息。 编写一个测试程序,创建一个Student类的对象,要求name和id 是自己的姓名和学号,输出学生的各种信息,学生的基本信息在类Student的带参数的构造方法中设定。 2.定义一个类A,该类有一个方法f,方法f可以输出英文字母,再定义 一个类B是A的子类,子类B不能重写父类A的方法f,子类有一个方法g,可以输出中文字符串。 编写测试程序,创建B的对象,输出英文字母和中文字符串。 3.定义一个坐标类Pointer,成员变量包括x和y;成员方法有: (1)构造方法 (2)setX、setY、getX、getY、display方法 (3)类方法distance用来计算两点之间的距离 编写测试程序,创建Pointer的两个对象并计算两个点坐标的距离。 Java面向对象程序设计实验课的心得体会经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。 学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。 Java思想:Java是一门面向对向语言,他定义一切都是对象面向对象,就是面对现实; 现实中的一切都是对象,他们有分类,就产生了“类”; 他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。 所以,面向对象的内部逻辑是分类。 面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等 原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。 面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。 我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对! 我的理解: 1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分), 实验三类与对象 1、(1)创建一个Rectangle类,添加两个(private)属性width与height (2)创建一个构造方法,选择width与height为形式参数。 (3)在Rectangle类中添加两个方法计算矩形的周长和面积 2、创建三角形、梯形和圆形的类封装:分别定义三角形、梯形和圆形类,要求每个类中包含构造方法、求周长及面积的方法。最后在主方法main中为三角形、梯形和圆形类创建对象并打印输出各种图形的周长及面积。(一个文件中包含三个class和main) a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。另外,Trangle类还具有一个boolean 型的属性,该属性用来判断三个属能否构成一个三角形。 b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。 c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的 功能。 3、编写下面程序写出运行结果,谈谈成员变量的继承与隐藏,方法的覆盖与重载。 上例内B继承了类A,在子类B中定义变量num2与父类A 同名,故在子类中父类成员变量num2被隐藏,故sum3=10+200=210;同时在子类B中父类A方法sum2()被重写(覆盖),使num2为子类定义值200,故sum4=50+200=250. 这个例子中,B是A的一个子类。其中声明了一个和父类A同名的变量num2,并定义了与之相同的方法sum2,这时在子类B中,父类的成员变量num2被隐藏,程序第25行父类的方法sum2被重载。于是子类对象所使用的变量num2为子类中定义的num2,子类对象调用的方法sum2( )为子类中所实现的方法。 4、理解下面3个类的定义,分析它们之间的关系,写出运行结果。 实验一 水仙花数: class shuixianhua {//水仙花数 public static void main(String arg[]) { int i,a,a1,b,b1,c; for(i=100;i<1000;i++) { a=i%10; a1=i/10; b=a1%10; b1=a1/10; c=b1%10; if(i==(a*a*a+b*b*b+c*c*c)) System.out.println(i); } } } 输出如下: 153 370 371 407 打印出100以内素数: public class sushu { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int i,j,k=0; for(i=2;i<100;i++){ if(i==2) System.out.println(i); i++; for(j=2;j k=1; } if(k==1) System.out.println(i); } } 求1!+2!+ (20) public class jiecheng { public static void main(String[] args) { int i,sum=0,k; for(i=1;i<=20;i++) { k=ji(i); sum=k+sum; } System.out.print(sum); } static int ji(int n) { if(n==1) return 1; else return ji(n-1)*n; } } 习题2.6 public class Test{ public static void main(String[] args)//第19题,打出图形.菱形{ int n=3; for(int i=1;i<=n;i++) { for(int k=n-1;k>=i;k--) { System.out.print(" "); } for(int j=1;j<=2*i-1;j++)//打印* { 一、实验目的 掌握类和对象的定义,以及它们之间的关系 学习类中属性和方法的设计 会用UML图来对类进行描述 熟悉修饰符的作用,会用set/get方法对数据进行封装 二、实验要求 设计一个名为Rectangle的类表示矩形。这个类包括: ?两个名为width和height的私有double型数据域。用来表示宽、高。默认值为1.0。 ?创建默认矩形的无参构造方法。 ?一个创建width和height为指定值的矩形的构造方法。 ?一个名为GetArea()的公有方法返回矩形面积double ?一个静态的Compare方法,比较两个矩形的面积大小是否相等并返回一个布尔型结果,相等返回true,不等返回false; 画出UML 类图,实现Rectangle类,编写测试程序创建两个Rectangle类的对象。第一个对象的width为1,height为1;第一个对象的width为5,height为6。调用compare方法判断两个矩形是否相等并显示结果。 三、实验内容 1.使用Jude工具绘制UML图 2.编写代码实现类Rectangle package edu.neu.li.test; publicclass Rectangle { privatedouble width; privatedouble height; public Rectangle() { this.width = 1.0; this.height = 1.0; public Rectangle(double width, double height) { this.width = width; this.height = width; } publicdouble GetArea() { returnthis.width * this.height ; } publicstaticboolean Compare(Rectangle rec1, Rectangle rec2) { if(rec1.GetArea()==rec2.GetArea()) { returntrue; } returnfalse; } } JavaWeb 实验三 一、JSP实验题: P105 例子4-1 P108 例4-2 P109 例4-3 P110例4-4 P111 例4-6 P115 例4-8 P118 例4-9 P124 例4-12 二、mysql实验题 1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下: CREATE TABLE score ( id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT , stu_id INT(10) NOT NULL , c_name VARCHAR(20) , grade INT(10) ); 2.为student表和score表增加记录 向student表插入记录的INSERT语句如下: INSERT INTO student VALUES( 901,'张老大', '男',1985,'计算机系', '北京市海淀区'); INSERT INTO student VALUES( 902,'张老二', '男',1986,'中文系', '北京市昌平区'); INSERT INTO student VALUES( 903,'张三', '女',1990,'中文系', '湖南省永州市'); INSERT INTO student VALUES( 904,'李四', '男',1990,'英语系', '辽宁省阜新市'); INSERT INTO student VALUES( 905,'王五', '女',1991,'英语系', '福建省厦门市'); INSERT INTO student VALUES( 906,'王六', '男',1988,'计算机系', '湖南省衡阳市'); 向score表插入记录的INSERT语句如下: INSERT INTO score VALUES(NULL,901, '计算机',98); INSERT INTO score VALUES(NULL,901, '英语', 80); java面向对象编程实验报告 篇一:java面向对象编程实验报告 信息工程学院 Java程序设计实验/实习报告 学院:信息工程学院班级:信息112 姓名:吴连梅学号:XX013305 成绩:A 实验二面向对象编程 1.实验目的 (1)掌握类与对象基本知识; (2)Java中的继承机制及包(package)、接口(interface)等的设计方法; (3)掌握static、this、super等关键字的使用; (4)掌握Java中两种比较器的用法。 2.实验内容 实验题 1 定义一个类Book,包含两个属性:一个是private的String类型的属性title、一个是private的float类型的属性listPrice,封装这两个属性的四个方法setTitle()和getTitle()、setListPrice( )和geListPrice ()。 基本要求: (1)设计类Book及类BookManagement,在类BookManagement中输出Book类的对象的两个private属性; (2)重写父类的toString()方法,实现Book类实例的两个属性的输出。 实验过程: 新建工程后,在工程下面建立一个包Book,在包下再建立一个Book类,类中包含两个属性,一个是private的String类型的属性title、一个是private的float类型的属性listPrice,之后是封装这两个属性的四个方法,用快捷键Alt+Shift+S选择gennerate Getters and Setters,再实验报告的内容与格式按任课教师的要求书写。 然后就是重写父类的toString()方法,用快捷键Alt+Shift+S选择gennerate toString,快捷重写。 这段程序写完是这样的: 接下来便是BookManagement类,在包book下新建一个类BookManagement, 写完的程序是这样的: BookManagement类中创建了书的对象,在主方法中调用output函数,赋值,输出。程序写完后,将其存盘,再进行运行,得出的结果如下: 实验题2 有两个类:MobileManagement和Mobile,分别描述如图 3.4所示两部手机名称及价格,类MobileManagemen(本文来自:小草范文网:java面向对象编程实验报告)t在包,而Mobile在包 《Java程序设计》实验报告 目录: 1题目 2目的和要求 3功能说明 4设计流程图 5源程序 6数据结果 7实验心得与体会 1、题目 用户自行定义一个异常,编程创建并抛出某个异常类的实例,运行该程序并观察执行结果。例如:用户密码的合法化验证,要求密码由4-6个数字组成,若长度不落在这个范围或不是由数字组成,抛出自己的异常。 2、目的和要求 熟悉ava的异常机制处理原理,掌握用户自定义异常类,掌握如何抛出异常、捕获并处理异常。 3、功能说明 用户密码的合法化验证,密码由4-6位数字组成,若不在范围内,则抛出“密码超出范围”,若不是数字,则抛出“密码格式错误”,输入密码正确则输出“密码是”。 — 4、设计流程图 5、源代码 import javax.swing.*; import java.awt.*; import java.awt.event.*; class passwordException extends Exception { public passwordException() { super(); } public passwordException(String s) { super(s);JOptionPane.showMessageDialog(null,s); } } public class WUXING { public static String passwordcheck()throws passwordException { String str=JOptionPane.showInputDialog(null,"输入密码:"); if(str.length()<4||str.length()>6) { throw new passwordException("密码超出范围"); } else if (!str.matches("\\d+")) { throw new passwordException("密码格式错误!!"); } return str; } public static void main(String args[]) { try{ String password = passwordcheck(); JOptionPane.showMessageDialog(null,"密码是:" + password); }catch(passwordException e){ e.printStackTrace(); 广东海洋大学学生实验报告书(学生用表) 实验名称实验六. Java的接口与实现课程名称Java程序设计与开发 技术 课程号16232204 学院(系) 信息学院专业计算机科学与技术班级计科 学生姓名学号实验地点钟海楼 04019 实验日期 2015年 10月26日 一、实验目的 (1)学习掌握Java中类怎样实现接口、接口回调技术; (2)学习掌握Java 程序中面向接口的编程思想。 二、实验任务 完成实验六指导上实验1、实验2、实验3的实验任务。 三、实验仪器设备和材料 安装有J2SE开发工具的PC机。 四、实验内容和步骤 实验1 代码如下: Estimator.java interface CompurerAverage{ public double average(double x[]); } class Gymnastics implements CompurerAverage{ public double average(double x[]){ int count=x.length; double aver=0,temp=0; for(int i=0;i for(int i=1;i 实验三熟悉常用java工具包并运用编程 实验目的: 本实验旨在巩固同学们对上课所讲java.util工具包中Collection,List,Set,Map加深理解,对其用法编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。 实验内容: 本实验的内容为:用Collection,List,Set,Map来存储数据,并进行排序,任何用Iterator,ListIterator或者Enumeration来打印其结果(按顺序和降序排列打印)。共分为四部分部分(前三部分必做,如果选第四个,前三个可以不做。。): (1)按顺序把1,10,5,7,6,2,9,20,14,存入到List中(注:允许自己自定义任何数),并对其进行排序,打印其升序和降序排列的结果。然后再向List中位置为第四位插入数35看看会有啥结果?再向List中插入字符串“ddy”,试猜想排序是否会出错?然后看看运行结果是啥? 程序: import java.util.*; public class SY3 { public SY3() { List list=new ArrayList(); list.add(1); list.add(10); list.add(5); list.add(7); list.add(6); list.add(2); list.add(9); list.add(20); list.add(14); list.add(35); list.add("ddy"); System.out.println("原序列:"); for(int i=0;i<=list.size()-1;i++) { System.out.println(list.get(i)); } System.out.println("新序列"); for(int i=0;i<=list.size()-1;i++) { 实验8 Method的使用 1.程序填空题,不要改变与输入输出有关的语句。 50001 输入一个正整数repeat (0 实验报告 一、实验项目:类与对象 二、实验目的: 1. 学会使用类来封装对象的属性和功能 2. 掌握类变量与实例变量,以及类方法与实例方法的区别 3. 掌握使用package和import语 三、实验器材:计算机、Java编程软件JCreator 四、实验原理(或仪器装置图): 1. 类与对象 类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类是用来定义对象的模板。 类声明 class 类名{ 类体 } 对象的声明 一般格式为: 类的名字对象名字; 定义对象引用后,用new运算符完成对象的创建工作,分配存储空间,并对其初始化。 变量名=new 类名([构造方法实参表]); 对象的使用 访问成员的基本语法形式如下: 对象名.变量成员名 对象名.方法成员名([实际参数表]) 2.成员变量和局部变量 成员变量格式:[修饰符] 变量类型变量名[=初值]; 成员方法: 格式:[修饰符] 返回值的数据类型方法名(参数1,参数2,…) { 语句序列; return[表达式]; } 类中定义的变量是成员变量,而方法中定义的变量是局部变量。 3. 构造方法 构造方法是一种特殊的方法,创建对象时被自动调用。与一般的方法不同,它没有返回值类型的说明,方法体中也不可以用return语句带回返回值。构造方法的方法名与类名相同在构造方法中可以通过this关键字调用该类中其他的构造方法。 4.包 包是Java语言中有效地管理类的一个机制。 ①通过关键字package声明包语句。package 语句作为Java源文件的第一条语句,指 明该源文件定义的类所在的包。package语句的一般格式为:package 包名; ②import 语句:使用import 语句可以引入包中的类。 五、实验步骤及数据记录: 1.定义一个圆柱体类Cylinder,并创建相应的对象,然后计算圆柱体的底面积与体积。 实验3:Java流程控制及数组 4.编写一个Java Application程序,输出区间[200,300]上的所有素数,要求写出程序的运行结果。 实验4:Java类与对象 1.编写一个Java程序片断,以定义一个表示学生的类Student。这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得性别”、“获得年龄”。 2.为类Student增加一个方法public String toString( ),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。编写一个Java Application程序,创建Student类的 3.按下面的要求完成Java Application程序,写出程序的运行结果。 (1)定义一个Java类Point,用来描述平面直角坐标系中点的坐标,该类应该能描述点的横、纵坐标信息及一些相关操作,包括获取点的横、纵坐标,修改点的坐标,显示点的当前位置等。 实验5:Java继承与多态 2.假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均分超过80分才能够通过。根据上述要求,请完成以下Java类的设计: (1)设计一个基类Student描述学生的共同特征。 (2)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。 (3)设计一个描述研究生的类Graduate,该类继承并扩展Student类。 (4)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相 GDOU-B-11-112 广东海洋大学学生实验报告书(学生用表) 实验名称 实验六.Java 的接口与实现 课程名称JaVa 程序设计与开发 课程号16232204 技术 实验地点钟海楼实验日期 2015年 04019 10 月 26 日 、实验目的 (1) 学习掌握Java 中类怎样实现接口、接口回调技术; (2) 学习掌握Java 程序中面向接口的编程思想。 二、实验任务 完成实验六指导上实验1、实验2、实验3的实验任务。 三、实验仪器设备和材料 安装有J2SE 开发工具的PC 机。 四、实验内容和步骤 实验1 代码如下: Estimator.java in terface Compu rerAverage{ p ublic double average(double x[]); } class Gymn astics imp leme nts Compu rerAverage{ p ublic double average(double x[]){ int coun t=x.le ngth; double aver=0,te mp=0; for(i nt i=0;i aver=aver+x[i]; } if(cou nt>2) aver=aver/(co un t-2); else aver=0; retur n aver; } } class School impi eme nts Compu rerAverage{ p ublic double average(double[] x){ int coun t=x.le ngth; double sum=0; for(i nt i=0;i 实验三Java面向对象高级编程 一、实验目的 1. 掌握Java 面向对象编程技术 2. 能够使用继承创建子类并实现方法覆盖 3. 能够创建异类集合并使用多态 4. 能够创建抽象类和接口,并探究它们的多态特性 二、预备知识 1. JDK的安装设置:JDK/JRE/JVM; 2. Eclipse集成开发环境的绿色安装; 3. 掌握Java语言的面向对象特性(封装性、继承性、多态性); 4. 掌握Java语言的抽象类和接口。 三、实验描述 1. 实验类型:设计 2. 实验学时:4学时 3. 实验内容:2项(参照四) 四、实验内容 (1) 检查所使用的计算机系统: 1. 确认是否已安装JDK,并确认系统的环境变量设置; 2. 确认是否已绿色安装Eclipse集成开发环境。 (2) 实验内容一:使用继承和方法覆盖创建子类,并能够创建异类集合并使用多态 具体要求: 1. 在上述银行项目中,创建Customer类: ·位于包:com.mybank.domain中; ·向Customer类添加四个实例变量:firstName,lastName,accounts(Account对象数组,长度为10)和numberOfAccounts(记录accounts数组索引的一个整数); ·添加一个公有构造方法:两个形式参数firstName,lastname,用于初始化客户姓名、创建accounts数组和初始化accounts数组元素个数numberOfAccounts; ·添加getFirstName方法:该方法返回客户的firstName实例变量; ·添加getLastName方法:该方法返回客户的lastName实例变量; ·添加addAccount方法:该方法有一个形式参数(即Account对象),数组的下标通过实例变量numberOfAccounts实现递增,同时将该参数对象存储在accounts数组中; ·添加getNumberOfAccounts方法:该方法返回numberOfAccounts实例变量; ·添加getAccount方法:该方法返回与指定的index数组下标相关的帐户对象。 2. 创建SavingsAccount类,该类是Account类的子类: ·位于包:com.mybank.domain中; ·向SavingsAccount类中添加interestRate实例变量; ·添加一个有两个参数的公有构造方法:initBalance和interestRate。调用父类构造方法传递initBalance参数,并初始化实例变量interestRate; ·添加accumulateInterest方法:用于计算客户的利息。 西安财经学院信息学院 《Java 程序设计》 实验报告 实验名称 类与对象 实验室 实验楼521 实验日期 2012年4月10日 类与对象 一、实验目的 1、掌握类的定义和使用,编写构造方法及成员方法。 2、能够创建类的实例,掌握对象的声明和不同访问属性的成员访问方式。 3、会定义接口、实现接口。 二、实验内容 1. 在java 中,定义一个接口,声明计算图形面积和周长的抽象方法,再用类去实现这个接口,再编写一个测试类去使用这个接口。 2. 设计并实现一个课程类,代表学校中的一门课程,将这门课程的相关信息组成该类的属性(如课程代码、课程名称、课程类别、学时、学分等),并在类中定义各个属性相关的访问方法(如获取和设置课程代码、课程名称,课程类别,获取和修改学时、学分,打印输出课程基本信息等),最后使用主函数测试此类(包括创建对象,调用相应方法等)。 三、实验环境 以Windows 环境为平台,使用JDK 5.0 四、实验步骤 姓名 学号 班级 年级 指导教师 五、实验结果 六、小结 通过掌握类的定义和使用,编写构造方法并且实现创建类的实例,掌握对象的声明和不同访问属性的成员访问方式以及定义接口、实现接口,通过此次实验让我发现了我对类的定义及其运用都不够熟练,对课本的熟悉度还远远不够,在课后应该及时的复习和上机操作是我们的必修课,这样才能让我们进一步的掌握类与对象。 七、源程序 1、interface Shape{ //定义Shape接口 final double pi=3.14; //数据成员一定要初始化 public abstract double area(); public abstract double girth(); //抽象方法,不需要定义处理方式} class Circle implements Shape{ double radius; public Circle(double r){ //构造方法 radius=r; } public double area(){ return (pi * radius * radius); } public double girth(){ return (2 *pi * radius); } } public class InterfaceTester { public static void main(String args[]){ Circle cir=new Circle(3.0); System.out.println("Area of cir = " + cir.area()); 淮海工学院计算机工程学院实验报告书 课程名:《Java语言实验与课程设计指导》 题目:实验3——深入面向对象编程 班级: 学号: 姓名: 实验题目: 1.定义一个学生类,定义一个大学生类和小学生类,这两个类是学生类的子类;定义 一个选课接口,由大学生类实现该接口,定义一个年龄异常处理,当小学生年龄小于7岁时,弹出异常。 2.定义一个银行卡类,定义一个信用卡类和普通银行卡类,这两个类是银行卡类的子 类;定义一个透支的接口,信用卡可以透支,普通银行卡不可以透支。定义一个取款异常和透支异常,当普通银行卡取款超过银行卡余额时,弹出“取款异常”;当信用卡透支超过2万元时弹出“透支异常”。 实验代码: 题1源代码: import java.awt.*; class student { String number,name,sex,bj; int age; student(String xuehao,String xingming,String xingbie,int nianling,String banji) { number=xuehao; name=xingming; sex=xingbie; age=nianling; bj=banji; } } interface xuanke { abstract void select(String s); } interface illegal { abstract void illegal(int s); } class primary extends student implements illegal { String xx; primary(String xuehao,String xingming,String xingbie,int nianling,String banji,String xiaoxue) { super(xuehao,xingming,xingbie,nianling,banji);实验2:Java面向对象程序设计
Java实验三实验报告
完成Java面向对象程序设计实验课的心得体会范文
JAVA 课后实验三
java实验答案解读
Java实验 类和对象
JavaWeb 实验三
java面向对象编程实验报告
Java__实验三
JAVA实验6答案
java实验报告实验3答案
浙大JAVA实验题答案answer
Java类与对象实验报告
java实验答案全
JAVA实验6答案
实验三 Java面向对象高级编程
JAVA类与对象实验报告(2)
Java实验三实验报告1