20172315 2017-2018-2 《程序设计与数据结构》第十一周学习总结

20172315 2017-2018-2 《程序设计与数据结构》第十一周学习总结

教材学习内容总结

第二十三章 Android简介

  • Android 操作系统是一种多用户的Linux系统,它使用Java作为编程语言。
  • Anroid4.4之前,其应用程序在Dalvik的虚拟机上运行,Android5.0及以后版本,其源代码使用ART(Android RunTime)来执行。
  • APK表示应用程序包,它是一个基本的zip文件,可使用unzip或Winzip来解压缩。apk文件可以在一台物理设备或模拟器上运行,部署一个Android应用程序很容易。
  • 活动(Activity):包含用户交互组件的一个窗口。
  • 服务(Service):在后台长时间运行的操作。
  • 广播接收者(Broadcast receiver):一个监听器,负责对系统或应用程序声明做出响应。
  • 内容提供者(Content provider):管理要和其他应用程序分享的一组数据的一个组件。
  • 安卓版本:

    第二十四章 初始Android
  • Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
  • Project窗口包括两个主要的节点:app和Gradle Scripts。app节点包含了应用程序中所有的组件。Gradle Scripts节点包含Gradle构建脚本,以供构建Android项目。
  • app则又包含三个节点:manifests(包含另一个AndroidManifest.xml文件,对应用程序进行描述),java(包含了所有的Java应用程序和测试类),res(包含了资源文件)。
  • Log类带有以不同的日至级别进行日志消息的方法。d(debug)、i(info)、v(verbose)、w(warning)、e(error)、wtf(what a terrible failuer)。
    第二十五章 活动
  • 活动是包含了用户界面组件的一个窗口,用户可以和这些用户界面组件交互,启动一个活动,往往意味着要显示一个窗口。一个典型的Android应用程序,都是从启动一个活动开始的,也就是说启动一个活动就意味着显示一个窗口。
  • Activity中有onPause, onStart, onResume, onDestory, onRestart和onStop这六个方法。如下图所示:
  • 修改图标:在res/drawable中保存jepg文件或者png文件,png首选,其支持透明度。
  • 修改图标:编辑清单文件manifests的android:icon属性,以指向新的图像,可以使用如下格式修改引用图像文件:@drawable/filename,其中,filename不带扩展名的文件名称。
  • 用户从主屏幕选择APP图标时,祝活动通过系统自身而启动,再拥有多个活动的应用程序中,很有可能需要启动另一活动,这时便可以通过调用startActivity方法直接做到。
  • 通过传递给意图一个活动类而构造的意图,叫做显式意图。也可以创作一个隐式意图,在这种情况下我们没有指定一个意图类,相反,我们给Intent类的构造方法传递一个动作,让系统来决定启动哪一活动,如果有多个活动可以处理,系统会让用户来进行选择。

    第二十六章 UI组件
  • Android SDK提供了叫作微件(widget)的众多简单的和复杂的组件。微件有很多例子,比如按钮、文本字段、进度条等。此外,还需选择一个布局来放置UI组件。微件和布局,都在android.view.View里实现。
  • Toast是一个小的弹出对话框,用于显示一条消息作为给用户的反馈。Toast并不会代替当前的活动,并且只是占据了一条消息那么大的空间。
  • 通知是出现在状态栏里的一条消息,和Toast不同,通知是持久的,并且将保持显示,直到关闭它或者是关闭设备。

教材学习中的问题和解决过程

  • 问题1:书上提到的监听器不太了解其具体作用
  • 问题1解决方案:监听器是一个存在于View类下的接口,一般以On**Llistener命名,实现该接口需要复写相应的on(View v)方法(如onClick(View v))。
    监听器的三种实现方法:
    方法一:在Activity中定义一个内部类继承监听器接口(这里是OnClickListener)。常见的继承方法如下:
class MyListener implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            Toast.makeText(MainActivity.this,"you have clicked Button2",Toast.LENGTH_SHORT).show();
        }
    }

方法二:实现匿名内部类。这种方法适合只希望对监听器进行一次性使用的情况,在该代码块运行完毕之后,该监听器也就不复存在了。

bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,"you have clicked Button1",Toast.LENGTH_SHORT).show();
            }
        });

方法三:利用布局文件中的onClick属性,并在实现文件中实现该方法。注意的是这里的方法名应该和布局文件中onClick属性的方法名相同,该方法必须是public方法。

// 方法三,注意需要public方法
    public void onButtonClick (View view){
        Toast.makeText(MainActivity.this,"you have clicked Button3",Toast.LENGTH_SHORT).show();
    }
}

上周考试错题总结

  • 错题1及原因,理解情况

An array can be classified as what type of object?

A . dynamic
B . ordered
C . first-in first-out
D . heterogeneous
E . collection
正确答案: E
你的答案: A
一个数组存储一组项目,并被复制为一个集合类型
数组存储多个项目,但它们都必须是相同类型的

  • 错题2及原因,理解情况

Which of the following is considered an Abstract Data Type?

A . array
B . reference variable
C . any of the primitive types (e.g., int, double, char)
D . vector
E . all of the above
正确答案: D
你的答案: E
抽象数据类型包含数据结构以及操作和访问数据结构的方法。 在列出的那些中,只有矢量结合了这两者。

  • 错题3及原因,理解情况

Abstract Data Types have which of the following object-oriented features?

A . information hiding
B . inheritance
C . polymorphism
D . message passing
E . all of the above
正确答案: A
你的答案: E
所有这些答案都是面向对象功能的类型。所有ADT都利用信息隐藏功能,以便数据结构不能直接从ADT外部操作,但不需要其他面向对象的功能。

  • 错题4及原因,理解情况

One operation that we might want to implement on a Stack and a Queue is full, which determines if the data structure has room for another item to be added. This operation would be useful

A . only if the Queue or Stack is implemented using an array
B . only if the Queue or Stack is implemented using a linked list
C . only for a Queue
D . only for a Stack
E . none of the above, a full operation is not useful at all
正确答案: A
你的答案: B
由于该数组是一个静态大小的对象,因此如果它被填充,则应该阻止任何添加类型的操作

  • 错题5及原因,理解情况

In a linked list in Java

A . the link is an object
B . the link is a node
C . the link is a reference
D . the link is an int
E . the link is a class
正确答案: C
你的答案: B
在链接列表中,链接是对下一个节点的引用。一个节点的数据部分可能是一个int,以及任何其他类型的数据。

  • 错题6及原因,理解情况
    A linear data structure

A . always has more than one link per node
B . is sometimes represented as a tree or a graph
C . can have but a single link per node
D . almost always is kept in sorted order either ascending or descending
E . none of the above
正确答案: C
你的答案: E
线性数据结构是一种当您绘制图片时显示为一系列连接节点的结构。

结对及互评

点评过的同学博客和代码

  • 本周结对学习情况
    • 20172318
    • 结对学习内容
      • 第23章 Android简介
      • 第24章 初始Android
      • 第25章 活动
      • 第26章 UI组件

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 287/481 2/4 18/38
第三周 320/801 3/7 22/60
第四周 900/1600 2/9 30/90
第五周 807/2407 2/11 40/130
第六周 619/3023 2/13 40/170
第七周 621/3644 2/15 40/210
第八周 805/4364 2/17 40/250
第九周 1787/6211 2/19 40/290
第十周 792/ 7003 2/21 40/340
第十一周 0/ 7003 2/23 40/380

参考资料

posted @ 2018-06-03 13:35  大雪将烬  阅读(156)  评论(1编辑  收藏  举报