Android开发之内部类篇
内部类:
1、内部类的第一个好处,隐藏你不想让别人知道的操作,也即封装性。
2、非静态内部类对象有着指向其外部类对象的引用 等等。
创建项目:
1、File---->New----->java Project
2、src右键添加 New---->Package(添加一个包,命名为“成员内部类”)
3、包右键添加New----->class/interface
注: 有main(String[] agre)函数的就是运行文件,如果要作为一般类使用,将注释及main(String[] agrs)函数删除。
4、运行:找到相对应的运行文件,右键 Run as ----->java Appliaction
一、成员内部类
因为上面已经建了一个"成员内部类"包,所以包右键添加New----->class(命名为on1)。
on1类:
public class on1 { class tm
{
public void show()
{
System.out.println("tt");
};
}
public void k()
{
tm t=new tm();
t.show();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new on1().k();
} }
效果图:
二、方法内部类
首先src右键添加 New---->Package(添加一个包,命名为方法内部类”),添加两个class分别命名为on1,on2.
on1类:
public class on1 { public void tm()
{
System.out .println("kkkkkkkkkkkk");
class t extends on2
{ }
new on2().k();
System.out.println("hhhhhhh");
}
public static void main(String[] args) {
new on1().tm();
} }
on2类:
public class on2 { public void k()
{
System.out.println("tttttttttt");
} }
效果图:
三、匿名内部类(Anonymous)
首先src右键添加 New---->Package(添加一个包,命名为匿名内部类”),添加两个class分别命名为on1,on2,添加一接口命名为Infot。
Infot接口:
public interface Infot { public void eve();
}
将on1类变成抽象类。
public abstract class on1 implements Infot{ public void day()
{
System.out.println("学习");
} }
on2类:
public class on2 { public static void main(String[] args) {
//on1 t=new on1();
//t.day();
//t.eve();
//on2 k=new on2();
//k.day();
//k.eve();
Ons t=new Ons()
{
public void eve(){System.out.println("kkkk");}
};
t.eve();
t.day();
} }
效果图:
特点:
成员内部类特点:
在一个外部类的内部且方法外定义的类我们称为外部类 ,该类特点是高度内聚,不对外开放。
方法内部类(局部内部类)特点:
在一个方法内部定义的类我们通常叫做方法内部类或者局部内部类 该类特点是短暂性的,不对外的。
匿名内部类特点:
要满足匿名内部类操作在实现该类操作时必须是一个抽象类或者是一个接口,这样才能使用内部类操作,在实现一个内部类操作时,
同时是重写未实现的方法,也是高内聚的特点。
Android开发之内部类篇的更多相关文章
- Android开发环境搭建篇详尽的教程实例汇
原文链接:http://android.eoe.cn/topic/android_sdk 一.android开发环境搭建图文教程整理篇: 1.Android开发环境搭建全程演示(jdk+eclip+a ...
- Android开发第1篇 - Android开发环境搭建
归结一下,需要进行Android开发所需要的工具或软件: Eclipse - Android是基于JAVA的开发,所以选用目前来说使用较高的Eclipse作为IDE. ADT (Android Dev ...
- 快速Android开发系列网络篇之Volley
Volley是Google推出的一个网络请求库,已经被放到了Android源码中,地址在这里,先看使用方法 RequestQueue mRequestQueue = Volley.newRequest ...
- 快速Android开发系列通信篇之EventBus
先吐槽一下博客园的MarkDown编辑器,推出的时候还很高兴博客园支持MarkDown了,试用了下发现支持不完善就没用了,这次这篇是在其他编辑器下写的,复制过来后发现..太烂了.怎么着作为一个技术博客 ...
- Android进程间通信之内部类作为事件监听器
在Android中,使用内部类能够在当前类里面发用改监听器类,由于监听器类是外部类的内部类.所以能够自由訪问外部类的全部界面组件. 下面是一个调用系统内部类实现短信发送的一个样例: SMS类: pac ...
- 快速Android开发系列网络篇之Retrofit
Retrofit是一个不错的网络请求库,用官方自己的介绍就是: A type-safe REST client for Android and Java 看官网的介绍用起来很省事,不过如果不了解它是怎 ...
- Android 开发之异常处理篇(一):SDK Manager 闪退的解决方法
这个问题困扰了我很久,之前没解决,就放一放.后来我又专门拿了一个下午来找解决方法,终于搞定! 我的解决方法是修改 android.bat,直接指定java.exe所在位置,不用去调用find_java ...
- 高速Android开发系列通信篇之EventBus
概述及基本概念 **EventBus**是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间.组件与后台线程间的通信.比方请求网络,等网络返回时通过Hand ...
- ubuntu下搭建android开发环境核心篇安装AndroidStudio、sdk、jdk
本文系转载http://blog.csdn.net/lsyz0021/article/details/52215996 一.安装前的准备 1.1.如果你还没有安装ubuntu 14.04 LTS系统, ...
随机推荐
- Javascript 标准参考教程
http://javascript.ruanyifeng.com/grammar/array.html
- php基础-4
require和include require和include都是导入外部php文件的方法,使用方法为require和include关键字后接导入包(php_file)的名字的字符串形式. 当导入的包 ...
- 踩坑tomcat8.5的cookie机制
https://www.pomelolee.com/1601.html tomcat升级到8.5版本 发现登录和退出报错,报错日志为下 [http-nio-8080-exec-20] 2016 Aug ...
- mysql之commit,transaction事物控制
简单来说,transaction就是用来恢复为以前的数据. 举个例子,我想把今天输入到数据库里的数据在晚上的时候全部删除,那么我们就可以在今天早上的时候开始transaction事物,令autocom ...
- MySQL Replication--全局参数gtid_executed和gtid_purged
参数定义gtid_executed,全局参数,GTID集合包含所有在该服务器上执行过的事务编号和使用set gtid_purged语句设置过的事务编号,使用SHOW MASTER STATUS和SHO ...
- SimpleEntity
项目地址 : https://github.com/kelin-xycs/SimpleEntity SimpleEntity 一个 用 C# 实现的 简单的 持久层 Entity 实现 . 这是一个 ...
- git merge 和 git merge --no-ff
根据这张图片可以看出 git merge –no-ff 可以保存你之前的分支历史.能够更好的查看 merge历史,以及branch 状态. git merge 则不会显示 feature,只保留单条分 ...
- laravel 打印完整sql语句
laravel5 用DB自带的getQueryLog方法直接打印: DB::connection()->enableQueryLog(); // 开启QueryLog \App\User::fi ...
- MySQL通过Navicat实现远程连接
直接使用Navicat通过IP连接会报各种错误,例如:Error 1130: Host '192.168.1.80' is not allowed to connect to this MySQL s ...
- Linux Tomcat自启动
1. 修改/etc/rc.d/文件夹下的rc.lcoal 添加如下内容 export JAVA_HOME=/usr/java/jdk/jdk1.7.0_80 export JRE_HOME=$JAVA ...