1.对象(object)
自然界含有各式各样的事物,都是对象(Object)
一旦认识某样东西,就能说出其特点,并与其他对象比较一番,其特点包括:
--->对象的特征或属性(Attribute)
--->对象的行为(Behavior)
软件中的对象(SoftWare Object)是由数据(Data)和函数(Fuction)Suomy组成的.
2.类和对象(Class)
类(Class)是群体(或集合),而对象时类中的一份子.常用[是一个](is a)来表达对象与类之间的关系。
例如:
----->小明是一个人
----->周杰伦是一个歌手
----->林俊杰是一个歌手
----->小黑是一条狗
周杰伦和林俊杰都属于歌手类,所以他们的共同特点 : 都精于唱歌。
。。。
3.<基类/子类> 结构用途
----------------------------------继承--------------------------------------
在android中自定义控件就是运用了继承 (extends)
---->例如写一个自定义Button
public class MyButton extends Button{ private int width,height;//按钮的大小 public MyButton(Context context){ super(context) ; super.setText("自定义按钮"); super.setBackgroundResource(R.drawable.icon) ; width = 100 ; height = 100 ; } public int get_Width(return width) ; public int get_Height(return height) ; }
android View控件有如下继承关系:
ViewGroup是View的子类,LinearLayout等布局都是ViewGroup,ViewGroup中可以防止多个View和ViewGroup进行嵌套,而View是可以显示在Activity上的视图,能看得到的东西基本上都是继承自View
实现自定义Button
public class MainActivity extends Activity{ public void onCreate(Bundle sav){ super.onCreate(sav) ; MyButton btn = new MyButton(this); LinearLayout.LayoutParams param = new LinearLayout.LayoutParams( btn.get_Width(), btn.get_height() ) ; btn.setLayoutParams(params); //...... } }
4.<基类/子类> 表达组合
以创建小线程为例,让Thread和Tasks组合起来
Tasks是一个实现了Runnable接口的类
在主程序运行时要Thread 类封装
Runnable接口和Thread类是可以合并起来的,也就是把run函数写在Thread的子类中
5.<基类/子类> 接口 Hook函数
在java里,使用抽象(abstract) 函数或可复写(overridable)函数来实现Hook函数。
6.Ioc机制(控制反转) 和 default 函数
8.主动型vs被动型 API
Hook函数实现API
API与这个名词,有三个相互关联的动词:
定义(define) 实行(Implement) 呼叫(Invoke or call)
根据这三个角度,把API分为【主动型】和【被动型】两种
下面来看一个Android api的范例
在oncreate方法中,两次调用setContentView