201771010121 唐月晨《面向对象程序设计(java)》第四周学习总结
第一部分:理论知识学习部分
(上周实验的实验三 思路:
文件内容读到内存(文件输入);
批量存储内存数据:两个数组 name;id。 规定下标相同的对应一个name和id
检索
学号数组里遍历学号,找出姓名;
姓名中遍历找出学号。
文件的输入:
import java.util.*;
.
.
.
Scanner in=new Scanner(System.in);
本周学习了:
import语句是导入eclipse中自带的已经写好的函数包,如:import java.util.*;
String类基本操作;
equals():判断两个字符串是否一致
建立文件IO流的方式有很多,写入(内存写到外存去)文件需要构造PrintWriter对象。PrintWriter类定义在java.io.*;
抽象数据类型
类是生成对象的模板
封装(思维方式)
类层次(子类)
继承性:已经定义好的代码在新类中沿用(解决重复性)
多态性:eg:
汽车
驾驶 轮船 多态:在同一个时刻,体现出来的不同状态
自行车
在面向对象的设计中,多态主要体现在不同的对象发送同一个信息,不同对象在接受时会产生不同的行为(即方法)。
behavior
对象三特征 state
identity
另外,在MOOC平台上学习了前两章的内容。笔记详见“MOOC”
第二部分:实验部分
1、实验目的与要求
(1) 理解用户自定义类的定义;
(2) 掌握对象的声明;
(3) 学会使用构造函数初始化对象;
(4) 使用类属性与方法的使用掌握使用;
(5) 掌握package和import语句的用途。
2、实验内容和步骤
实验1 测试以下程序,掌握文件输入输出程序设计技术(文件输入输出,教材61-62).
import java.io.*; import java.util.*; public class FileWriteReadTest { public static void main(String[] args) throws IOException{ //写入文件演示 PrintWriter out = new PrintWriter("myfile.txt"); out.println("姓名 高数 Java 数据结构 平均成绩 总成绩"); out.println("张三 20 30 40 0 0"); out.println("李四 50 60 70 0 0"); out.close();//输出完毕,需要close //读入文件演示 Scanner in = new Scanner(new File("myfile.txt"));//为myfile.txt这个File创建一个扫描器in int number = 1;//行号 System.out.println(in.nextLine()); while(in.hasNextLine()){//判断扫描器是否还有下一行未读取,该循环把文件的每一行都读出 String line = in.nextLine();//读出myfile.txt的下一行 System.out.print("第"+(++number)+"行的内容: "); Scanner linescanner = new Scanner(line);//行内容建立扫描器 linescanner.useDelimiter(" ");//使用空格作为分隔符 String name = linescanner.next(); String math = linescanner.next(); String java = linescanner.next(); String ds = linescanner.next(); String avg = linescanner.next(); String total = linescanner.next(); System.out.println("name="+name+" math="+math+" java="+java+" ds="+ds+" avg"+avg+" total="+total); } in.close();//读入完毕,最后需要对其进行close。 } } |
|
实验2导入第4章示例程序并测试。
测试程序1:
l 编辑、编译、调试运行程序4-2(教材104页);
l 结合程序运行结果,掌握类的定义与类对象的用法,并在程序代码中添加类与对象知识应用的注释;
l 尝试在项目中编辑两个类文件(Employee.java、 EmployeeTest.java ),编译并运行程序。
l 参考教材104页EmployeeTest.java,设计StudentTest.java,定义Student类,包含name(姓名)、sex(性别)、javascore(java成绩)三个字段,编写程序,从键盘输入学生人数,输入学生信息,并按以下表头输出学生信息表:
姓名 性别 java成绩
package object; import java.util.*; public class StudentTest { public static void main(String[] args) { Student[] member=new Student[3]; System.out.println("请输入学生信息:"); Scanner var=new Scanner(System.in); for(int i=0;i<member.length;i++) { member[i]=new Student(var.next(),var.next(),var.nextInt()); } System.out.println("name"+" "+"sex"+" "+"javascore"); for (Student e : member) System.out.println(e.getName() +" "+e.getSex()+" "+e.getJavaScore()); } } class Student { private String name; private String sex; private int javascore; public Student(String n, String s, int j) { name = n; sex = s; javascore =j; } public String getName() { return name; } public String getSex() { return sex; } public int getJavaScore() { return javascore; } }
测试程序2:
l 编辑、编译、调试运行程序4-3(教材116);
l 结合程序运行结果,理解程序代码,掌握静态域(netxtId)与静态方法(getNextId)的用法,在相关代码后添加注释;
l 理解Java单元(类)测试的技巧。
测试程序3:
l 编辑、编译、调试运行程序4-4(教材121);
l 结合程序运行结果,理解程序代码,掌握掌握Java方法参数的用法,在相关代码后添加注释;
测试程序4:
l 编辑、编译、调试运行程序4-5(教材129);
l 结合程序运行结果,理解程序代码,掌握Java用户自定义类的用法,掌握对象构造方法及对象使用方法,在相关代码后添加注释。
测试程序5:
l 编辑、编译、调试运行程序4-6、4-7(教材135);
l 结合程序运行结果,理解程序代码,掌握Java包的定义及用法,在相关代码后添加注释;
实验3 编写长方形类Rectangle与圆形类Circle,其中Rectangle类设置私有属性:width,length;Circle类设置私有属性radius。编写Rectangle类的带参构造函数Rectangle(int width,int length), Circle类的带参构造函数Circle(int radius),编写两个类的toString方法(Eclipse可自动生成)。上述2个类均定义以下方法:
求周长的方法public int getPerimeter()
求面积的方法public int getArea()
在main方法中完成以下任务:
(1) 输入1行长与宽,创建一个Rectangle对象;
(2) 输入1行半径,创建一个Circle对象;
(3) 将两个对象的周长加总输出,将两个对象的面积加总输出。
import java.util.*; public class 实验3 { public static void main(String[] args) { Scanner var=new Scanner (System.in); System.out.println("请输入矩形的长、宽:"); double a=var.nextInt(); double b=var.nextInt(); System.out.println("矩形周长"+(a+b)*2); System.out.println("矩形面积"+(a*b)); System.out.println("请输入圆的半径:"); int r=var.nextInt(); System.out.println("圆周长"+(2*3.14*r)); System.out.println("圆面积"+(3.14*r*r)); } }
4. 实验总结:
上周我们学习了类与对象的部分知识,明确了类与对象的定义,学习了如何用户自定义类,老师以CalendarTest和EmployeeTest两个程序作为重点讲解对象让我们理解main方法、循环体、构造对象、获取对象、用户自定义类等知识,并教我们学会读程序语言,果然在编程语言的学习中,读写都是同等重要的,学会多读、读懂程序我们才能有灵活的思维去思考如何写程序。上周的学习一部分由老师授课、一部分由我们自己在MOOC平台和在网上、书中查找资料自学,我觉得对于这种教学方式,我虽然赞同却不能很好的适应,可能是自学能力偏弱,以后我会花更多的时间在java的学习上!