201874040116-李鑫《面向对象程序设计(java)》第十六周学习总结

项目

内容

这个作业属于哪个课程

https://www.cnblogs.com/nwnu-daizh/

这个作业的要求在哪里

https://www.cnblogs.com/nwnu-daizh/p/12031970.html

作业学习目标

          

            (1) 掌握Java应用程序的打包操作;

            (2) 掌握线程概念;

            (3) 掌握线程创建的两种技术。

 

 

第一部分:总结教材14.1-14.3知识内容(20分)

   多任务(multitasking):在同一刻运行多个程序的能力

  通常,一个任务被称为一个线程(thread)  可以同时运行多个线程的程序称为多线程程序(multithreaded)。进程与线程不同。

  控制线程的类: Thread

  Thread(Runnable target) 构造一个新线程,用于调用给定目标的run()方法。 

  void sleep() 方法用于暂停 毫秒单位时间 当前线程。 

  void start()  启动当前线程,将引发调用run()方法。

  interrupt 线程对象调用interrupt函数后,相当于添加了一个标记,线程执行的时候使用isInterruptted方法判断是否有标记,有则中断线程,无则继续执行

 

  线程有  New(新创建),Runnable(可运行),Blocked(被阻塞),Wait(等待),Timed waiting(记时等待),Terminated(被终止) 六种状态。

第二部分:实验部分

实验1:测试程序1(10分)

package resource;

import java.awt.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;

/**
 * @version 1.41 2015-06-12
 * @author Cay Horstmann
 */
public class ResourceTest
{
   public static void main(String[] args)
   {
      EventQueue.invokeLater(() -> {
         JFrame frame = new ResourceTestFrame();
         frame.setTitle("ResourceTest");
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         frame.setVisible(true);
      });
   }
}

/**
 * 一个加载图像和文本资源的框架。
 */
class ResourceTestFrame extends JFrame
{
   private static final int DEFAULT_WIDTH = 300;
   private static final int DEFAULT_HEIGHT = 300;

   public ResourceTestFrame()
   {
      setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
      
      //在找到ResourceTest类的地方查找about.gif文件
      URL aboutURL = getClass().getResource("about.gif");
      
      //将此图像设置为框架的图标
      Image img = new ImageIcon(aboutURL).getImage();
      setIconImage(img);

      JTextArea textArea = new JTextArea();
      
      //getResourceAsStream方法的作用是找到与类位于同一位置的资源,返回一个可以加载资源的URL或者输入流
      InputStream stream = getClass().getResourceAsStream("about.txt");
      
      //在读取文本时使用同一编码UTF-8
      try (Scanner in = new Scanner(stream, "UTF-8"))
      {
         while (in.hasNext())
            textArea.append(in.nextLine() + "\n");
      }
      add(textArea);
   }
}

 

 

实验1:测试程序2(10分)

 

实验1:测试程序3(10分)

 

前一个程序只在球运动了完整一圈后才能停止,也不能同时出现多个球,而后一个程序既能随时停止,也能同时出现多个球。

实验2:结对编程练习包含以下4部分:(该项17周实验课现场检查评分:30分)

1)   程序设计思路简述;

2)   符合编程规范的程序代码;

3)   程序运行功能界面截图;

实验总结:(15分)

    这次的实验让我了解了部署java程序的方法 和 实现多线程程序的基本知识以及多线程程序相较单线程程序的优势。

posted on 2019-12-16 20:13  bqqhmm  阅读(154)  评论(1编辑  收藏  举报

导航