首页 / JAVA / java学习笔记27:包与内部类
java学习笔记27:包与内部类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java学习笔记27:包与内部类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3195字,纯文字阅读大概需要5分钟。
内容图文
1、包的作用
字节码.class分类存放
- 1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
- 2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
- 3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。
语法:
package com.xiaoyu.web;
public class A {}
1.其实就是文件夹
2.包名一般按功能划分,com.heima.dd
3.按模块划分com.heima.teacher,这个叫点分路径
**注意:**package是程序中的第一条,一个java文件中只能有一个。
2、带包的java命令行执行
javac -d . com\xiaoyu\web\hello.java //比如在在c盘创建一个文件夹,cd c:\test,在test中创建com\xiaoyu\web\hello.java,然后在c:\test下执行该命令,即对
java com.xiaoyu.web.hello
3、不同包下的类访问
import 包名.包名. ...包名.类名;(建议使用) //一般用具体导入,效率高
import 包名.包名. ... .*;(不建议使用)
package > import > class
package:只能有一个
import:可以有多个
class:可以有多个,以后建议是一个。(因为每一个类是一个独立的单元)
不导入包,使用包中的方法:
包名.包名. ...包名.类名 test = new 包名.包名. ...包名.类名();
4、默认导入的包
java.lang
下的包使用不需要导入
5、内部类
所谓内部类就是在一个类内部进行其他类结构的嵌套操作。
5.1 在外部类外部 创建非静态内部类
语法: 外部类.内部类 内部类对象 = new 外部类().new 内部类();
举例: Outer.Inner in = new Outer().new Inner();
5.2 在外部类外部 创建静态内部类
语法: 外部类.内部类 内部类对象 = new 外部类.内部类();
举例: Outer.Inner in = new Outer.Inner();
5.3 在外部类内部 创建内部类语法
在外部类内部创建内部类,就像普通对象一样直接创建:Inner in = new Inner();
6、内部类分类
Java中内部类主要分为成员内部类、静态内部类、方法内部类、匿名内部类
6.1 成员内部类
类比成员方法
- 成员内部类内部不允许存在任何static变量或方法 正如成员方法中不能有任何静态属性
- 成员内部类是依附外部类的,只有创建了外部类才能创建内部类。
6.2 静态内部类
static修饰的内部类
非静态内部类在编译完成之后会隐含的保存着一个引用,该引用是指向创建它的外围类,但是静态类没有。没有这个引用就意味着:
- 静态内部类的创建不需要依赖外部类可以直接创建。
- 静态内部类不可以使用任何外部类的非static类(包括属性和方法),但可以存在自己的成员变量。
6.3 方法内部类
定义在方法里的内部类
- 方法内部类不允许使用访问权限修饰符(public、private、protected)均不允许。
- 方法内部类对外部完全隐藏,除了创建这个类的方法可以访问它以外,其他地方均不能访问 (换句话说其他方法或者类都不知道有这个类的存在)方法内部类对外部完全隐藏,出了创建这个类的方法可以访问它,其他地方均不能访问。
- 方法内部类如果想要使用方法形参,该形参必须使用final声明(JDK8形参变为隐式final声明)
6.4 匿名内部类
匿名内部类就是一个没有名字的方法内部类,因此特点和方法与方法内部类完全一致,除此之外:
- 匿名内部类必须继承一个抽象类或者实现一个接口。
- 匿名内部类没有类名,因此没有构造方法。
7、内部类与外部类的关系
- 对于非静态的内部类,内部类的创建依赖外部类的实例对象,在没有外部类实例之前是无法创建内部类的。
- 内部类可以直接访问外部类的元素(包括私有域)—外部类在内部类之前创建,创建内部类时会将外部类的对象传入
- 外部类可以通过内部类的引用间接访问内部类元素 – -要想访问内部类属性,必须先创建内部类对象
- 内部类是一个相对独立的个体,与外部类没有关系。
内容总结
以上是互联网集市为您收集整理的java学习笔记27:包与内部类全部内容,希望文章能够帮你解决java学习笔记27:包与内部类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。