李晓菁201771010114《面向对象程序设计(Java)》第四周学习总结

一:理论知识学习部分

1.面向对象程序设计(OOP),在OOP中,不必关心对象的具体实现,只要能够满足用户需求即可。

2.类:类是构造对象的模板或蓝图。由类构造对象的过程称为创建类的实例。

3.封装:(有时称为数据隐藏),从形式上看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式。对象中的数据称为实例域,操纵数据的过程称为方法。实现封装的关键在于绝对不能让类中的方法直接地访问其他类的实例域。

4.对象:三个重要特性:

(1)对象的行为(2)对象的状态(3)对象标识

5.识别类:首先从设计类开始,然后再往每个类中添加方法。根据程序本身的属性定义类。

6.类之间的关系:依赖,聚合,继承。

7.使用预定义类:理解类时,要知道方法名和参数。

8.对象与对象变量:要想使用对象,就必须首先构造对象,并指定其初始状态,然后,对对象应用方法。

在Java中,使用构造器构造新实例,构造器是一种特殊的方法,用来构造并初始化对象。构造器的名字应该与类名相同。因此Date类的构造器名为Date.要想构造一个Date对象,需要在构造器前面加上new操作符。例如:new Date();这个表达式构造了一个新对象,这个对象被初始化为当前日期和时间。

注:对象变量不能空引用。也可以显示的将变量对象设置为null,表面这个对象变量目前没有引用任何对象。

9.Java类库中的LocalDate类:标准Java类库分别包含了两个类:一个是用来表示时间点的Date类;另一个是用来表示日历表示法的LocalDate类。

10.更改器方法与访问器方法:

二:实验部分

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

 

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:

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

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

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

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

姓名      性别   java成绩

程序代码如下:

import java.util.Scanner;

public class student1
{
   public static void main(String[] args)
   {
      // 写入学生的信息
      int n=3;
      Employee[] student = new Employee[n];
      System.out.println("请输入学生信息:");
      Scanner in = new Scanner(System.in);
      for(int i=0;i<student.length;i++) {
          student[i]=new Employee(in.next(),in.next(),in.nextInt());
      }
      System.out.println("姓名"+" "+"性别"+" "+" "+"java成绩");

      // 输出四个学生的信息
      for (Employee e : student)
         System.out.println(e.getName() +"   "+e.getSex()+"        "+e.getJavaScore());
   }
}

class Employee
{
   private String 姓名;
   private String 性别;
   private double java成绩;

   public Employee(String x, String y, int z)
   {
      姓名 = x;
      性别 = y;
      java成绩 =z;
   }

   public String getName()
   {
      return 姓名;
   }

   public String getSex()
   {
      return 性别;
   }

   public double getJavaScore()
   {
      return java成绩;
   }

}

测试程序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) 将两个对象的周长加总输出,将两个对象的面积加总输出。

程序及运行结果如下:

package text;
import java.util.Scanner;
public class text {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根

                // double P=3.14;
                Scanner in = new Scanner(System.in);
                System.out.println("请输入长方形的长和宽:");

                int length = in.nextInt();
                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 static final double P = 3.14;
            private double radius;

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

            public double getPerimeter()

            {

                double Perimeter = 2 * P* radius;

                return Perimeter;

            }

            public double getArea()

            {

                double getArea = radius * radius * P;

                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;

            }

        }
        

三:实验总结:

通过此次实验我基本掌握了文件输入输出程序的设计技术,学到了类的定义与类对象的用法,且学会了如何定义一个student类其中包含三个字段。

基本掌握了静态域与静态方法的用法,掌握Java方法参数的用法,还有Java用户自定义类的用法,掌握对象构造方法及对象使用方法,基本学会了Java包的定义及用法。

但是,在自己编写代码时还是存在很大的问题,这促使我进行大量练习来达到熟练的程度。

原文地址:https://www.cnblogs.com/li-xiaojing/p/9703219.html

时间: 2024-08-30 07:28:20

李晓菁201771010114《面向对象程序设计(Java)》第四周学习总结的相关文章

李晓菁201771010114《面向对象程序设计(Java)》第一周学习总结

201771010114李晓菁<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com https://www.cnblogs.com/li-xiaojing/ 程序设计评测:https://pintia.cn/ [email protected] 代码托管平台:https://github.com/ ajingya 中国大学MOOC:https://www.icourse163.org/

《数据结构与面向对象程序设计》第四周学习总结

