Day06(类包、内部类)
在static静态方法中能直接调用的方法只能是静态方法。要想调用其它非静态方法,需要借助对象。
类包:是Java提供的一种管理类文件的机制。可以解决类名冲突问题,在开发庞大应用程序时帮助开发人员管理庞大的应用程序组件,方便软件复用。
同一个包中类相互访问时,可以不指定包名。
同一个包中的类不必存放在同一个位置,只要将CLASSPATH分别指向这两个位置即可。
在文件中指定包名时需要将package关键字放置在程序的第一行非注释代码。
导入包: import package's name *; 加上 * 表示可以在程序中使用导入包中的所有类
导入静态成员: import static 静态成员;
内部类:
1.成员内部类:
在一个类中使用内部类,可以在内部类中直接使用外部类的成员方法和成员变量,(尽管被修饰为private)。
内部类的实例要绑定在外部类的实例上,如果从外部类中初始化一个内部类对象,那么内部类对象就会绑定在外部类对象上。
内部类可以访问它的外部类成员,但内部类成员只有在内布类的范围内是可知的,不能被外部类使用。
如果在外部类和非静态方法之外实例化内部类对象,需要使用外部类。内部类的形式指定该对象的类型。
2.局部内部类:
内部类可以在类的局部位置定义(如类的方法或任意的作用域中均可以定义内部类)
3.静态内部类:在内部类前面添加修饰符static。
一个静态内部类中可以声明static成员,但是在非静态内部类中不可以声明静态成员。
普通的内部类对象隐式地在外部保存了一个引用,指向创建它的外部类对象,但吐过内部类被定义为static,就会有更多限制。
静态内部类的特点:
如果创建静态内部类的对象,不需要其外部类的对象。
不能从静态内部类的对象中访问非静态外部类的对象。
与非静态内部类不同,静态内部类的实例化不需要一个外部类的实例为基础,可以直接实例化,因为没有一个外部类的实例,所以在静态内部类里面不可以访问外部类的实例属性和方法,除了可以访问外部类的私有静态成员外,静态内部类和普通类没什么区别。
4.匿名内部类:
指在声明一个类的同时实例化它,使代码更加简洁精炼。
通常,要使用一个接口或者抽象类,都必须创建一个子类,有时为了快速使用,直接实例化一个抽象类,并“当场”实现其抽象方法。
内部类定义结束后,需要加分号标识,这个分号并不是代表定义内部类结束的标识,而是代表创建引用表达式的标识。
匿名内部类编译后,会产生以“外部类名$序号”为名称的.class文件,序号以1~n排列,分别代表1~n个匿名内部类。
Day06(类包、内部类)的更多相关文章
- spring 笔记1: mvn 中Controller方法的参数不能是嵌套类(内部类)。
最近做spring开发,个人认为,Controller和客户端js通讯时传递的参数类 只使用某几个方法,为了减少对其他功能的影响,想把参数类定义为Controller类的 嵌套类(内部类).但是实践发 ...
- JAVA 嵌套类和内部类
一.什么是嵌套类及内部类? 可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型: 静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类, ...
- 分析java 嵌套类与内部类
一.什么是嵌套类及内部类? 可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类 ...
- Maven类包冲突终极解决方案
本文转自:http://ian.wang/106.htm 举例A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过 ...
- tomcat中设置多项目共享jar;类包
随着服务器上的tomcat部署的项目越来越多,最近在部署一个新的项目的时候出现内存溢出的错误 Exception in thread "main" java.lang.OutOfM ...
- eclipse引入jar类包的源代码
为了方便查看源代码,有时候需要对jar类包,引入源代码. 下载源代码 源代码是zip或者rar的压缩包 引入到项目中
- 深入理解java嵌套类和内部类
一.什么是嵌套类及内部类 能够在一个类的内部定义还有一个类.这样的类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类.静态嵌套类使用非常少,最重要的是非静态嵌套类,也 ...
- Java中的嵌套类和内部类
以前看<Java编程思想>的时候,看到过嵌套类跟内部类的区别,不过后来就把它们的概念给忘了吧.昨天在看<数据结构与算法分析(Java语言版)>的时候,又遇到了这个概念,当时就很 ...
- (十二)java嵌套类和内部类
嵌套类和内部类:在一个类里边定义的类叫做嵌套类,其中没有static修饰的嵌套类是我们通常说的内部类,而被static修饰的嵌套类不常用.有的地方没有嵌套类和内部类的区分,直接是嵌套类就称作内部类,没 ...
随机推荐
- C语言博客作业06--结构体&文件
1.本章学习总结 1.1思维导图 1.2.本章学习体会 这是这学期最后一次博客园作业,文件和结构体感觉比指针还难,一直搞不是很懂,大作业没有方向感,现在还在搞,大作业没有成品,只能先去借鉴舍友的优秀代 ...
- odoo Model字段的参数
odoo Model字段的参数 class Field(object): """ The field descriptor contains the field defi ...
- docker基本使用
1.启动执行一次的容器 2.启动交互式容器 -i:告诉docker守护进程始终打开交互输入 -t:给容器分配一个伪tty终端 3.查看容器 docker ps:查看正在运行的容器 docker ps ...
- (3)润写一个程序(类),用户输入一段英文,然后输出这段英文中所有长度为3个字母的单词井且如果单词如果有连续 复了2次,只输出一个【例: This isis a desk,程序输出 his is a desk】,(提示,有re正则匹配来做)
import re x = input('Please input a string:') pattern = re.compile(r'\b[a-zA-Z]{3}\b') print(pattern ...
- Dell台式机Window10恢复重装window7步骤
1.开机页面出现Dell标识时,连续点击F2 2.进入bois页面,选择boot ,将光标移动到USB启动盘符位置, 3.按 - 号,将 USB Srorage Device 改为第一启动项,F10保 ...
- vue 中监测滚动条加载数据(懒加载数据)
vue 中监测滚动条加载数据(懒加载数据) 1:钩子函数监听滚动事件: mounted () { this.$nextTick(function () { window.addEventListene ...
- System系统类
System系统类 : 主要的作用是用于获取系统的一个参数. System类需要掌握的方法: arraycopy(Object src, int srcPos, Object dest, int de ...
- Turtle库的学习积累
1.什么是turtle库 Python的Turtle库是一个直观有趣的图形绘制函数库,Turtle英文翻译过来是乌龟的意思,在绘图时可以想象成一只乌龟在移动. 2.绘图坐标体系 海龟的移动方向 3.绘 ...
- Python——将高德坐标(GCJ02)转换为GPS(WGS84)坐标
# 官方API: http://lbs.amap.com/api/webservice/guide/api/convert # 坐标体系说明:http://lbs.amap.com/faq/top/c ...
- Linux学习之管道符、重定向、通配符、转义符、环境变量
Linux学习之管道符.重定向.通配符.转义符.环境变量 1. 输入输出重定向 输入重定向是指把文件导入命令中. 输出重定向是指把原本要输出到屏幕的数据信息写入指定文件中. a 标准输入重定向(STD ...