20172306《Java程序设计》第一周学习总结
教材学习内容总结
本周主要学习《Android和Java》书中的第二十三章和第二十六章。
第二十三章:Android简介
Android使用Java作为编辑语言。
Android是向后兼容的,针对较早的版本编写的应用程序,总是能够在新的版本上运行。
每个活动都必须有一个清单,描述该应用程序。
第二十四章:初识Android
studio的应用程序的结构:project有两个节点:app和Gradle Scripts;app包含应用程序的所有组件,其中包含:manifests:是xml的文件,就相当于之前讲到的清单,它描述了应用程序。java:包含所有的Java应用程序和测试类;res:这个包含了资源文件,这些资源是系统带来的,我们也可以自己加一些。其中drawable包含用于各种屏幕分辨率的图像;layout包含布局文件;menu包含菜单文件;mipmap包含用于各种屏幕分辨率的app图标;values包含了字符串和其他值。
其中需要注意的是R。每次你添加、修改或删除资源的时候,都会重新生成R;R的作用是让你能够引用代码中的一个资源。
AndroidManifest.xml是一个清单,用来描述应用程序
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
- 调试应用程序:对于调试来测试哪句出问题的方式是和在IDEA中是一样的。不同的一点是,Android中提供了Android.util.log类用于记录日志消息,其中会有一些缩写,方便我们进行寻找错误。
第二十五章活动
活动有很多种方法:onCreate:在声明周期中只调用一次;onStrat:在声明中可以调用多次;onResume:可以调用多次;onPause:可以调用多次,在这之后会发生什么取决于活动是否变得完全不可见,如果是的,就调用onStop,否则会调用onResume方法;当活动停止的时候,将调用onDestroy方法,在活动周期中只能调用一次。我在网上看的时候,找到了这张图,我看的王文彬也同样找到了这张图
我们在启动一个新的活动的时候,可以利用Intent方法。如果像得到调用活动的一个结果,可以调用startActivityForResult方法。
第二十六章 UI组件
使用UI工具所做的事情都会反映到布局文件中,以XML元素的形式体现出来,要查看你生成了什么,单击UI工具底部的XML视图即可。
Toast
它是一个小的弹出对话框,用于显示一条消息作为给用户的反馈,它不会替代当前的活动,并且只是占据了一条消息的空间
Toast toast = Toast .makeText(this ,"20172306", LENGTH_LONG );
toast .show() ;
就是一个很好的toast的例子。
- 通知
- 通知是出现在状态栏上的一条消息,和Toast不同,通知是持久的,并且将保持显示,直到关闭它或者设备。
- 通知是android.app.Notification的实例,创建一个通知最方便的方法,是使用一个叫做Builder的嵌套类,可以通过传递一个Context来实例化该类。
- Notification n = new Notification.Builder(context).bulid();
- 要发布一个通知,可以使用NotificationManager
NotificationManager notificationmanager = (NotificationManager)
getSystemService (NOTIFICATION_SERVICE)
教材学习中的问题和解决过程
问题1:首先在安装Android Studio时,安装上了,但是会显示Sync failed 。然后它就会提示让我下载一个gradle.zip,这个问题当时就记着解决,忘记截图了
问题1解决方案:我就跟着下载,然后它就会说,try again。我就又下,结果大约下了十二遍以上,就放弃了,我觉得不是这样的,然后我就上网找解决方法,他说让我在官网上下载zip,但是没什么用,后来另一个同学和我遇到同样的问题,也没解决,后来就重新建了一个项目,就莫名其妙的好了!!!
问题2:在看Toast的时候,记得老师说可以改变toast显示的时间,但是我不知道怎么弄?
问题2解决方案:我就上网查了一下。发现我们可以自己设置一个方法,来设置改变toast的时间。
问题3:学长说我们在做东西的时候,可以不设项目,而是在一个项目中建一个又一个的模块,但是我在建第二个的时候,我的Android Studio就突然gradle又出问题了。
问题3的解决方案:我也不知道怎么回事,就将Android重新启动了一下,就好了,我也不知道为什么,我猜可能是它的反应有点慢!
[代码托管]
这周没有代码!!!!
上周考试错题总结
一个抽象的数据类型包含一个数据结构和操作和访问数据结构的方法。在这些列表中,只有这个向量结合了这两个向量。数组是一个数据结构,但是没有方法(例如插入方法或搜索方法)而引用变量和原始类型是数据,而不是数据结构。
所有这些答案都是面向对象特性的类型。抽象数据类型封装了数据结构和操作数据结构的方法,从而保留了信息隐藏。因此,所有的ADTs都使用隐藏的信息,这样数据结构就不能直接从ADT外部操纵,但是其他面向对象的特性是不需要的。
在链表中,链接是对下一个节点的引用。通过检查参考资料的内容,通过“取消引用”来跟踪链接。节点对象。对象是类的实例。节点的数据部分很可能是int,以及其他类型的数据。
一个简单的线性列表被定向,从它的起始节点到它的结束节点。图和图都没有起始节点,但是树确实是树的根。所以,一个简单的线性列表就是一个退化树的例子,它有一个分支因子,每个节点都有一个单独的继承者,从根开始,到单个叶子(结束节点)结束。
虽然这两个操作都是为各自的抽象数据类型“添加”或“插入”操作,但它们的不同之处在于,push在堆栈的顶部(或前端)添加,而enqueue总是在队列的后面添加
数组是一种数据结构,可以用来存储一系列值,但是数组中没有已经实现的操作来执行列表操作,比如添加到末尾,或者删除给定的值。
队列和堆栈都是抽象的数据类型,它们的实现方法是无关紧要的,它是定义它们的操作(enqueue、dequeue、push、pop)。因此,两个ADTs都可以使用数组或链表来实现。
在Java中,所有的数据都是原语或类。ADT是一种数据结构,因此它不仅仅是一种原始类型,而是一种不同类型的结构。因此,ADT必须在类中定义。并不是所有的类都是ADTs,但是所有的ADTs都被定义为类。
虽然双向列表在每个节点中有多个链接,但是当您绘制一个双向列表的图片时,它仍然是线性的。
apt-cache search tree
tar –cf dky.tar dky
grep –rn main /src
上下左右顺序依次是kjhl
结对及互评
点评模板:
-
博客中值得学习的或问题:
- 博客中对于监听器的问题的解释还是比较详细的,他说,希望给别人帮助,我觉得还是很好的。
基于评分标准,我给本博客打分:8分。
点评过的同学博客和代码
- 本周结对学习情况
- 结对同学学号1
- 结对学习内容
- 一起学习了第二十三章到第二十六章
- 一起做了老师在蓝墨云上的五个实验
- 一起在做实验时学习了第二十七章和二十八章
其他(感悟、思考等,可选)
这学期Java的学习很快就要结束了,这貌似也是这学期最后一次写教学的博客了。这一门课我学的不够好,自己也知道原因,一是自己这学期放在Java的时间不够多,很多练习自己都是一知半解的;一个是学习进程太快,自己理解的太慢了,很多时候自己刚学一半就又要进行下两章的学习了。往往会让自己对这门课失去一些兴趣;一个是自己的博客写的吧,不够好,不够细致吧,而且我问题比较少,其实也有,就是很多时候我都想着解决问题就不记得截图,等写的时候,我就不记得都有什么问题了。不过,自己还是没能合理的安排好自己的时间。其实最开始自己还是立志一定要学好Java的,后来渐渐走歪了。我希望自己假期的时候吧,能把Java的一些基础的东西再学习学习,我知道下学期还要继续学习有关知识,我吸取这次的经验,争取在下学期学好这门课
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 193/200 | 1/1 | 20/20 | |
第二周 | 247/440 | 1/1 | 22/42 | |
第三周 | 445/895 | 2/2 | 20/62 | |
第四周 | 885/1780 | 1/1 | 43/105 | |
第五周 | 775/2555 | 1/1 | 55 /160 | |
第六周 | 1171/3726 | 1/1 | 38/198 | |
第七周 | 596/4322 | 1/1 | 60/258 | |
第八周 | 569/4891 | 2/2 | 55 /313 | |
第九周 | 1890/ 6781 | 1/1 | 66/379 | |
第十周 | 1021/7793 | 1/1 | 70/449 | |
第十一周 | 0/ 7793 | 3/3 | 50/499 |