• 201771010113 李婷华 《面向java对象程序设计(Java)》第四章学习总结


    一. 理论知识部分

    第四章 对象与类

    本章主要讲述面向对象程序设计、如何创建标准Java类库中的类对象、如何编写自己的类。

    1.面向对象程序设计的几个主要概念:

    抽象数据类型、类和对象、封装、类层次(子类)、继承性、多态性。

    2.类:具有相同属性和行为的一组对象的集合。

    3.实例域:对象中的数据。

    4.方法:操纵数据的过程。

    5.对象的三个主要特性:

    对象的行为、对象的状态、对象标识。

    6.类之间的关系:

    依赖:最明显、最常见的关系。

    聚合:一种具体易于理解的关系。

    继承:一种用于表示特殊与一般关系的。

    7.预定义类:Math类、math类、String类、Scanner类。

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

    9.构造一个Date对象,需要在构造器前面加上new操作符。

    10.Date类中有一个toString方法。将返回日期的字符串描述。                             

    11.LocalDate类封装了实例域来维护所设置的日期。   

    12.GregorianCalendar类的setTime方法,用来设置日历对象所表示的时间点。

    二. 实验部分

    1、实验目的与要求

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

    (2) 掌握对象的声明;

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

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

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

    2、实验内容和步骤

    实验1 测试以下程序,掌握文件输入输出程序设计技术(文件输入输出,教材61-62).

    实验代码:

       import java.io.*;

       import java.util.*;

    public class WriteReadFileTest {
    
    	/**
    	 * @param args
    	 * @throws FileNotFoundException 
    	 */
    	public static void main(String[] args) throws FileNotFoundException {
    
    		//写入文件演示
    		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;//行号
    		while(in.hasNextLine()){//判断扫描器是否还有下一行未读取,该循环把文件的每一行都读出
    			String line = in.nextLine();//读出myfile.txt的下一行
    			System.out.println("第"+(number++)+"行的内容" +"="+line);
    			
    			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 ),编译并运行程序。

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

      姓名      性别 java成绩

    代码:

    import java.util.*;
    /**
     * This program test the student class
     * version 1.00 2018-09-24
     * @author Litinghua
     */
    public class StudentTest {
        public static void main(String[] args) {
            Student[] id=new Student[4];
            System.out.println("请输入学生:");
            Scanner in=new Scanner(System.in);
            for(int i=0;i<id.length;i++)
            {
                id[i]=new Student(in.next(),in.next(),in.nextInt());
            }
            System.out.println("姓名"+" "+"性别"+" "+" "+"java成绩");    
            for(Student e:id)
                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 sc) {
            name=n;
            sex=s;
            javascore=sc;
        }
        public String getName()
        {
            return name;
        }
        public String getSex()
        {
            return sex;
        }
        public int getJavascore()
        {
            return javascore;
        }
    }

    运行结果:

    测试程序2:

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

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

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

     结果:

    测试程序3:

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

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

    结果:

    测试程序4:

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

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

    结果:

    测试程序5:

    编辑、编译、调试运行程序4-6、4-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 java.util.*;
    import java.lang.*;
    /**
     * This program can get it's perimeter.
     * version 1.00 2018-9-25
     * @author Litinghua
     */
    public class test {
        public static void main(String[] args) {
            Scanner in=new Scanner(System.in);
            System.out.println("请输入长方形的length与width:");
            int length=in.nextInt();
            int width=in.nextInt();
            Rectangle  x=new Rectangle(length,width);
            System.out.println("长方形的周长"+x.getPerimeter());
            System.out.println("长方形的面积"+x.getArea());
            System.out.println("请输入圆的半径radius:");
            int radius=in.nextInt();
            Circle y=new Circle(radius);
            System.out.println("圆的周长"+y.getPerimeter());
            System.out.println("圆的面积"+y.getArea());
            System.out.println("长方形和圆的周长和:"+(x.getPerimeter()+
                    y.getPerimeter()));
            System.out.println("长方形和圆的面积和:"+(x.getPerimeter()+
                    y.getArea()));
        }
    }
    class Rectangle
    {
        private int length;
        private int width;
        public Rectangle(int l,int w)
        {
            length=l;
            width=w;
        }
        public int getPerimeter()
        {
            int Perimeter=(length+width)*2;
            return Perimeter;
        }
        public int getArea()
        {
            int Area=length*width;
            return Area;
        }
    }
    class Circle
    {
        private int radius;
        double PI=3.14;
        public Circle(int r)
        {
            radius=r;
        }
        public double getPerimeter()
        {
            double Perimeter=2*PI*radius;
            return Perimeter;
        }
        public double getArea()
        {
            double Area=PI*radius*radius;
            return Area;
        }
    }

    结果:

     3.实验总结:

    通过本次实验,我理解了类与对象的基本概念,理解了如何去创建一个类,通过亲自编写代码、老师讲解代码,我更加清晰地了解了类与对象的概念以及他们之间的关系。但是在实验的过程中,依然遇到点问题,总的来说对实验的熟悉程度不够,第一个实验做完过了一段时间又忘了如何去操作,认真的反思一下,要想学好这门课,还是需要进行大量的代码编写,不断的在实验中找出错误并改正错误。在平时的学习中阅读代码是很有必要的,只有在大量阅读代码的过程中才能不断学习,才能写出更多的代码。

  • 相关阅读:
    安装SQL sever2008时显示重新启动计算机规则失败,应该怎么解决?
    C#获取当前日期时间(转)
    使用JQUERY实现页面局部刷新
    Metal渲染:实现画面比例功能
    Metal渲染:实现旋转/翻转功能
    依赖注入浅析
    iOS 消息推送实现 APNS
    使用#pragma阻止一些warnings
    github 多帐户使用
    Swift 实现Bitmask Option(Enum)
  • 原文地址:https://www.cnblogs.com/litinghua/p/9695255.html
Copyright © 2020-2023  润新知