//贴点代码
public class InnerClass {
/*
* 内部类的优点1:对外可以隐藏内部类的名称,体现了封装性
* 优点2:可以通过内部类实现多个接口,使代码更清晰
* 优点3:内部类可以访问外部类的变量,但是不可以修改
* 有四种内部类:1,普通内部类;2,静态内部类;3,局部内部类;4,匿名内部类
*/
//普通内部类
int n=3;
private class AA implements A{
private int i=2;
@Override
public int value() {
System.out.println(n*i);
return i;
}
}
protected class BB implements B {
String bString;
BB(String bString){
this.bString=bString;
}
@Override
public String print() {
System.out.print(bString);
return bString;
}
}
public A a(){
return new AA();
}
public B b(String bString){
return new BB(bString);
}
public class Test {
/**
* @param args
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String bString="88888";
InnerClass innerClass=new InnerClass();
A aa=innerClass.a();
aa.value();
B bb=innerClass.b(bString);
bb.print();
}
}
public interface A {
int value();
}
public interface B {
String print();
}
分享到:
相关推荐
Java ---- 局部内部类 静态内部类 普通内部类
静态内部类的实例创建与普通内部类不同,可以直接使用 `new 外部类.静态内部类()` 的形式创建实例,而无需先创建外部类的实例。例如: ```java public class CreateStaticInnerInstance { public static void main...
与普通内部类相比,静态内部类具有以下显著特点: 1. **创建对象无需依赖外部类**:这是静态内部类最为关键的一个特征。也就是说,我们可以在不创建外部类对象的情况下,直接创建静态内部类的对象。 ```java ...
在这个例子中,`IMyInterface`包含了一个名为`TInnerClass`的普通内部类。`TClassDemo`实现了`IMyInterface`,因此它可以创建`TInnerClass`的对象,并通过`GetInnerInstance`方法返回这个内部类的实例。这样,`...
1. **普通内部类**:这是最常见的一种内部类形式,它被定义在一个类的内部,但不是在任何方法或代码块内。这种类型的内部类可以访问其外围类的所有成员,包括私有成员。 2. **局部内部类**:局部内部类是在方法体或...
本JavaDemo14032003的压缩包文件着重展示了内部类的基本用法,包括普通内部类、匿名内部类以及它们的应用场景。 首先,我们来了解一下**普通内部类**。普通内部类是定义在另一个类的定义体内的类,它可以作为外部类...
静态内部类与普通内部类的区别在于,它可以直接通过外部类的类名进行访问,无需外部类的对象。静态内部类不能直接访问外部类的非静态成员,但可以访问外部类的静态成员和方法。例如,在示例1中,`...
3. **静态内部类**:静态内部类与普通内部类的区别在于,静态内部类可以像普通Java类一样拥有静态成员和静态方法,且不依赖于外部类的实例。但是,静态内部类仍然可以访问外部类的静态成员和非静态成员。 4. **匿名...
本篇笔记将详细介绍Java中的四种内部类:普通内部类、静态内部类、方法内部类以及匿名内部类。 ### A. 普通内部类 普通内部类(也称为成员内部类)是定义在外部类的成员位置,如同字段一样。它们可以直接访问外部...
6. **静态内部类**:静态内部类与普通内部类不同,它不持有对外部类的引用,因此可以像普通类一样被实例化,也可以有静态成员。这在不需要访问外部类实例的情况下非常有用,例如作为工具类或辅助类。 7. **关联关系...
1. 普通内部类:这是最常见的形式,内部类的声明与类成员平级。 2. 方法内部类:定义在某个方法内部的类,只在该方法的作用域内可见。 3. 匿名类:没有名称的内部类,通常用于快速实现接口或抽象类的简短实例化。 4....
1. **普通内部类**:最基础的内部类形式。 2. **局部内部类**:在某个方法或构造函数内部定义的内部类。 3. **匿名内部类**:没有名字的内部类,通常用于实现接口或继承父类,并立即创建其实例。 4. **静态内部类**...
1. **普通内部类(成员内部类)**:这是最常见的内部类类型,定义在外部类的成员位置,与方法和变量平级。 2. **方法内部类**:定义在某个方法内部的类,其生命周期仅限于该方法的执行期间。 3. **匿名内部类**:...
这意味着它们可以拥有静态成员,而普通内部类则不可以。 #### 匿名内部类的使用 匿名内部类主要用于即时定义和创建对象,特别是在事件处理、回调函数等场合。它们通常用来实现接口或继承类,同时立即创建一个该类...
4. 静态内部类:静态内部类与普通内部类的主要区别在于,它可以像静态成员一样,不依赖于外部类的实例就能创建对象。但是,由于它是内部类,仍然可以访问外部类的静态成员,但不能访问非静态成员。 在Java中,内部...
静态内部类与普通内部类的区别在于,静态内部类不持有对外部类的引用,因此它可以独立存在,无需外部类的实例就能创建。此外,静态内部类可以通过外部类的类名直接访问,而不需要外部类的实例。 ```java public ...
内部类是Java编程语言中的一种特性,它允许我们在一个类的内部定义另一个类。这种设计模式在Android开发中尤其常见,因为它可以有效地管理代码和实现特定的功能。本文将详细探讨内部类、匿名内部类以及内部接口的...
静态内部类与普通内部类的区别在于它可以有自己的静态成员,并且不需要外部类的实例就能创建。 "JAVA从入门到精通"这个课程可能详细讲解了这些概念,并通过孙鑫老师的主讲,深入浅出地介绍了Java的基础和进阶知识。...
1. **成员内部类**:成员内部类就像是外部类的一个普通成员,可以是静态或非静态的。非静态内部类拥有对外部类的引用,可以直接访问外部类的所有成员,包括私有成员。而静态内部类不持有对外部类的引用,因此只能...
与普通成员内部类不同,静态内部类不持有对外部类的引用,因此不能直接访问外部类的非静态成员。静态内部类需要通过外部类名.静态内部类名的方式来创建对象,这与访问任何其他静态成员的方式相同。这种特性使得静态...