zoukankan      html  css  js  c++  java
  • 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.实验总结:

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

  • 相关阅读:
    x64 平台开发 Mapxtreme 编译错误
    hdu 4305 Lightning
    Ural 1627 Join(生成树计数)
    poj 2104 Kth Number(可持久化线段树)
    ural 1651 Shortest Subchain
    hdu 4351 Digital root
    hdu 3221 Bruteforce Algorithm
    poj 2892 Tunnel Warfare (Splay Tree instead of Segment Tree)
    hdu 4031 Attack(BIT)
    LightOJ 1277 Looking for a Subsequence
  • 原文地址:https://www.cnblogs.com/litinghua/p/9695255.html
Copyright © 2011-2022 走看看