android学习札记第3章之面向对象四及安卓基础
面向对象在前三节的基础上还差内部类就全部结束了,面向对象是一个要持续学习的知识,需要在今后的工作中慢慢积累经验,本节会讲解内部类的使用和总结面向对象中封装、继承、多态的含义,另外,需要开始重点的android学习,首先会涉及一些android界面控件、Activity方面的基础知识。
工具/原料
JDK、eclipse、android SDK、ADT
一、面向对象之内部类
1、内部类是定义在一个类的内部,或方法内部,或局部代码块内部的类。非静态内部类:罕铞泱殳 ①非静态内部类对象,依赖与外部类对照滠跋诵象存在。 ②非晶态内部类中不能定义静态成员。 class A{ class Inner{ }} A a=new A(); A.Inner inner=a.new Inner(); 创建内部类对象,需要先创建外部类对象,用外部类对象,创建内部类对象。
2、静态内部类: class A{ static class Inner{ } } A.Inner inner=new A.Inner(); 静态内部类属于类,内存中只有内部类一个Inner对象,不存在A类。
3、局憧钏荭拜部内部类: ①局部内部类定义的类型,只能在局部代码块中使用。 ②当局部内部类创建后,对象的内存地址,可以从方法返回到外面。 class A{ 父类型 a烫喇霰嘴(){ class Inner implements或extends 父类型{ } Inner inner=new Inner(); return inner; } 父类型 a=a(); }
4、匿名内部类:(局部匿名内部类): 父类a=new 父类(){ 局部内部类中,使用外面的局部变量,该变量必须事先声明final。
二、面向对象之三大特性:封装、继承、多态的含义
1、封装:封装就是尽可能的隐藏对象内部细节,对外形成一道边界,只保留有限的接口和方法与外界进行交互。总结起来一句话:属性私有化,方法公开化
2、继承:1、继承发生在子类与父类之间。2、使用extends关键字。3、子类可以继承父类非私有的方法。4、java中,允许多层继承,不可以多重继承。5、存在方法的重写。
3、多态:java的多态体现在两个方面:由于方法重载实现的静态多态性【编译时多态】和方法重写实现的动态多态性【运行时多态】1、编译时多态:在编译阶段,具体调用哪个被重载的方法,编译器会根据参数的不同来静态确定调动相应的方法。2、运行时多态:由于子类继承了父类所有的属性【私有属性除外】所以子类对象可以作为父类对象使用。程序中凡是用父类对象的地方,都可以用子类对象来代替。一个对象可以通过引用子类的实例来调用子类的方法。3、继承关系中,多个子类可以当作父类来处理,可以互相转换,然后不同类的对象根据不同的行为方式,调用不同的方法,多态消除类型之间的耦合关系。重写和重载的含义:方法重写:子类对父类的方法进行重写编写。如果在子类中的方法与其父类具有相同的方法名、返回类型和参数表,我们说该方法被重写。方法重载:1、方法名相同;2、方法的参数类型,个数顺序至少有一项不同;3、方法的返回类型可以不相同;4、方法的修饰符可以不相同;5、main方法也可以被重载。向上转型和向下转型的含义:向上转型:子类对象转型成父类类型,转为父类型之后只能调用父类定义的通用方法或成员,若想调用子 类扩展的成员或方法,需要向下转型。 向下转型:已经转为父类型的子类对象,转回成子类型,需要强制转型。
三、Android安卓基础之界面控件和Activity
1、界面控件:控件(Control)包括:文本(TextView)、输入框(EditText)、按钮(Button)、多选钮(CheckBox)、单选钮(Radio)等。并且这些界面控件都继承界面控件父类(android.view.View),而且这些子类都已经被android系统在显示界面时自动创建出了对象。
2、Activity: 活动,理解成窗口,一般情况下,一个窗口只显示一个界面。 启动窗口时,系统“自动”创建窗口对象,并调用onCreate()方法。 在onCreate()方法中,设置在窗口中显示的界面用setContentView(指定界面) 启动另一个窗口: 1、Intent intent=new Inntent(当前窗口对象,目标窗口类); 2、startAcitivty(intent);