java21天

内部类

class A
{
    class B
    {
    }
}

访问规则:

  • 内部类直接访问外部类中的成员,包括私有,
    之所以可以直接访问外部类的成员,是因为内部内持有一个外部类的引用,格式 外部类名.this.变量名
  • 外部类要访问内部类,必须建立内部类对象
    即在外部类中new一个内部类对象

使用方法

  • 当内部类定义在外部类的成员位置上,而且非私有,可以再外部其他类中。
    可以直接建立内部类对象
    格式
    外部类名.内部类名 变量名=外部类对象.内部类对象;
main
{
    A.B x=new A().new B();
    之后就可以直接调用B的成员
}
  • 当内部类在成员位置上,就可以被成员修饰符所修饰。
    比如private:将内部类中外部类中进行封装
    static:内部类就具备static 特性
    当内部类被static修饰后,只能访问外部类中的static成员,出现访问限制
    在外部其他类中,如何直接访问static内部类呢?
    new 外部类.静态内部类().内部类方法;
    外部其他类中,如何直接访问static内部类的静态成员?
    外部类.内部类.方法();
    注意:当内部类中定义了静态成员,该内部类必须是静态的。
    当外部类中的静态方法访问内部类时,内部类也必须是静态的。

内部类定义规则

当描述事物时,事物的内部还有事物,该事物用内部类来描述。
因为内部事物在使用外部事物的内容

class Body
{
    private class xinzang
    {
    }
    public void show()
    {
    new xinzang()
    }

}

局部内部类不能使用静态内部类

class outer
{
    int x=3;
    void method()
    {
    class Inter//这里不允许静态
    {
    void function()
    {
        System.out.print(outer.this.x);//调用外部类的变量
    }
    }
    new Inner().function();//在外部类新建立一个内部类对象并调用其方法
    }
}

内部类定义在局部时
* 不可以被成员修饰符修饰
* 可以直接访问外部类中的成员,因为还持有外部类的引用,但是不可以访问它所在的局部中的变量,能访问被final修饰的局部变量

class outer
{
    int x=3;
    void method(final int a)
    {
    final int y=4
    class Inter//这里不允许静态
    {
    void function()
    {
        System.out.print(outer.this.x);//调用外部类的变量
    }
    }
    new Inner().function();//在外部类新建立一个内部类对象并调用其方法
    }
}

匿名内部类

1、匿名内部类其实就是内部类的简写格式
2、定义匿名内部类的前提
内部类必须是继承一个类或者实现接口
3、匿名内部类的格式:new 父类或者接口(){定义子类的内容}
4、其实匿名内部类就是一个匿名子类对象。而且对象有点胖,可以理解为带内容的对象。
5、匿名内部类中定义的方法最好不要超过三个

abstract class AbsDemo
{
    abstract void show();
}
class outer
{
    class Inner extends AbsDemo
    {
    void show()
    {
        System.out.println("show")
    }
    }
    public void function()
    {
    new Inner().show();
}
}//原写法
//匿名写法
abstract class AbsDemo
{
    abstract void show();
}
class outer
{
    public void function()
    {
    new AbsDemo()
    {
        void show()
        {
            System.out.printIn("show");
        }.show();//匿名对象对方法只能调用
    }
    }
}



show(new Inter()
{
    public void method()
{
    System.out.printIn("method show run");
}
});
public static void show(Inter in)
{
    in.method();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《21学通Java-第7版 入门到精通》是由林信良编著的一本Java编程教材。这本书主要适合初学者学习Java编程语言。 首先,本书介绍了Java编程的基础知识,包括Java环境的安装和配置、Java基本语法、面向对象编程等。读者可以通过丰富的实例和案例,掌握Java编程中的基本概念和技巧。 其次,本书还详细介绍了Java的高级特性,如异常处理、IO操作、多线程编程、网络编程等。这些内容不仅能帮助读者进一步提高Java编程的能力,还能够应用于实际项目开发中。 此外,书中还介绍了Java的GUI编程、数据库编程以及JavaWeb开发等内容。这使得读者可以在学习完基础知识后,进一步深入学习Java编程的各个方向。 这本书的特点是结构清晰,内容丰富,既适合作为Java编程的入门教材,也适合作为进阶学习的参考。书中还提供了大量的练习题和案例,读者可以通过实际动手编写代码来巩固所学知识。 总之,《21学通Java-第7版 入门到精通》是一本很好的Java编程教材,无论是初学者还是有一定编程基础的读者,都可以通过学习这本书快速掌握Java编程技能。 ### 回答2: 《21学通Java-第7版 入门到精通PDF》是一本专门介绍Java编程语言的书籍。Java是一种跨平台的高级编程语言,广泛应用于各种类型的软件开发中。 这本书的第7版涵盖了从入门到精通的内容,适合初学者和有一定基础的读者。书中的内容分为21个章节,每学习一个章节,需要大约三周的时间。通过阅读本书,读者可以系统地掌握Java的语法、基本概念和编程技巧。 本书的特点是结合理论和实践,通过丰富的实例和练习,帮助读者加深对Java的理解。每个章节都有清晰的学习目标和总结,讲解内容简洁明了,易于理解。此外,书中还介绍了Java的常见开发工具和常用的第三方库,帮助读者提高编程效率。 值得一提的是,本书提供了附带学习资源,包括源代码、习题答案和额外的学习资料。读者可以通过这些资源进行实践和进一步学习,巩固所学知识。 总的来说,《21学通Java-第7版 入门到精通PDF》是一本适合初学者入门学习Java的好书。通过认真阅读和实践,读者可以逐步掌握Java编程的基本技能,并逐渐提升到精通的水平。这本书是学习Java编程的良好起点,也是提升编程能力的重要工具。 ### 回答3: 《21学通Java-第7版 入门到精通》是一本针对Java编程语言入门学习的教材。它是以21为单位进行组织的,每学习一个特定的主题,帮助读者逐步掌握Java编程的基础知识和技术。 这本书以简明易懂的方式介绍了Java的基本语法、数据类型、运算符、控制结构、方法等基础知识,并通过实例解析帮助读者理解和掌握。每的学习内容都有相应的练习题,读者可以通过动手实践加深对知识点的理解,并培养编程能力。 《21学通Java-第7版 入门到精通》不仅涵盖了Java的基础知识,还介绍了面向对象编程、异常处理、多线程编程、GUI编程、数据库编程等高级主题。通过学习这本书,读者可以系统地了解Java的核心特性和常用类库,为进一步深入学习和应用Java打下坚实的基础。 此外,这本书还涵盖了一些实际应用和项目实践,帮助读者将学到的知识应用到实际开发中。它介绍了如何使用Eclipse和Java开发工具进行开发,以及如何使用Java编写Web应用程序和Android应用程序。 总之,如果你想从零开始学习Java编程,这本《21学通Java-第7版 入门到精通》是一个很好的选择。它不仅具备全面的内容,而且以简单易懂的方式呈现,适合初学者快速上手。无论是自学还是作为教材,这本书都能帮助你掌握Java编程技能,成为一名优秀的Java开发人员。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值