内部类、异常

内部类的概述

将类定义在另一个类的内部则成为内部类。其实就是类定义的位置发生了变化。

在一个类中,定义在类中的叫成员变量,定义在函数中的叫成员函数,那么根据类定义的位置也可以分为成员内部类局部内部类

备注:内部类生产的class文件为 “外部类$内部类”,为了标明该内部类是属于具体哪个外部类的。

成员内部类的访问方式

  1. 内部类可以直接访问外部类的成员属性。(孙悟空相当于内部类飞到牛魔王的肚子里面去)。
  2. 外部类需要访问内部类的成员属性时需要创建内部类的对象。
    1. 在外部类的成员函数中创建内部类的对象,通过内部类对象对象直接访问内部类的成员。
    2. 在其他类中直接创建内部类的对象。

            Outer.Inner inner = new Outer().new Inner();

外部类访问内部类的属性

编译异常分析:外部类需要访问内部类的属性时,需要创建内部类的对象访问。

有A类和B类,当A类想要直接访问B类中的成员,而B类又需要建立A类的对象来A类中的成员。这时,就将A类定义成B类的内部类。比喻:孙悟空和铁扇公主。孙悟空到了公主肚子中,就成了内部类(其实是持有外部类的对象引用)。

 

疑问: 什么时候使用内部类呢?

当我们分析事物时,发现事物的内部还有具体的事物,这时则应该定义内部类了。

比如人体是一个类,人体有心脏,心脏的功能在直接访问人体的其他内容。这时就将心脏定义在人体类中,作为内部类存在。

内部类的优势:成员内部类作为外部类的成员,那么可以访问外部类的任意成员。

成员内部类访问细节

私有的成员内部类不能在其他类中直接创建内部类对象来访问。

如果内部类中包含有静态成员,那么java规定内部类必须声明为静态的访问静态内部类的形式:Outer.Inner in = new Outer.Inner();

时间: 2024-10-10 03:55:52

内部类、异常的相关文章

黑马程序员——java学习5(107-126)——内部类,异常,包

1.内部类 1.1何时: 事物的内部还有事物,就用内部类(人体和心脏举例) 方法: (1)内部类可以直接访问外部类中的成员,包括私有. 之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式:外部类名.this (2)外部类要访问内部类,必须建立内部类对象 格式: (1)当内部类定义在外部类的成员位置上,且非私有,可以在外部其他类中,可以直接创建内部类对象 Outer.Inner out=new Outer().new Inner(); (2)当内部类在成员位置上时,就可以

20165329 第五周学习总结

20165329 第五周学习总结 教材学习内容总结 第七章异常类与内部类 异常类 异常对象可以调用如下方法得到或输出有关异常信息 public String getMessage(); public void printStackTrace(); public String toString(); try-catch语句 如果在try-catch语句中执行了return语句,那么finally子语句仍然会被执行 try-catch语句中执行了程序退出代码,即执行System.exit(0);则不

黑马程序员——Java基础---多态、内部类、异常、包

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.多态 多态(Polymorphism)按字面的意思就是“多种状态”.在面向对象语言中,接口的多种不同的实现方式即为多态.引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作.简单的说,就是一句话:允许将子类类型的对象赋值给父类类型的引用. 猫这个对象对应的类

黑马程序员——多态、内部类、异常、包

第一讲     多态 多态可以理解为事物存在的多种体现形态. 例:动物中猫,狗.猫这个对象对应的类型是猫类型,如:猫 x = new猫(); 同时猫也是动物中的一种,也可以把猫称为动物.动物  y = new猫(); 那么动物就是猫和狗具体事物中抽取出来的父类型.父类型引用指向了子类对象. 一.多态的体现        1.父类的引用指向了自己子类的对象. 2.父类的引用也可以接收自己的子类对象. 如:   Animal a = new Cat(); 其中就将父类型的 a 引用指向了子类的对象.

面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】

  本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ 本文版权归作者和博客园共有,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接 ,否则保留追究法律责任的权利. 面向对象概念 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程 •强调的是功能行为 面向对象 •将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向过程   在一个结构体中定义窗口的大小

继承、final、多态、内部类、异常

继承(上): 1. 提高了代码的重用性 2. 让类与类之间产生关系,有了这个关系,才有多态性 注意:千万不要为了获取其他功能,简化代码而继承: 必须是类与类之间有所属关系才可以继承,所属关系 is a. 在java语言中只能是单继承,不支持多继承. 因为:多继承容易带来安全隐患,当多个父类有相同的功能, 当功能内容不同时,子对象不确定运行哪一个. 但是java保留这种机制,用另一种形式表示:多实现. 并且存在多层继承,也就是一个继承体系. 如何使用一个继承体系中的功能? 要想使用体系,先查阅体系

黑马程序员——Java基础——面向对象——继承、抽象类、接口、多态、包、内部类、异常等

第一讲 继承 1.继承: 当多个类拥有相同的功能时,那么这些类不需要每个都写这些相同的功能,只需要把相同功能抽到 一个单独的类中,继承这个类就能获得这些相同的功能: (1)继承的体系结构:就是对要描述的事物进行不断的向上抽取,就出现了体系结构. 要了解这个体系结构中最共性的内容,就看最顶层的类. 要使用这个体系的功能,就用最底层的类创建对象 (2)好处: A.提高代码复用性: B.继承的出现,让类与类之间产生关系,为多态的前提 (3)特点: A.只能单继承(准确的说是java对多继承进行优化,避

day08面向对象-内部类、异常

1 内部类 1.1 内部类的概述 将类定义在另一个类的内部则成为内部类.其实就是类定义的位置发生了变化. 在一个类中,定义在类中的叫成员变量,定义在函数中的叫成员函数,那么根据类定义的位置也可以分为成员内部类和局部内部类. 备注:内部类生产的class文件为 "外部类$内部类",为了标明该内部类是属于具体哪个外部类的. 1.2 成员内部类的访问方式 内部类可以直接访问外部类的成员属性.(孙悟空相当于内部类飞到牛魔王的肚子里面去). 外部类需要访问内部类的成员属性时需要创建内部类的对象.

Java基础---多态、内部类、异常、包

第一讲     多态 多态可以理解为事物存在的多种体现形态. 例:动物中猫,狗.猫这个对象对应的类型是猫类型,如:猫 x = new猫(); 同时猫也是动物中的一种,也可以把猫称为动物.动物  y = new猫(); 那么动物就是猫和狗具体事物中抽取出来的父类型.父类型引用指向了子类对象. 一.多态的体现        1.父类的引用指向了自己子类的对象. 2.父类的引用也可以接收自己的子类对象. 如:   Animal a = new Cat(); 其中就将父类型的 a 引用指向了子类的对象.