- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                第11讲内部类与jar包的封装
继承
多态
抽象类
接口
内部类
包和导包
权限修饰符
内部类概述
把类定义在其他类的内部,这个类就被称为内部类。
举例:在类A中定义了一个类B,类B就是内部类。
内部类的访问特点:
内部类可以直接访问外部类的成员,包括私有。
外部类要访问内部类的成员,必须创建对象。
内部类位置
按照内部类在类中定义的位置不同,可以分为如下两种格式:
成员位置(成员内部类)
局部位置(局部内部类)
成员内部类
外界如何创建内部类对象
外部类名.内部类名 对象名 =new 外部类().new 内部类();
成员内部类
刚才我们讲解过了,成员内部类的使用,但是一般来说,在实际开发中是不会这样使用的。因为一般内部类就是不让外界直接访问的。
举例讲解这个问题:Body和Heart,电脑和CPU。
成员内部的常见修饰符
private 为了保证数据的安全性
static 为了让数据访问更方便
被静态修饰的成员内部类只能访问外部类的静态成员
内部类被静态修饰后的方法
静态方法	
非静态方法
成员内部类面试题
补齐程序(注意:内部类和外部类没有继承关系)
	class Outer {
		public int num = 10;
		class Inner {
			public int num = 20;
			public void show() {
				int num = 30;
				System.out.println(?);
				System.out.println(??);
				System.out.println(???);
			}
		}
	}
在控制分别输出:30,20,10
局部内部类
可以直接访问外部类的成员
可以创建内部类对象,通过对象调用内部类方法,来使用局部内部类功能
局部内部类访问局部变量的注意事项:
必须被final修饰?
为什么呢?
因为局部变量会随着方法的调用完毕而消失,这个时候,局部对象并没有立马从堆内存中消失,还要使用那个变量。为了让数据还能继续被使用,就用fianl修饰. 常量值一直都会存在.
匿名内部类
就是内部类的简化写法。
前提:存在一个类或者接口
这里的类可以是具体类也可以是抽象类。
格式:
new 类名或者接口名() {重写方法};
本质:
是一个继承了类或者实现了接口的子类匿名对象
匿名内部类案例
写案例,并测试
如何调用方法
加入方法有多个,如何调用呢?
方式1:每一种格式调用一个,太麻烦
方式2:用类或者接口接收该子类对象,多态思想
匿名内部类在开发中的使用
首先回顾我们曾经讲过的方法的形式参数是引用类型的情况,重点是接口的情况,我们知道这里需要一个子类对象。而匿名内部类就是一个子类匿名对象,所以,可以使用匿名内部类改进以前的做法。
匿名内部类面试题
按照要求,补齐代码
	interface Inter { void show(); }
	class Outer { //补齐代码 }
	class OuterDemo {
	    public static void main(String[] args) {
		      Outer.method().show();
		  }
	}
要求在控制台输出”HelloWorld”
包的概述
其实就是文件夹
作用:
对类进行分类管理
区分同名类
包
定义包的格式
package 包名;
多级包用.分开即可
注意事项:
package语句必须是程序的第一条可执行的代码
package语句在一个java文件中只能有一个
如果没有package,就是在一个默认包下
包的定义及注意事项
手动式
a:javac编译当前类文件。
b:手动建立包对应的文件夹。
c:把a步骤的class文件放到b步骤的最终文件夹下。
d:通过java命令执行。注意了:需要带包名称的执行
java cn.itcast.HelloWorld
自动式
a:javac编译的时候带上-d即可
javac -d . HelloWorld.java
b:通过java命令执行。和手动式一样
包的类的编译和运行
定义两个类:Demo,Test。
Demo
求和方法(sum)
Test
测试方法(main)
不同包下类之间的访问
不同包下类之间的访问
导包概述
不同包下的类之间的访问,我们发现,每次使用不同包下的类的时候,
都需要加包的全路径。比较麻烦。这个时候,java就提供了导包的功能。
导包格式
import 包名;
注意:
这种方式导入是到类的名称。
虽然可以最后写*,但是不建议。
package,import,class有没有顺序关系(面试题)
导包
public
protected
默认
private
同一类中
√
√
√
√
同一包
                您可能关注的文档
最近下载
- IPC-6012F 2023 EN,刚性印制板性能要求Qualification and Performance Specification for Rigid Printed Boards.pdf VIP
 - AI技术对法律和法务行业的影响与展望 .pdf VIP
 - 14.《光从哪里来》课件 科学冀人版五年级上册.ppt
 - 南雄市“珠玑古巷”文化旅游发展现状及对策分析.docx VIP
 - 小学二年级上册语文“的地得”练习题及答案.doc VIP
 - 大学生职业生涯规划.pdf VIP
 - 习作:我和过一天教学设计及反思 .pdf VIP
 - 2025年中国甲板机械设备行业投资前景及策略咨询研究报告.docx
 - 大学生职业生涯规划—全套PPT课件.pptx
 - 身边常见中草药.pdf VIP
 
原创力文档
                        
                                    

文档评论(0)