1、实验目的与要求

(1) 理解用户自定义类的定义;

(2) 掌握对象的声明;

(3) 学会使用构造函数初始化对象;

(4) 使用类属性与方法的使用掌握使用;

(5) 掌握package和import语句的用途。

2.理论知识总结

a.类  类是构造对象的模板或蓝图;

b.对象  要想使用OOP,一定要清楚对象的三个特征:

①对象的行为②对象的状态③对象标识

同一个类的所有对象实例,由于支持相同的行为而具有家族式的相似性。对象的行为是用可调用的方法定义的。

类名  对象名  =  new 类名();

识别类的简单规则是在分析问题的过程中寻找名词,而方法对应着动词。

2、使用预定义类:

(1)对象与对象变量

一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。

(2)Java类库中的LocalDate类位于Java。Time包中

3.用户自定义类;

4.静态域与静态方法;

5.方法参数

5.对象构造

7.包

8.类路径

9.文档注释

10.类设计技巧

3.实验内容和步骤

实验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成绩

程序代码:

import java.util.*;

public class Student
{
    public static void main(String[] args) {

        System.out.println("请输入学生个数:");
        Scanner in=new Scanner(System.in);
        int number =in.nextInt();
        StudentTest[] score=new StudentTest[number];
        for(int i=0;i<number;i++)
        {
            System.out.println("第"+(i+1)+" 个学生信息输入"+"姓名:"); String name = in.next();
            System.out.print("性别:");  String sex = in.next();
            System.out.print("成绩:");  int j = in.nextInt();
            score[i] =new StudentTest(name,sex,j);
        }
        for(int j1=0;j1<number;j1++)
        {
        System.out.println("姓名:"+score[j1].getName()+"\t"+"性别:"+score[j1].getSex()+"\t"+"成绩:"+score[j1].getJavascore());
        }
   }

}
class  StudentTest
{
    private String name;
    private String sex;
    private int javascore;
  public StudentTest(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.*;

class Math {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        System.out.println("请输入长方形的长:");
        int length = in.nextInt();
        System.out.println("请输入长方形的宽:");
        int width = in.nextInt();
        System.out.print("请输入圆的半径:");
        double radius = in.nextDouble();

        Rectangle x = new Rectangle(length, width);
        Circle y = new Circle(radius);

        double a = x.getPerimeter() + y.getPerimeter();
        double b = x.getArea() + y.getArea();

        System.out.println("圆的周长为:" + y.getPerimeter() + "圆的面积为:" + y.getArea());
        System.out.println("矩形的周长是:" + x.getPerimeter() + "矩形面积为:" + x.getArea());
        System.out.println("周长和:" + a + "\n" + "面积和" + b);
    }
}

class Circle {
    private double radius;

    public Circle(double y) {
        radius = y;
    }

    public double getPerimeter()

    {

        double Perimeter = 2 * 3.14* radius;

        return Perimeter;

    }

    public double getArea()

    {

        double getArea = radius * radius * 3.14;

        return getArea;

    }
}

class Rectangle {

    private double width;

    private double length;

    public Rectangle(double w, double l)

    {

        width = w;

        length = l;

    }

    public double getPerimeter()

    {

        double Perimeter = (width +length) * 2;

        return Perimeter;

    }

    public double getArea()

    {

        double Area = width * length;

        return Area;

    }

}

运行结果:

实验总结:

通过本周的学习,我对对象和类有了更深层次的了解与掌握,认识了什么是类,什么是对象,并了解了对象的三个特征:对象的行为,对象的状态,对象标识。对自定义类与API自己做了多方面的了解。在实验中对提升了自己编程的能力,虽然中间出现了很多问题,但在自己的摸索探索中学到了自己不足的东西。

但在学习任务中部分自学内容理解起来有困难,希望老师可以在课堂上对作业内容中的问题多多解释。

201771010118《面向对象程序设计(java)》第四周学习总结的更多相关文章

  1. 201771010118马昕璐《面向对象程序设计java》第八周学习总结

    第一部分:理论知识学习部分 1.接口 在Java程序设计语言中,接口不是类,而是对类的一组需求描述,由常量和一组抽象方法组成.Java为了克服单继承的缺点,Java使用了接口,一个类可以实现一个或多个 ...

  2. 20145213《Java程序设计》第四周学习总结

