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修饰的嵌套类不常用.有的地方没有嵌套类和内部类的区分,直接是嵌套类就称作内部类,没 ...
随机推荐
- java关键字保留字
Here is a list of keywords in the Java programming language. You cannot use any of the following as ...
- NoSQL Manager for MongoDB 30天到期破解
1.删除注册表:HKEY_CURRENT_USER\Software\NoSQL Manager Group2.删除应用数据:C:\ProgramData\NoSQL Manager Group 还是 ...
- Allow Only Ajax Requests For An Action In ASP.NET Core
ASP.NET Core offers attributes such as [HttpGet] and [HttpPost] that allow you to restrict the HTTP ...
- [GoogleBlog]new-approach-to-china
https://googleblog.blogspot.com/2010/01/new-approach-to-china.html
- MySQL基于GTIDs的MySQL Replication
MySQL M-S GTID 基于GTIDs的MySQL Replication 什么是GTIDs以及有什么特定? 1.GTIDs(Global transaction identifiers)全局事 ...
- DataTable行列转置
DataTable dtNew = new DataTable(); dtNew.Columns.Add("ColumnName", typeof(string)); ; i &l ...
- vue项目的常用配置代码
{ // 针对vue的格式化配置----依赖eslint.prettier.vetur等插件 // 强制单引号 "prettier.singleQuote": true, &quo ...
- PhpStorm常用快捷键以及如何连接外部服务器
PhpStorm常用快捷键以及如何连接外部服务器 PhpStorm作为我们phper使用的一款IDE,其功能是非常强大的,现在记录下常用的快捷键以及如何使用它与外部服务器进行连接使用. 一.Keyma ...
- 转载-IDEA项目左边栏只能看到文件看不到项目结构
原文-https://blog.csdn.net/weixin_42362985/article/details/80538064 有时IDEA Maven项目打开左侧Project窗口本应该显示项目 ...
- JavaScript的Document ,Histroy,Location对象
1. Document对象: a) 属性: 名称 描述 alinkColor 设置或检索文档中所有活动链接的颜色 bgColor 设置或检索 Document 对象的背景色 body ...