Android新闻客户端实训-Day1类Day2接口基操
结束了一些事情,本以为可以好好玩一段时间,结果紧接着又来了Android实训,因为这个实训已经开了一段时间了,我中途加入已经不赶趟了,但出于兴趣,准备今天开始跟着老师的笔记的源码从头开始自己摸索着学一遍。
背景历史啥的先不写了,在菜鸟教程上看看Android专栏的前几章讲的挺详细的。
不过关于Android到底是个什么架构,有什么组件,这个体系我还没了解,先放着吧,先照着老师的学。实践中才能带来最好的理解。
本次实训所有的代码及材料地址(实训完成后再上传):
Day1 Java类的相关操作
我看第一天的笔记和代码是关于Java类的讲解,继承,封装,多态等操作。。不多说了,这里直接贴一下笔记一带而过好了。
一.基本操作
1.创建模拟器
可以在Windows系统中虚拟一台Android的手机。(如下步骤)
步骤:
1. 点击工具栏上的“Android Virtual Device Manager”图标
2. 在弹出的窗口中点击右上角的New按钮
3. 在弹出的窗口中配置模拟器相关参数后,点击完成
4. 在列表中可以看到已经配置好的模拟器,选中模拟器后,点击Start按钮启动模拟器
5. 弹出“Launch Options”窗口,确定参数后,点击“Launch”按钮
6. 会进度到启动过程,时间长度不一定,耐心等待。
因为本次使用的开发工具版本不是很新,所以可以使用其他的模拟器代替此版本的模拟器。
例如:夜神、海马玩、蓝叠
window->show toolbar->点击下面那个小手机,刚开始没有模拟器,点击New新建一个
大致选项如下
Device选择最低的分辨率!效率还高点。
然后选择选中,点击start启动就行了
效果如下
2.创建Android工程
File->New->Android Application Project
第一个名字自己随便起,后面两个自动生成了,第一个最小需要的SDK是API15,其他的默认就行,然后一路next就建成Android工程了。
3.将写好的Android程序(安装包apk)安装到手机当中
在工程中的bin下找到apk文件,发到你的手机上(QQ啥的发送都行),像正常软件打开点击安装就行了。
效果如下
二.笔记
C++、Java(Android)、Qt、Oracle等
3周 Android新闻客户端
大二
前期以语法基础为主 Java(面向对象编程)
中期以Android技术为主(前期语言的实践)
后期以项目为主(自主动手,以团队为单位)
【授课时间】
8:00 - 12:00
第一节 8:00 - 8:50
第二节 9:00 - 9:50
第三节 10::00 - 10:50
第四节 11:00 - 11:50
14:00 - 17:00
第五节 14:00 - 14:50
第六节 15:00 - 15:50
第七节 16:10 - 17:00
晚自习 19:00 - 20:00
【授课方式】
边讲边练,老师讲一个知识点,讲完后练一个知识点,尽量在课堂上解决所有问题。
【开发环境】
本次Java和Android都使用Eclipse。
优势是保持整个教学周期内开发环境不变。
有基础的同学可以使用其他的集成开发环境。
解压密码:11111111
环境支持的jdk版本最高为1.9
查看jdk版本:
Win+R -- 输入cmd,回车 --- 在窗口中输入 java -versio,回车
环境安装不要着急往下走
1.尽量使用默认路径,因为使用默认路径有问题之后老师可以第一时间定位
2.如果要使用自定义的路径,不要有任何中文!!!
adt-bundle-windows-x86_64-20140321
一定要解压到一个没有中文路径的文件夹下!!!!
解压后的整体不要分离!
进入到
adt-bundle-windows-x86_64-20140321\adt-bundle-windows-x86_64-20140321\eclipse.exe
启动程序后,在弹出的窗口中选择要存储项目的路径(不要带中文)。
如同C语言,C语言需要使用.c文件来进行存储。
Java使用.java文件来存储代码。
【如何创建一个.java文件】
选中项目,点击鼠标右键,选择New--选择Class,需要在弹出的窗口中输入类名--点击Finish按钮。
注意大小写要与老师一致!!
文件创建完成后,会生成一段代码。
注意:
在后续的课程中,函数=方法。
【运行程序的方法(java)】
1. 在主方法所在的编辑窗口,鼠标右键,选择Run As.. --- Java Application
2. 选中要运行的代码文件,鼠标右键,选择Run As.. --- Java Application
3. 直接点击工具栏上的运行按钮
【面向过程和面向对象】
思考:怎么把大象装进冰箱?
面向过程思想:
1.(我)把冰箱门打开
2.(我)把大象装进去
3.(我)把冰箱门关上
面向对象思想:
1.将大象和冰箱拟人化
2.安排任务给大象和冰箱
3.大象和冰箱自己完成功能
面向过程编程的核心是怎么解决问题。
面向对象编程的核心是谁来解决问题。
【类和对象】
“万物皆对象”
类:类是一种抽象的概念,是一种标准。
对象:基于类的标准产生的实例,是实实在在存在的个体。
先类的定义,才会根据类的内容去“生产”对象。
严格地讲,不能将若干个对象称为类。
【类的内容】
主要包含两个部分
1. 属性:用来描述对象的数据元素,是一些数值。
例如:身高、体重、年龄、价钱等。。。。
2. 方法:对属性数据进行操作的行为。
例如:吃饭、学习、工作。。。。
【类的定义】
1. 以手机为例,来创建一个手机类。
手机的属性:品牌、型号、重量
手机的方法:听音乐、玩游戏、打电话
(1)选中项目,右键---New---Class
(2)在弹出的窗口中输入Name栏(注意大小写),点击Finish
(3)在MobilePhone.java文件中写出手机类的属性和方法
2. 基于手机类,创建若干个手机对象。
(1)选中项目,右键---New---Class
(2)在弹出的窗口中输入Name栏(注意大小写),点击Finish
(3)在Test.java·文件中写上主方法
(4)在主方法中创建对象、
(5)运行主方法所在的文件
【如何查看老师的课上代码】
1.导入Eclipse中
将群里老师发的代码压缩包解压到本地磁盘,在Eclipse中,依次点击:
File -- Open Projects From File System
在新弹出的窗口中的Import Source中选择项目文件根目录,点击Finish。
2.使用文本编辑器(Notepad++)打开(可在notepad中对文件直接进行编辑修改)
找到要看的代码(位于项目根目录/src/java文件)
选中要看的代码文件,右键,选择Edit With Notepad++
【信息的隐藏】
一个良好的类应该只开放部分外部需要的数据和功能,
其他的部分应该使用更加严格的权限加以修饰。
信息的隐藏实际上是对对象的一种保护措施,它可以使对象的属性和方法不被外部程序直接访问。
private 是最严格的权限
public 是最宽松的权限
【封装】
如果某个数据被隐藏了,那么外部又想调用它,需要使用封装来公开一个访问的方式。
封装可以:
隐藏一个类的实现细节,只公开给外部部门的内容。
防止对封装数据的未授权的访问。
便于修改,增加代码的可维护性。
【面向对象编程的三大特征】
封装、继承、多态
【Java源文件的基本结构】
package 包
import 导包
class 类
包名通常使用域名反写+模块名称+子模块名称+...
包名必须使用全英文小写,用.分割
包的本质实际上就是文件夹的层级划分。
【岗位划分】
2B(乙方)
2C(消费类电子)
跑客户
(销售:谁是客户,客户的需求是什么?不懂开发技术)
(售前:技术型销售,方案演示,技术答疑,投标,稍微懂开发技术)
(产品经理:转换客户需求为产品原型,不懂开发技术)
(项目经理:把控一个项目的流程,往往是具备了一定的开发经验后转型为管理者,良好的人际沟通能力)
(研发:需要扎实的专业技术,是除了管理类岗位门槛最高的)
(测试:提bug的,需要经常跟研发沟通,对技术要求较少,女性多)
(运维:对服务器进行维护,需要服务器和数据库相关的技术)
(实施:对设备进行安装调试,不需要任何的开发技术)
(售后:产品使用过程中出现问题,负责解决问题)
市场调研
(产品经理:市场需求、竞品分析→产品原型)
(项目经理:把控一个项目的流程,往往是具备了一定的开发经验后转型为管理者,良好的人际沟通能力)
(研发:需要扎实的专业技术,是除了管理类岗位门槛最高的)
(测试:提bug的,需要经常跟研发沟通,对技术要求较少,女性多)
(运维:对服务器进行维护,需要服务器和数据库相关的技术)
(售后:产品使用过程中出现问题,负责解决问题)
【快捷键--基于Eclipse】
单行注释
Ctrl + Shift + C
Ctrl + /
自动补全
Alt + /
代码格式化
Source --- Format
搜索
Ctrl + F
【标识符】
标识符用作给变量、类、方法命名。
1.注意大小写
2.避免与Java中已经定义的名称重名(关键字)
3.见名知意
4.避免特殊符号,和特殊符号、数字开头。
【数据类型】
见群图
三.作业
定义一个Student类,位于包com.sd.ta下,
拥有属性姓名、年龄和性别(自己决定使用什么类型)。
对上面的属性进行隐藏和封装。
定义另一个Test类,位于包com.sd.jn下,
在Test类中有程序的主方法,主方法中创建Student类对象并测试其所有功能。
Day2 接口
关于接口的代码,略,在最开头的资料里都有。
一.笔记
【引用数据类型】
除了8种基本数据类型以外,其他的数据类型都是引用数据类型。
严格地讲,引用数据类型通常都是大写开头的。
对象指的是引用数据类型,简单数据类型的值称为变量。
引用数据类型的对象存储在堆内存,简单数据类型的变量存储在栈内存。
堆内存和栈内存的区别:https://www.cnblogs.com/coloz/p/12118140.html
【构造方法(构造器 Constructor)】
用于创建新对象,每次创建新对象的时候都会被调用。
在默认情况下,编译器会自动添加一个没有任何内容和参数的构造器。
构造器的命名要跟类名完全一致
构造方法的主要作用是在构建对象的时候,完成初始化的行为。
【命名规范】
大驼峰命名法(帕斯卡命名法,驼峰命名法)
每个单词的首字母大写,例如StudentInfo
适用于:类名,接口名
小驼峰命名法
第一个单词都小写,其他单词首字母大写,例如name、setAge
适用于:变量、数组、方法名
常量
所有单词都大写,使用下划线分割,例如DATABASE_NAME
【成员变量和局部变量】
成员变量:即属性,定义在类下面的变量。
局部变量:定义在类中代码块(通常是函数)里的变量。
1. 作用域
成员变量的作用域是整个类。
局部变量的作用域只有所在的代码块。
2. 初始化与默认值
成员变量可以自动初始化,有默认值。
局部变量必须手动初始化,没有默认值。
【继承】
继承的目的是为了实现代码复用,继承的“上级*”叫父类,“下级”叫子类。
*注:所谓的上下级指的是图示
Java的优点在于是单继承的,即一个子类只有一个父类。
子类和父类是相对的。
如果一个子类仅仅只继承父类并没有什么意义,真正的子类应该基于父类的代码做出一些拓展和改动。
子类拥有父类所有的属性和方法。
【方法覆盖】
子类可以改写父类的方法。
原则:
1. 覆盖方法必须和父类中被覆盖的方法具有相同的名称、参数和返回值类型。
2. 覆盖方法不能比父类中被覆盖的方法拥有更严格的访问权限。
【访问权限】
详情见群图
注:default表示权限不写的状态,而不是一个default修饰。
【this关键字】
this可以表示当前类的对象。
注:使用System.out.println打印的时候,如果打印的是基本数据数据类型,表示打印数值。
如果是引用数据类型,大多数情况下是打印地址。
如果不清楚this到底是谁,就看当前this所在的方法被哪个对象调用,this指的就是这个对象。
【封装类】
"万物皆对象"
对于简单数据类型,为了与面向对象的思想一致,Java对它们进行了封装,使它们都拥有对应的封装类。
简单数据类型 封装类
boolean Boolean
byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double
自动的装箱(简单数据类型→封装类)和拆箱(封装类→简单数据类型)
【static】
static表示静态。
可以修饰变量、方法、类,分别称之为静态变量、静态方法、静态内部类。
static修饰的变量是同一个类下所有对象共有的,非static的成员变量是每个对象独有的。
static修饰的方法内部只能调用静态变量或者静态方法,无法调用非静态变量或方法。
Tip:
任何一个编程中,黄色表示警告,警告不影响程序的运行,但是代表可以优化的点。
OneDrive(推荐的一个云存储服务)
【Android模拟器 Emulator】
x86 复杂指令集
arm 精简指令集
Tip:
下载软件必须去官网,不要去软件站。
如果使用百度没有辨别是非的能力,国内可以使用必应。
【如何运行第一个Android程序】
如何新建一个Android项目:
1.鼠标右键 --- New --- Android Application Project
2.在新弹出的窗口中输入项目要配置的参数。
3.逐次点击Next,直到点击Finish按钮完成创建。
4.在确定有连接的手机(包括模拟器)的前提下,选中项目,右键---Run As...---Android Application
阿里巴巴矢量图标库
https://www.iconfont.cn/home/index?spm=a313x.7781069.1998910419.2
RGB色表
http://www.wahart.com.hk/rgb.htm
【常量】
常量就是固定的数值不能被改变,且不需要改变。
public class Test {
//常量
public final static String DATABASE_NAME = "student_info.db3";
//常量
public final static double PI = 3.1415926;
public static void main(String[] args) {
System.out.println(DATABASE_NAME);
System.out.println(PI);
//不能被改
// PI = 1;
}
}
【接口】
在Java中继承是单继承的,但是有时候一个类继承了一个父类之后,就无法再继承其他父类了。
这时候如果要继续拓展子类,那么可以使用接口。
1. 接口本身只包含方法的声明,没有方法的定义。
2. 接口本身不能有对象,必须有实现接口的类之后,实例化此类。
例子;有一个设备类Device,有一个计算机类Computer继承Device类,
同时又要给计算机插入键盘和鼠标的功能。
分析:由于Computer类已经继承了Device类,因此无法再多继承键盘类和鼠标类。
可以使用接口来解决这个问题。
二.接口意义心得
为什么不在类里直接定义函数,而要实现接口呢???这不是自找麻烦吗
原因:
你实现了bai某个接口,就必须du在此类里覆zhi盖接口里的所有方法dao,应为在接口里的zhuan所有方法都是抽象的,所以在子类里必须复写。
接口感觉就是一些类似的事物共有的域或方法,就像有一个接口animal,里面有个方法eat,然后你每一个动物的类,都去实现这个接口,因为每个动物都有各自的饮食方法,这样就增加了代码的复用性,不要再每一动物类里都要重新想一个名字来定义eat。
接口在大型程序里都是要用到的,很重要。
Android新闻客户端实训-Day1类Day2接口基操相关推荐
- Android实训内容及过程,Android项目开发实训大纲.doc
Android项目开发实训大纲Android项目开发实训大纲 黎明职业大学信息与电子工程学院 <Android项目开发> 实训指导书 2014年6月 <Android项目开发> ...
- android新闻客户端报告,简易的Android新闻客户端
学完Android基础之后不知道该怎么办?现在开始实战吧! 现在来看看一款简易的Android新闻客户端是怎么做的,当然,获取网络数据的这一部分我是使用别人做好的本地客户端,然后通过组建本地数据库来使 ...
- android视频播放器报告,android视频播放器实训报告.doc
实训报告书 实训名称: Android视频播放器 系 (部): 专业班级: 学生姓名: 学 号: 指导教师: 完成日期: 实训课题Android视频播放器实训人姓名 同组人员实训日期 实训成绩指导教师 ...
- android 新闻频道,GitHub - xiyy/TopNews: 一款Android新闻客户端,并提供电视台直播功能...
TopNews 一款Android新闻客户端,独立开发完成,主要功能包括: 1 新闻频道分类,头条.社会.国内.娱乐.体育.军事.科技.财经.时尚 使用ViewPager+FragmentPagerA ...
- 计算机应用基础实训指导教程 王,计算机应用基础案例教程及实训指导-第2章___Windows操...
计算机应用基础案例教程及实训指导-第2章___Windows操 (11页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 第2章中文WinXP ...
- android新闻客户端实验报告,Android 新闻客户端学习笔记
学习了新闻客户端开发后,有很多是通用的,就把客户端用到的一些做个笔记,已备以后使用,主要用到的知识点有: 1. Android网络编程 2. Android中BaseAdapter的使用 3. ...
- android新闻客户端的实现
制作一个基于聚合新闻数据简单的新闻APP 制作简易新闻App 导航篇 [1.使用Fragment+ViewPager +TabLayout自制简易新闻 app主要框架(一)](https://blog ...
- android新闻客户端(有源码)
有些功能还没实现 源码今天起不再免费提供,评论区有联系方式 目录 一. 题目及要求 2 二. 功能设计 3 三. 详细设计 3 1. 启动页面 3 1)页面显示完跳转 3 2) 启动页面图片全屏化 3 ...
- Android新闻客户端(仿网易)--下
一.摘要继上一篇博客<模仿网易新闻客户端(上)>之后,笔者继续开发我们自己的"网易新闻客户端",由于找不到现成的url新闻链接地址,所以这里就用RSS订阅所提供的url ...
最新文章
- 面试官:磁盘 IO 变高,你怎么分析?
- 腾讯2016校园招聘 研发工程师在线模拟
- python的窗口处理模块_Python tkinter模块弹出窗口及传值回到主窗口操作详解
- io操作是指什么_各种IO模型,一篇打尽
- Xamarin Evolve 2016 Keynote回顾
- ~~朴素筛法求素数(附模板题)
- 基于SaltStack完成LVS的配置管理
- 1.4-shell中特殊符号
- 计算机物理仿真,仿真物理实验室初中完整版
- “天中三少”辛东方:量子动力能传送人到另一个星球?
- 酷狗、QQ音乐歌词转换工具
- [转载]看我花式绕过校园网计费认证
- 15个android框架,Android常用的15个框架总结
- 华为推送 简介 集成
- [散分] 眼见为实?_眼见为实
- python selenium移动端网页下拉刷新
- Google优化排名方法
- 中国移动互联网测试开发大会(简称MTSC大会)
- 服务器证书已过期,WebSphere应用服务器证书过期问题解决
- 全球变暖java_Java实现第九届蓝桥杯全球变暖
热门文章
- scanf函数的返回值以及在while循环中的应用
- 文件缓存FileCache
- 修改文件后缀直接改变文件属性
- Git版本控制管理(二)--git配置
- 巨儒艮、漂泊信天翁……这位90后中科院动物所研究员用日历讲述“物种故事”...
- python xlwings追加数据_Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法...
- 计算机睡眠状态如何恢复,显示器进入睡眠状态怎么解决
- 微软zone DNS服务器,在DNS服务器上创建DNS zone
- 什么是盐加密 为什么使用盐加密密码
- linux视频拼接工具,linux中使用ffmpeg 无损剪切/拼接视频程序