Android知识补充:内部类

内部类:将一个类定义在一个类里面或是一个方法里面。

  1. 内部类分类:

    1. 成员内部类:作为类或方法的一个成员存在。
    2. 局部内部类:方法体里面的类,称为局部内部类。
    3. 匿名内部类:没有构造器的类。
    4. 静态内部类:
  2. 成员内部类:

    成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员)

    注意:

    当成员内部类拥有和外部类同名的成员变量或者方法时,会发生隐藏现象,即默认情况下访问的是成员内部类的成员。如果要访问外部类的同名成员,需要以  外部类.this.成员变量/成员方法  的形式访问

    在外部类中如果要访问成员内部类的成员,必须先创建一个成员内部类的对象,再通过指向这个对象的引用来访问:

    要创建成员内部类的对象,前提是必须存在一个外部类的对象。创建成员内部类对象的一般方式如下:

  3. 局部内部类

局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内

注意: 局部内部类就像是方法里面的一个局部变量一样,是不能有public、protected、private以及static修饰符的。

匿名内部类是Android开发中用得最多的内部类,在编写事件监听的代码时使用匿名内部类不但方便,而且使代码更加容易维护。下面这段代码是一段Android事件监听代码:

匿名内部类是不能有访问修饰符和static修饰符的

匿名内部类是唯一一种没有构造器的类

匿名内部类在编译的时候由系统自动起名Outter$1.class

一般来说,匿名内部类用于继承其他类或是实现接口,并不需要增加额外的方法,只是对继承方法的实现或是重写。

静态内部类也是定义在另一个类里面的类,只不过在类的前面多了一个关键字static。

时间: 2024-12-06 13:53:26

Android知识补充:内部类的相关文章

SQL语句之 知识补充

SQL语句之 知识补充 一.存储过程 运用SQL语句,写出一个像函数的模块,这就是存储过程. 需求: 编写存储过程,查询所有员工 -- 创建存储过程(必须要指定结束符号) -- 定义结束符号 DELIMITER $ CREATE PROCEDURE pro_test() BEGIN SELECT * FROM student; END $ CALL pro_test     -- 调用存储过程 创建存储语句: delimiter 结束符号 create procedure 存储过程名称( 参数列

iOS开发之oc(八)--小知识补充 init方法补充

小知识补充 一. id 1. 简介 万能指针,能指向任何OC对象,相当于NSObject * id类型的定义 typedef struct objc_object { Class isa; } *id; 2. 使用 // 注意:id后面不要加上* id p = [Person new]; 3. 局限性 调用一个不存在的方法,编译器会马上报错 二. .h和.m文件的抽取 1)每个类分布在不同文件中 2)类的声明放在.h文件,类的实现放在.m文件 3)若想使用某个类,就包含某个类的.h声明文件 三.

Android知识杂记

1.Toast.makeTest(contest,test,duration); contest:上下文,一般为当前窗口,this test:提示框内容,字符串型 duration:时常,值为1或0,1为显示2s,0为1s Android知识杂记,码迷,mamicode.com

CRM中QueryDict和模型表知识补充

1.QueryDict的用法 request.GET的用法:1.在页面上输入:http://127.0.0.1:8000/index/print(request.GET,type(request.GET))<QueryDict: {}> <class 'django.http.request.QueryDict'>在收到GET请求后,Django会将后面的参数以字典的形式接收.如果无参数就显示空字典2.在页面上输入:http://127.0.0.1:8000/index/?page

Python学习---django知识补充之CBV

Django知识补充之CBV Django: url    -->  def函数      FBV[function based view]  用函数和URL进行匹配 url    -->  类           CBV[function based view]  用类和URL进行匹配 POSTMAN插件 http://blog.csdn.net/zzy1078689276/article/details/77528249 基于CBV的登录实例: settings.py INSTALLED_

Python入门基础(第5天):基本数据知识补充和深浅拷贝

1.基本类型知识补充 (1)join( )  使用方法 # 将列表转换成字符串,每个元素之间用_拼接(可自定拼接字符) lst="-".join(["何东洋","he","5225"]) print(lst) # 字符串转换成列表用:split("分隔符") # 列表转换成字符串用:join("[内容]") ss="小何**晓东**假如" #字符串 print(ss.

篇三、开发前知识补充:Android的长度单位和屏幕分辨率,这个也是转载~~

这篇文章有点早,不过很实用.单位的实用看最后的红色标注的部分. 屏幕分辨率基础 1.术语和概念 术语 说明 备注 Screen size(屏幕尺寸) 指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸 摩托罗拉milestone手机是3.7英寸 Aspect Ratio(宽高比率) 指的是实际的物理尺寸宽高比率,分为long和nolong Milestone是16:9,属于long Resolution(分辨率) 和电脑的分辨率概念一样,指手机屏幕纵.横方向像素个

Android知识梳理之屏幕适配全攻略

 引言: 我相信Android碎片化问题是让所有的Android开发者都比较头疼的问题.尤其是屏幕适配这一块儿.想要自己的app在不同的设备上面都有一个比较好的显示效果.就必须做好相应的屏幕适配.本文是结合网上的相关知识总结.官方文档结合自己的一些理解来进行阐述的.如有不恰当的地方,欢迎斧正.共同学习. 转载请标明出处:http://blog.csdn.net/unreliable_narrator/article/details/51315776 我们先来了解两个概念:屏幕尺寸和屏幕的分辨率:

Android知识整理

面试,无非都是问上面这些问题(挺多的 - -!),聘请中高级的安卓开发会往深的去问,并且会问一延伸二.以下我先提出几点重点,是面试官基本必问的问题,请一定要去了解! 基础知识 – 四大组件(生命周期,使用场景,如何启动)java基础 – 数据结构,线程,mvc框架通信 – 网络连接(HttpClient,HttpUrlConnetion),Socket数据持久化 – SQLite,SharedPreferences,ContentProvider性能优化 – 布局优化,内存优化,电量优化安全 –