20182304 2019-2020-1 <数据结构与面向对象程序设计>第四周学习总结 教材学习内容总结 1.本章我们学习了使用并编写我们自己的类:类中有与类同名的构造方法,也可以有set,get,toSring与自己定义的方法.实例化一个对象,可通过该对象使用类里的所有方法.实例数据是每次创造一个实例后自动生成新的内存空间的变量 2.uml类图 :每个类可能包含三部分内容:类名.属性.操作(方法).UML类图有属于自己的语法,变量的类型名在变量名的后面,它们之间用冒号作为分隔符,方法的+和-

李晓菁201771010114《面向对象程序设计(java)》第十二周学习总结

一:理论部分 1.(1) 用户界面(User Interface)用户与计算机系统(各种程序)交互的接口 (2)图形用户界面(Graphical User Interface)以图形方式呈现的用户界面 2.AWT:Java 的抽象窗口工具箱( Abstract WindowToolkit, AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类. . AWT库处理用户界面元素的方法:把图形元素的创建和行为委托给本地GUI工具箱进行处理. . 应用AWT编写依赖于本地用户界

李晓菁201771010114 《面向对象程序设计(java)》课程学习总结

实验十八  总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设计结构: (4) 综合掌握java多线程编程模型: (5) 综合编程练习. 2.实验内容和步骤 任务1:填写课程课后调查问卷,网址:https://www.wjx.cn/jq/33108969.aspx. 任务2:综合编程练习 练习1:设计一个用户信息采集程序,要求如下: (1) 用户信息输入界面如

李晓菁201771010114《面向对象程序设计(java)》第十三周学习总结

理论知识:事件处理 1.事件源:能够产生事件的对象都可以成为事件源,如文本框,按钮等.一个事件源是一个能够注册监听器并向监听器发送事件对象的对象. 2.事件监听器:事件监听器对象接收事件源发送的通告(事件对象),并对发生的事件作出响应.一个监听器对象就是一个实现了专门监听器接口的类实例,该类必须实现接口中的方法,这些方法当事件发生时,被自动执行. 3.事件对象:Java将事件的相关信息封装在一个事件对象中,所有的事件对象都最终被派生于Java.util.EventObject类.不同的事件源可以

李晓菁201771010114《面向对象程序设计(Java)》第六周学习总结

理论部分: 第五章:继承 1.继承用已有类来构建新类的一种机制. 2..继承的特点:具有层次结构,子类继承了父类的域和方法. 3.继承的优点:代码可重用性,父类的域和方法可用于子类,可以轻松定义子类,设计应用程序变得更加简单. 4.继承层次: 实验六 继承定义与使用 实验时间 2018-9-28 1.实验目的与要求 (1) 理解继承的定义: (2) 掌握子类的定义要求 (3) 掌握多态性的概念及用法: (4) 掌握抽象类的定义及用途: (5) 掌握类中4个成员访问权限修饰符的用途: (6) 掌握

李晓菁201771010114《面向对象程序设计Java》第十六周学习总结

一:理论知识 1.线程的概念: 程序是一段静态的代码,它是应用程序执行的蓝本.‐进程是程序的一次动态执行,它对应了从代码加载.执行至执行完毕的一个完整过程. 多线程是进程执行过程中产生的多条执行线索.‐线程是比进程执行更小的单位.‐线程不能独立存在,必须存在于进程中,同一进程的各线程间共享进程空间的数据.‐每个线程有它自身的产生.存在和消亡的过程,是一个动态的概念.‐多线程意味着一个程序的多行语句可以看上去几乎在同一时间内同时运行. (2)Java中实现多线程的途径有两种: ‐创建Thread类

20182322 2019-2020-1 《数据结构与面向对象程序设计》第四周学习总结

教材学习内容总结 1.编写类与方法(构造方法的结构和用途) 2.实际参数与形式参数.public与private.return与void的区别与含义. 3.UML类图的含义与形式 4.静态类(Math类)静态变量.静态方法 5.类间关系(依赖关系.聚合关系.继承关系) 6.接口的使用,能够在某个类中实现接口的方法(Comparable.Iterator) 7.软件活动开发.方法设计.方法重载.测试(黑盒测试.白盒测试) 教材学习中的问题和解决过程 问题1:toString与return返回的值的

20182335 2019-2020-1 《数据结构与面向对象程序设计》第四周学习总结

教材学习内容总结 1.继承的基本语法与用法. 2.利用UML类图表示继承关系. 3.在具体编写类的时候,先是数据声明再是方法声明. 4.toString方法用println或print或字符串连接会自动调用. 5.每创建一个对象.都会为类中声明的变量建立新的内存空间. 6.UML图一些基础使用方法. 7.对象应该是自管理的,既对象的实例数据应该仅由该对象来修改,这就构成了封装. 代码调试中的问题和解决过程 问题1:测试代码出现错误 问题1解决方案:junit的方法名必须是textxxx或xxxt