1217天 Mr.贰呆

唯一自信的就是自己的人品。
寻求王者玩家一起开黑净化峡谷环境​​

【Android】学习札记第3章之面向对象四及安卓基础

发布于 / 611 次围观 / 0 条评论 / Android / 二呆 /

面向对象在前三节的基础上还差内部类就全部结束了,面向对象是一个要持续学习的知识,需要在今后的工作中慢慢积累经验,本节会讲解内部类的使用和总结面向对象中封装、继承、多态的含义,另外,需要开始重点的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);

注意事项

一定要深刻理解面向对象中封装、继承、多态的含义,不只是对于面试有利,在今后的编程之路乃至梦想都会有利的。

内部类在android中也应用广泛,应该熟练掌握。

sitemap
共享域名