• 刘志梅201771010115.《面向对象程序设计(java)》第四周学习总结


    实验四 类与对象的定义及使用

    实验时间 2018-9-20

    1、实验目的

    (1)预定义类:(不是所有类都具有面向对象特征)

    构造器的类名和方法名相同,是一种特殊的方法,用来构造并初始化对象。

    2)用户自定义类:(各种主力类,没有main方法,却有实例域和实例方法)

    (3) 静态域:将域定义为static,每个类中只有一个这样的域,每一个对象对于所有的实例域都有一份拷贝)

    静态常量:在程序中可以采用Math.PI的形式获得这个常量(多次使用的静态常量System.out)

    (4) 对象构造

    重载:如果多个方法有相同的名字、不同的参数,便产生了重载;

    重载解析:编译器找不到匹配的参数,就会产生编译时错误,因为根本不存在匹配,或者没有一个比其它更好的过程称作重载解析。

    显示域初始化:通过重载类的构造器方法,可以采用多种形式设置类的实例域的初始状态,确保不管怎样调用构造器,每个实例域都可以被设置为一个有意义的初值。

    (5)Java允许使用包将类组织起来;借助包可以方便地组织自己的代码,并将自己的代码与别人提供的代码库分开管理,而且使用包可以确定类名的唯一性。

    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

    编辑、编译、调试运行程序4-2(教材104页);

    结合程序运行结果,掌握类的定义与类对象的用法,并在程序代码中添加类与对象知识应用的注释;

    尝试在项目中编辑两个类文件(Employee.java EmployeeTest.java ),编译并运行程序。

    参考教材104EmployeeTest.java,设计StudentTest.java,定义Student类,包含name(姓名)、sex(性别)、javascorejava成绩)三个字段,编写程序,从键盘输入学生人数,输入学生信息,并按以下表头输出学生信息表:

      姓名      性别 java成绩

    修改后结果:

    测试程序2

    编辑、编译、调试运行程序4-3(教材116);

    结合程序运行结果,理解程序代码,掌握静态域(netxtId)与静态方法(getNextId)的用法,在相关代码后添加注释;

    理解Java单元(类)测试的技巧。

    运行结果:

    测试程序3

    编辑、编译、调试运行程序4-4(教材121);

    结合程序运行结果,理解程序代码,掌握掌握Java方法参数的用法,在相关代码后添加注释;

    运行结果:

    测试程序4

    编辑、编译、调试运行程序4-5(教材129);

    结合程序运行结果,理解程序代码,掌握Java用户自定义类的用法,掌握对象构造方法及对象使用方法,在相关代码后添加注释。

    运行结果:

    测试程序5

    编辑、编译、调试运行程序4-64-7(教材135);

    结合程序运行结果,理解程序代码,掌握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与package不同;完成作业过程中,写代码的困难较大,需要更多的学习。

  • 相关阅读:
    Docker启动ubuntu容器中使用sudo后报错,bash: sudo: command not found
    Redis持久化rdb&aof
    Python3中copy模块常用功能及其他几种copy方式比较
    学习笔记:tkinter模块常用参数(python3)
    Python核心编程第二版(中文).pdf 目录整理
    11、487-3279
    10、Crashing Balloon
    9、Exponentiation
    8、Fire Net
    7、Reverse Root
  • 原文地址:https://www.cnblogs.com/LZM7343/p/9704389.html
Copyright © 2020-2023  润新知