




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Java面向对象之内部类详解目录前言内部类概述内部类的分类成员内部类局部内部类
前言
在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类。本篇博客将总结内部类的使用。
内部类概述
当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使用内部类。
在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类。
内部类一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称。
内部类的名字不能与包含它的外部类类名相同;
内部类的分类
内部类分为:
成员内部类(static成员内部类和非static成员内部类)
局部内部类(方法内,代码块内,构造器内)
成员内部类
一方面,作为外部类的成员:
调用外部类的结构。可以被static修饰(注意里面只能调用静态方法,静态属性)。可以被4种不同的权限修饰。
另一方面,作为一个类:
类内可以定义属性、方法、构造器等。可以被final修饰,表示此类不能被继承。可以被abstract修饰。
classPeople{
Stringrace;
Stringcountries;
//静态成员内部类
staticclassMan{
Stringname;
publicMan(){
publicvoiddisplay(){
System.out.println("3090yyds");
//非静态成员内部类
classWomen{
Stringname;
publicWomen(){
publicvoiddisplay(){
System.out.println("化妆");
如何实例化成员内部类的对象
package内部类;
publicclassDemo{
publicstaticvoidmain(String[]args){
//创建Man对象(静态的成员内部类)
People.Manm=newPeople.Man();
m.display();
//创建Women对象(非静态的成员内部类)
Peoplep=newPeople();
People.Womenw=p.newWomen();
w.display();
}
如何在成员内部类成员中区分调用外部类的对象
package内部类;
publicclassDemo{
publicstaticvoidmain(String[]args){
//创建Women对象(非静态的成员内部类)
Peoplep=newPeople();
People.Womenw=p.newWomen();
w.display("a");
classPeople{
Stringname="niu";
Stringcountries;
publicvoideat(){
System.out.println("吃饭");
//非静态成员内部类
classWomen{
Stringname="aniu";
publicWomen(){
publicvoideat(){
System.out.println("吃蔬菜");
publicvoiddisplay(Stringname){
System.out.println("化妆");
System.out.println(name);//方法的形参
System.out.println();//内部类的属性
System.out.println(P);//外部类的属性
this.eat();//内部类的方法
People.this.eat();//外部类的方法
局部内部类
局部内部类可以在方法内,代码块内,构造器内
classAnimal{
//局部内部类
//构造器内
Animal(){
classDog{
//代码块内
classCat{
//方法内
publicvoidmethod(){
classBird{
}
开发中局部内部类的使用
我们在开发中局部内部类使用较多,比如,我们需要一个方法返回实现了某个接口的类的对象,此时方法内自然就需要一个内部类实现接口!
例:
//返回一个实现了Comparable接口的类的对象
publicComparablegetComparable(){
//创建一个实现了Comparable接口的类---局部内部类
classMyComparableimplementsComparable{
@Override
publicintcompareTo(Objecto){
return0;
returnnewMyComparable();//非匿名内部类的匿名对象
或者是这样
//返回一个实现了Comparable接口的类的对象
publicComparablege
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创新驱动探索新型的医疗-社区-保险合作模式
- 是个再学习的过程工作总结模版
- 区块链技术助力供应链金融的智能化升级
- 2025年小学数学听课评课个人学习总结模版
- 区块链和大数据在办公自动化中的融合应用
- 医疗器械生产中的物料管理与质量控制
- 区块链技术助力实现肿瘤患者信息共享的透明化
- 上海模特经纪合同范例
- 医疗信息化与医院品牌形象的建设关系
- 2024年文教体育用品项目资金筹措计划书代可行性研究报告
- 环泊酚注射液-临床用药解读
- 社交礼仪与合作精神的主题班会
- 智慧社区平台运营方案
- 民间非营利组织会计培训
- 不良资产项目律师法律尽调报告(模板)
- 产品借用申请表
- 医院院内紧急意外事件应急预案(整理)
- 人教部编版六年级下册语文【选择题】专项复习训练真题100题(附答案解析)
- 外国画家作品介绍赏析
- 岩土工程勘察报告
- 分布式光伏发电项目投标技术方案(纯方案)
评论
0/150
提交评论