当前位置:   article > 正文

2016_____新年新的目标____android_抽象类和接口的异同点

抽象类和接口的异同点

1、抽象的理解
自己理解抽象:就是这类事物都具备这个功能,但是这个具体内容都不知道,没有足够的信息来描述这个信息,这个类就是抽象类,功能细节无法确定所以就抽象出来就是抽象方法。
抽象类的由来:其实也是不断的向上抽取来的,越往上抽取就越不具体,不具体就出现抽象类,就是每个类的功能都有,但是实现方式不一样
事例:在项目的RollPagerView中定义指示器的方式有好几种(单纯的颜色、图片、文字)三种方式,所以在ShapeHintView中定义了两个抽象方法,makeFocusDrawable(),makeNormalDrawable(),不同的方式实现方式不一致,抽象的用途,父类可以调用子类的方法,所以这个类也必须是抽象的
2、接口的理解
抽象类和接口的异同点:
相同点:
都是不断向上抽取而来的。
不同点:
1,抽象类需要被继承,而且只能单继承。
接口需要被实现,而且可以多实现。
2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。
接口中只能定义抽象方法,必须由子类去实现。
3,抽象类的继承,是is a关系,在定义该体系的基本共性内容。
Is a 就是所属关系,什么是什么的一种,
接口的实现是 like a 关系,在定义体系额外功能。
就是举个例子,学员啊学员有学习功能吧,没有抽烟功能,学习是学员的基本功能吧,抽烟不是,抽烟是不是学员的额外功能啊,那些学员抽烟就去实现这个抽烟接口呗
还在我项目的RollPagerView中这三种指示器都需要初始化,都要设置当前的选中的哪一个,所以定义一个接口,initView(),setCurrent()这两个方法,让那三个指示器都去实现不同。
3、在代码中可以使用gradientdrawable来设置渐变
类似于布局文件中的shape
drawable绘制和canvas的学习
http://blog.csdn.net/iispring/article/details/50437731
http://blog.csdn.net/lonelyroamer?viewmode=contents
4、ViewConfiguration.getScaledTouchSlop () 的使用
getScaledTouchSlop是一个距离,表示滑动的时候,手的移动要大于这个距离才开始移动控件。如果小于这个距离就不触发移动控件,如viewpager就是用这个距离来判断用户是否翻页

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0225/907.html
5、android中判断用户是上下滑动还是左右滑可能通过如果x轴的移动距离大于y就是左右,否则就是上下
if (Math.abs(x - mLastMotionX) < Math.abs(y - mLastMotionY))
6、如果知道adapter里面的数据已经更新,通过给adapter注册registerdatasetobserver 这样一个观察者,比如在RollViewPager里面当数据更新的时候要重新初始化指示器的个数
7、36个Android开发常用代码片段
http://www.phpxs.com/code/1001775
8、2015年十大热门Android开源新项目
http://www.jianshu.com/p/aa7238cd8daf
9、Android开发常用的调试工具:leakcanary,BlockCanary,开发者使用的内存清理、Pss监控工具
http://my.oschina.net/liucundong/blog/398547
10、kotlin 中文版的pdf
https://wangjiegulu.gitbooks.io/kotlin-for-android-developers-zh/content/xie_zai_qian_mian.html
11、Android Studio 小技巧合集
http://laobie.github.io/android/2016/02/14/android-studio-tips.html
12、想收集一下Android应用性能调优的技术点
http://zhuanlan.zhihu.com/kaede/20326073
13、java中enum转换为int事例

public static enum DrawMode{
        UNKNOWN(0),
        AXIS(1),
        ARGB(2),
        TEXT(3)

        private int value = 0;

        private DrawMode(int value){
            this.value = value;
        }

        public int value(){
            return value;
        }

        public static DrawMode valueOf(int value){
            switch (value){
                case 0:
                    return UNKNOWN;
                case 1:
                    return AXIS;
                case 2:
                    return ARGB;
                case 3:
                    return TEXT;
            }
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

14、Android中开发的坑
https://github.com/tangqi92/Android-Tips
http://www.lai18.com/content/1518518.html
15、Android在代码中设置字体大小setTextSize
http://qiushao.net/2015/09/14/android%E5%9C%A8%E4%BB%A3%E7%A0%81%E4%B8%AD%E8%AE%BE%E7%BD%AE%E5%AD%97%E4%BD%93%E5%A4%A7%E5%B0%8F
http://blog.csdn.net/lizhenmingdirk/article/details/7349386
16、invalidate与postinvalidate 的区别
http://stackoverflow.com/questions/7596370/what-is-the-difference-between-androids-invalidate-and-postinvalidate-metho
invalidate需要在必须在UIThread更新,postinvalidate 非UIThread的更新操作
17、深入的理解自定义view和invaldate方法
http://blog.csdn.net/guolin_blog/article/details/17045157
http://blog.csdn.net/lmj623565791/article/category/2680591
http://blog.csdn.net/qinjuning/article/details/7110211
http://bbs.9ria.com/thread-230915-1-1.html
http://blog.csdn.net/beyond0525/article/details/48181345
18、Android中paint常用参数的设置
http://blog.csdn.net/wangchangshuai0010/article/details/7336435
19、Andrid内存优化汇总

100% — FF
95% — F2
90% — E6
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5% — 0D
0% — 00
格式如#00FFFFFF,前两位代表不透明度的十六进制。00表示完全透明,FF就是全不透明。依次递增。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/365013
推荐阅读
相关标签
  

闽ICP备14008679号