201771010121 唐月晨《面向对象程序设计(java)》第四周学习总结

 

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的学习上!

猜你喜欢

转载自www.cnblogs.com/tangyuechen/p/9704124.html