内部类:

        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开发之内部类篇的更多相关文章

  1. Android开发环境搭建篇详尽的教程实例汇

    原文链接:http://android.eoe.cn/topic/android_sdk 一.android开发环境搭建图文教程整理篇: 1.Android开发环境搭建全程演示(jdk+eclip+a ...

  2. Android开发第1篇 - Android开发环境搭建

    归结一下,需要进行Android开发所需要的工具或软件: Eclipse - Android是基于JAVA的开发,所以选用目前来说使用较高的Eclipse作为IDE. ADT (Android Dev ...

  3. 快速Android开发系列网络篇之Volley

    Volley是Google推出的一个网络请求库,已经被放到了Android源码中,地址在这里,先看使用方法 RequestQueue mRequestQueue = Volley.newRequest ...

  4. 快速Android开发系列通信篇之EventBus

    先吐槽一下博客园的MarkDown编辑器,推出的时候还很高兴博客园支持MarkDown了,试用了下发现支持不完善就没用了,这次这篇是在其他编辑器下写的,复制过来后发现..太烂了.怎么着作为一个技术博客 ...

  5. Android进程间通信之内部类作为事件监听器

    在Android中,使用内部类能够在当前类里面发用改监听器类,由于监听器类是外部类的内部类.所以能够自由訪问外部类的全部界面组件. 下面是一个调用系统内部类实现短信发送的一个样例: SMS类: pac ...

  6. 快速Android开发系列网络篇之Retrofit

    Retrofit是一个不错的网络请求库,用官方自己的介绍就是: A type-safe REST client for Android and Java 看官网的介绍用起来很省事,不过如果不了解它是怎 ...

  7. Android 开发之异常处理篇(一):SDK Manager 闪退的解决方法

    这个问题困扰了我很久,之前没解决,就放一放.后来我又专门拿了一个下午来找解决方法,终于搞定! 我的解决方法是修改 android.bat,直接指定java.exe所在位置,不用去调用find_java ...

  8. 高速Android开发系列通信篇之EventBus

    概述及基本概念 **EventBus**是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间.组件与后台线程间的通信.比方请求网络,等网络返回时通过Hand ...

  9. ubuntu下搭建android开发环境核心篇安装AndroidStudio、sdk、jdk

    本文系转载http://blog.csdn.net/lsyz0021/article/details/52215996 一.安装前的准备 1.1.如果你还没有安装ubuntu 14.04 LTS系统, ...

随机推荐

  1. eclipse 大小写转换

    大写:Ctrl+Shift+X 小写:Ctrl+Shift+Y

  2. 什么是 JVM

    什么是 JVM 先来看下百度百科的解释: JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,JVM 是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算 ...

  3. NodeServices

    NodeServices https://www.cnblogs.com/stulzq/p/10535310.html 一.前言 在 .NET Framework 时,我们可以通过V8.NET等组件来 ...

  4. MySQL之高可用MHA部署

    先说一下大概原理 虚拟机A  ip为10.0.3.92           作为master 虚拟机B  ip为10.0.3.102  作为slave1 虚拟机C  ip为10.0.3.103  作为 ...

  5. zabbix使用自定义key进行监控

    我的zabbix-server是安装在另一台虚拟机上的,用来监控下图中的这台虚拟机 先修改zabbix的客户端配置文件,增加UserParameter那行,这里我只是用来测试,所以就随便起了一个名为p ...

  6. C++中的类模板

    一.学习笔记 1.类模板的格式(1)声明 template<typename T> /* 使用T表示某种类型,比如: */ class AAA { private: T obj; publ ...

  7. MySQL Network--Localhost与127.0.0.1的差异

    localhost为本地服务器,而127.0.01为本机地址.在使用localhost时不经过网卡传输,不受网络防火墙和网卡相关的限制,访问localhost不会被解析成ip地址,不会占用网卡和网络资 ...

  8. Django 之老师讲的教师,班级学生,class_2_teacher四个表格的项目

    现数据库中有四张表格 要求:实现查询功能  页面显示教师  id 姓名  教学班级 url 处设置 url(r'teacher_list/',teacher_list),  teacher_list函 ...

  9. 02c语言指针基础

    & 用来取一个变量的地址 * 用来取一个地址的值 例如: (1)&n 获取n的地址 int *p=&n; *p就等于p的值 (2) 假设 int n=10; *(&n) ...

  10. HI3518E平台ISP调试环境搭建

    海思的SDK提供了ISP调试的相关工具,降低了IPC的ISP调试的难度.初次搭建ISP调试环境,记录一下. SDK版本:Hi3518_MPP_V1.0.A.0 硬件平台:HI3518E_OV9732 ...