java实验报告1软工1202.docx
- 文档编号:29122695
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:12
- 大小:170.78KB
java实验报告1软工1202.docx
《java实验报告1软工1202.docx》由会员分享,可在线阅读,更多相关《java实验报告1软工1202.docx(12页珍藏版)》请在冰豆网上搜索。
java实验报告1软工1202
Java程序设计实验报告
实验(训)报告
学号:
122302047姓名:
游锟班级:
软工1202
实验时间:
2014-3-14实验地点:
A4049指导老师:
刘艳梅
实验名称
实验1Java语言类的特性
实验目的
1、熟悉Eclipse集成环境,掌握Java输入输出语句,并完成编程;
2、掌握一维数组元素的访问及使用操作;
3、理解类的构造方法的作用、执行过程、this指针的使用;
4、理解类的方法重载的概念。
一、实验题目
1、编写一个java程序,在程序中通过键盘输入常用的数据,包括字符串、整数和浮点数。
importjava.util.*;
publicclassInputNum{
publicstaticvoidmain(String[]args){
inta=0;
floatb=0F;
doublec=0D;
Strings="";
Scannerreader=newScanner(System.in);
System.out.print("从键盘输入一串字符:
");
//[代码1]调用reader的nextLine方法,并把读入的数据赋值给s
System.out.println("你输入的字符串是"+s);
System.out.print("从键盘输入一个整数:
");
//[代码2]调用reader的nextInt方法,并把读入的数据赋值给a
System.out.println("你输入的一个整数是"+a);
System.out.print("从键盘输入一个单精度浮点数:
");
//[代码3]调用reader的nextFloat方法,并把读入的数据赋值给b
System.out.println("你输入的一个单精度浮点数是"+b);
System.out.print("从键盘输入一个双精度浮点数:
");
//[代码4]调用reader的nextDouble方法,并把读入的数据赋值给c
System.out.println("你输入的一个双精度浮点数"+c);
}
}
2、编写一个Java程序,定义一个长度为5的整型数组,要求用户从键盘中为每个元素输入一个整数,然后输出每个数组元素的内容,再输出数组中最大整数值和最小整数值。
importjava.util.*;
publicclassLinearB{
publicstaticvoidmain(String[]args){
inti,max,min;
//[代码1]定义一个整形数组a,含5个元素,并为之分配内存空间
Scannerreader=newScanner(System.in);
//[代码2]提示用户从键盘输入5个整数,并把这些整数存储到对应的数组元素中
max=min=a[0];
for(i=0;i { //[代码3]如果a[i]大于max,则把max[i]赋值给max //[代码4]如果a[i]小于min,则把min[i]赋值给min } System.out.println("最大数字是: "+max+"\n最小数字是: "+min); } } 3、编写一个java程序,在程序中定义一个Student类,Student类有三个构造方法,分别对不同的属性进行初始化。 publicclassStudent{ Stringname; intage; publicStudent(){ System.out.println("Student()构造方法被调用"); } //[代码1]定义一个Student类的构造方法,该方法能接收一个字符串参数,在方法体中,把该参数 //赋值给name属性,并且显示“Student(Stringname)构造方法被调用” //[代码2]定义一个Student类的构造方法,该方法能接收一个字符串参数与一个整数参数,在方法 //体中,把字符串参数赋值给name属性,把整数参数赋值给age属性,并且显示“Student(String //name,intage)构造方法被调用” publicstaticvoidmain(String[]args){ //[代码3]创建Student类的一个对象,不传入参数 //[代码4]创建Student类的一个对象,传入一个参数: ”张三“ //[代码5]创建Student类的一个对象,传入两个参数: ”张三“,15 } } 4、编写一个java程序,在程序中定义一个Employee类,Employee类有4个构造方法,分别对不同的属性进行初始化,有一个setAge()方法设置age属性值,有一个getAge()方法能返回age属性值。 publicclassEmployee{ privateStringname; privateintage; privatedoublesalary; publicEmployee(StringnewName,intnewAge,doublenewSalary){ //[代码1]要求调用两个参数的构造方法,传入参数newAge和newSalary System.out.println("三个参数的构造方法被调用"); name=newName; } publicEmployee(intnewAge,doublenewSalary){ //[代码2]要求调用一个参数的构造方法,传入参数newSalary System.out.println("两个参数的构造方法被调用"); age=newAge; } publicEmployee(doublenewSalary){ //[代码3]要求调用没有参数的构造方法 System.out.println("一个参数的构造方法被调用"); salary=newSalary; } publicEmployee(){ System.out.println("没有参数的构造方法被调用"); } voidsetAge(intnewAge){ intage=0; //[代码4]设置age属性的值为newAge } intgetAge(){ returnage; } publicstaticvoidmain(String[]args){ Employees1=newEmployee("李四",30,8000); s1.setAge(31); System.out.println("年龄是"+s1.getAge()); } } 5、编写一个Java程序,在程序中定义一个MyPlus类,MyPlus类有三个plus()方法,分别对不同的参数进行求和。 publicclassMyPlus{ publicintplus(inta,intb){ ints; s=a+b; returns; } publicintplus(inta,intb,intc){ ints; //[代码1]要求调用两个参数的plus方法,得到a+b+c的和 returns; } publicintplus(inta,intb,intc,intd){ ints; //[代码2]要求调用三个参数的plus方法,得到a+b+c+d的和 returns; } publicstaticvoidmain(String[]args){ MyPlusp=newMyPlus(); //[代码3]调用plus()方法求1+2的值并显示 //[代码4]调用plus()方法求1+2+3的值并显示 //[代码5]调用plus()方法求1+2+3+4的值并显示 } } 6、思考与提高题目: 程序首先给整型变量x和y赋一个初值10,然后使用传值调用方式调用方法ff1对x和y做乘方及输出x和y的乘方值,最后再输出x和y的乘方值。 分析如下源代码,有什么问题? 请指明原因,并将代码修改正确。 publicclassTest_1{ publicstaticvoidmain(String[]args){ intx=10,y=10; System.out.println("初始时: x="+x+",y="+y); ff1(x,y); System.out.println("方法调用后: x="+x+",y="+y); } staticvoidff1(intpassX,intpassY){ intx,y; x=passX*passX; y=passY*passY; System.out.println("方法调用中: x="+x+",y="+y); } } 二、实验内容及结果 1、答案: 【代码1】s=reader.nextLine(); 【代码2】a=reader.nextInt(); 【代码3】b=reader.nextFloat(); 【代码4】c=reader.nextDouble(); 2、答案: 【代码1】inta[]=newint[5]; 【代码2】System.out.println("依次输入五个数"); for(i=0;i<5;i++) { a[i]=reader.nextInt(); System.out.println("输入的第"+i+"个整数是: "+a[i]); } 【代码3】if(a[i]>max) { max=a[i]; } 【代码4】if(a[i] { min=a[i]; } 3、答案: 【代码1】publicStudent(Stringname) { XX文库-让每个人平等地提升自我this.name=name; System.out.println("Student(Stringname)构造方法被调用"); } 【代码2】publicStudent(Stringname,intage) { this.name=name; this.age=age; System.out.println("Student(Stringname,intage)构造方法被调用"); 【代码3】Students1=newStudent(); 【代码4】Students2=newStudent("张三"); 【代码5】Students3=newStudent("张三",15); 4、答案: 【代码1】this(newAge,newSalary); 【代码2】this(newSalary); 【代码3】this.getAge(); 【代码4】age=newAge; 5、答案: 【代码1】s=a+b;s=s+c; 【代码2】s=a+b;s=s+c;s=s+d 【代码3】System.out.println("1+2="+p.plus(1,2)); 【代码4】System.out.println("1+2+3="+p.plus(1,2,3)); 【代码5】System.out.println("1+2+3+4="+p.plus(1,2,3,4)); 6、答案: 存在问题: 通过类里面方法的调用,不能够改变变量X,Y的值,最后返回的值任然是之前变量的值。 原因: Java中参数的传递分为两种: 值传递和地址传递,而对于前者形参接受了实参的值它们传递的是变量的内容而对于变量地址没有改变。 正确方案: (提示: 通过创建类后,调用对象的方法在方法调用后修改了成员变量的值。 ) 修改后的代码为: classtest{ intx,y; voidff1(intpassX,intpassY){ x=passX*passX; y=passY*passY; System.out.println("方法调用中: x="+x+",y="+y); } } publicclassTest_1{ publicstaticvoidmain(String[]args){ testx1=newtest(); intx=10,y=10; System.out.println("初始时: x="+x1.x+",y="+x1.y); x1.ff1(x,y); System.out.println("方法调用后: x="+x1.x+",y="+x1.y); } } 三、实验总结(将实验中出现的问题总结及实验心得,不少于100字) 时间过得飞快,我们又开始接触一门新的课——java,说实在很兴奋也很紧张,因为离上学的日子一天天的少去,我们或许真的要靠这个为以后的生活拼搏。 接下来的时间就是好好学习。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实验 报告 软工 1202