    20145213<Java程序设计>第四周学习总结 教材学习内容总结 本周任务是学习面向对象的继承.接口以及之后的如何活用多态.(还真是路漫漫其修远兮啊!)教材也是延续上周艰深晦涩的语言风 ...

  3. 《Java程序设计》第四周学习总结

    20145224-陈颢文 <Java程序设计>第四周学习总结 教材学习内容总结 第六章 继承与多态 ·继承就是面向对象中,子类继承父类,避免重复的行为定义.重复再程序设计上是非常不好的信号 ...

  4. 20155304 2016-2017-2 《Java程序设计》第四周学习总结

    20155304 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 第六章 继承: 概念: 面向对象中,为避免多个类间重复定义共同行为.(简单说就是将相同的程序 ...

  5. 201521123038 《Java程序设计》 第四周学习总结

    201521123038 <Java程序设计> 第四周学习总结 1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 1.通过 ins ...

  6. 201521123061 《Java程序设计》第四周学习总结

    201521123061 <Java程序设计>第四周学习总结 1. 本章学习总结 (1)思维导图: --- (2)上课内容总结: 第四周学习了Java中的继承与多态,思维导图中已经给出了本 ...

  7. 20175204 张湲祯 2018-2019-2《Java程序设计》第四周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第四周学习总结 教材学习内容总结 -第五章子类与继承要点: -子类与父类: 1.通过使用关键字extends来定义一个类 ...

  8. 20175314 《Java程序设计》第四周学习总结

    20175314 <Java程序设计>第四周学习总结 教材学习内容总结 每个子类只能有一个父类,而一个父类可以有多个子类.可以使用关键字extends来定义一个类的子类:class 子类名 ...

  9. 20155312 张竞予 2006-2007-2 《Java程序设计》第四周学习总结

    20155312 2006-2007-2 <Java程序设计>第四周学习总结 课堂笔记 Ctrl+shift+T调出三个窗口,分别是"vi编写代码","jav ...

  10. 20165318 2017-2018-2 《Java程序设计》第四周学习总结

    20165318 2017-2018-2 <Java程序设计>第四周学习总结 IDEA安装 按照娄老师Intellj IDEA 简易教程,我下载了IDEA但是由于没有注册学校邮箱,我没办法 ...

随机推荐

  1. 统计iis日志第一例的次数

    统计iis日志第一例(日期)出现的次数 IIS日志文件格式: #Software: Microsoft Internet Information Services 7.5 #Version: 1.0 ...

  2. CMDB资产管理系统开发【day25】:Django 自定义用户认证

    官方文档:https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#substituting-a-custom-user-mode ...

  3. 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结

    码云链接 https://gitee.com/A5320/pair_programming_code 需求分析 实现一个命令行程序,要求: 1.自动生成小学四则运算题目(加.减.乘.除) 2.支持整数 ...

  4. java集合分割

    java集合分割成等份的小集合: private <T> List<List<T>> getSubList(List list,int len) { if(list ...

  5. 第六节:反射(几种写法、好处和弊端、利用反射实现IOC)

    一. 加载dll,读取相关信息 1. 加载程序集的三种方式 调用Assembly类下的三个方法:Load.LoadFile.LoadFrom. //1.1 Load方法:动态默认加载当前路径下的(bi ...

  6. 【洛谷P1303A*Bprublem】

    题目描述 求两数的积. 输入输出格式 输入格式: 两行,两个数. 输出格式: 积 输入输出样例 输入样例#1: 1 2 输出样例#1: 2 说明 每个数字不超过10^2000,需用高精 这道题还是比较 ...

  7. lucene学习的小结

    pom.xml设置 <dependency> <groupId>junit</groupId> <artifactId>junit</artifa ...

  8. centos7.5环境下编译安装php7.0.30并安装redis和mongo扩展

    .安装php7..30的脚本 # vim install_php.sh #!/bin/bash # 安装基本依赖 yum install -y gcc gcc-c++ htop telnet ioto ...

  9. LNMP环境搭建:Nginx安装、测试与域名配置

    Nginx作为一款优秀的Web Server软件同时也是一款优秀的负载均衡或前端反向代理.缓存服务软件 2.编译安装Nginx (1)安装Nginx依赖函数库pcre pcre为“perl兼容正则表达 ...

  10. jqGrid合并单元格

    两个参数 /**合并单元格:合并指定 gridName表格的NoName 列,合并的标准是参考CellName+CellNameTwo列内单元格的值. * gridName :表格名称 * NoNam ...