static修饰的成员属于整个类,而不属于单个对象)定义:将一个类放到另一个类的内部定义,这个在内部定义的类就叫做内部类(也有的成嵌套类),包含内部类的类被称为外部类(也有的称宿主类)。1。非静态内部类没有使用static修饰的内部类就是非静态内部类。注意:a。java不允许在非静态内部类中定义静态...
分类:
编程语言 时间:
2015-07-05 19:45:28
阅读次数:
103
(static修饰的成员属于整个类,而不属于单个对象)定义:将一个类放到另一个类的内部定义,这个在内部定义的类就叫做内部类(也有的成嵌套类),包含内部类的类被称为外部类(也有的称宿主类)。1。非静态内部类没有使用static修饰的内部类就是非静态内部类。注意:a。java不允许在非静态内部类中定义静...
分类:
编程语言 时间:
2015-06-26 22:28:08
阅读次数:
199
目录目录
概述
非静态内部类
从外部类的非静态方法中实例化内部类
从外部类的静态方法中实例化内部类
内部类的this引用
静态内部类
从外部类的非静态方法中实例化静态内部类
从外部类静态方法中实例化静态内部类
匿名内部类
方法内部类概述最近学习python,发现python是支持多继承的,这让我想起Java是通过内部类实现的这套机制。这篇文章不是讲如何通过内部类实现多继承,而是总结一下内部类的类型和...
分类:
编程语言 时间:
2015-06-09 21:57:28
阅读次数:
201
package cc.cc;
import android.os.Bundle;
import android.app.Activity;
/**
* Demo描述:
* 非静态内部类可能导致的内存泄露及其优化
*
* 在MainActivity中定义了两个内部类InnerClassTest和ThreadSubClass.
* 在这里需要注意一个问题:
* 内部类持有外部类的引用...
分类:
其他好文 时间:
2015-05-13 19:46:52
阅读次数:
133
一、前言
内部类也称寄生类,就是把一个类放在类里面(即内部类的上一级程序单元是类)定义,将其作为外部类的成员。内部类主要用几种定义形式:静态(static)内部类,非静态内部类,匿名内部类(也就是没有名字的寄生类)。内部类的好处就是内部类可以直接外部类的(包括私有)成员,反之不能。下面我们通过一些实例来详细讲解一下Java中内部类的使用及几种定义形式的相互调用。
二、实例说明
(1)匿名内部...
分类:
编程语言 时间:
2015-04-30 01:04:36
阅读次数:
250
1、非静态内部类: a、四种访问权限:public protected default private(与成员变量相同) b、如果外部内属性、内部类属性与内部里方法的局部变量同名,则可以使用this、外部类类名.this做为限定来区分。 c、非静态内部类成员可以访问外部类的private成员,但是....
分类:
其他好文 时间:
2015-04-21 17:57:17
阅读次数:
124
看到的几句话: 对于非静态内部类,不能有静态成员,例如变量、方法等。 静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量。 非静态内部类的非静态成员可以访问外部类的非静态变量。Java内部类总结内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。*内部类可.....
分类:
编程语言 时间:
2015-04-06 15:34:51
阅读次数:
206
内部类是定义在其他类内部的类,内部类所在的类成为宿主类。由于内部类只能被它的宿主类使用,所以通过内部类的使用可以很好地控制类的可见性。
内部类有如下几个特性:
1) 内部类分为两大类:静态内部类和非静态内部类;
2) 非静态内部类可以调用它的宿主类的所有变量和方法,并且像宿主类的其他非静态成员那样直接引用它们;
3) 静态内部类是用static修饰,不能直接访问其宿主类的成员,必须通...
分类:
编程语言 时间:
2015-03-12 15:07:23
阅读次数:
151
public class Outer{
private int outProp=5;
class Inner{
public void accessOuterProp(){
//非静态内部类可以直接访问外部类的成员
System.out.println("外部类的outProp值:"+outProp);
}
}
public void accessInnerProp(){
//外...
分类:
其他好文 时间:
2015-02-10 13:23:53
阅读次数:
123
--根据静态成员不能访问非静态成员的规则,外部类的静态方法,静态代码块不能访问非静态内部类,包括不能使用----非静态内部类定义变量,创建实例等
--总之,不允许在外部类的静态成员中直接使用非静态内部类
public class StaticTest{
//定义一个非静态内部类,是一个空类
private class In(){}
public static void main(Stri...
分类:
其他好文 时间:
2015-02-10 13:22:18
阅读次数:
134