JavaSE 进阶 - 第17章 面向对象(包和访问控制权限)
1、关于java语言中的package和import机制
1.1、为什么要使用package?
- package是java中包机制。包机制的作用是为了方便程序的管理。
- 不同功能的类分别存放在不同的包下。(按照功能划分的,不同的软件包具有不同的功能。)
- 包可以看作是一个文件夹。
1.2、package怎么用?
- package是一个关键字,后面加包名。例如:
package com.yuming.javase.chapter17;
注意:package语句只允许出现在java源代码的第一行。
1.3、包名的命名规范
- 一般都采用公司域名倒序的方式(因为公司域名具有全球唯一性。)
- 包名命名规范:
公司域名倒序 + 项目名 + 模块名 + 功能名
例:com.yuming. javase. chapter17
1.4、对于带有package的java程序怎么编译?怎么运行?
采用之前的编译和运行不行了。
类名不再是:HelloWorld了。
类名是:com.yuming.javase.chapter17.HelloWorld
编译:
javac -d . HelloWorld.java
解释一下:
javac 负责编译的命令
-d 带包编译
. 代表编译之后生成的东西放到当前目录下(点代表当前目录)
HelloWorld.java 被编译的java文件名。
运行:
java com.yuming.javase.chapter17.HelloWorld
1.5、关于import的使用
-
import什么时候使用?
A类中使用B类。
A和B类都在同一个包下。不需要import。
A和B类不在同一个包下。需要使用import。java.lang.*; 这个包下的类不需要使用import导入。
-
import怎么用?
import语句只能出现在package语句之下,class声明语句之上。
import 完整类名;
import 包名.*;
import java.util.Scanner; // 完整类名。
// 同学的疑问:这样是不是效率比较低。
// 这个效率不低,因为编译器在编译的时候,会自动把*变成具体的类名。
import java.util.*;
// 想省懒劲你不能太省了。
import java.*; 这是不允许的,因为在java语言中规定,这里的*只代表某些类的名字。
2、访问控制权限
2.1、访问控制权限都有哪些?
- ① private 私有
- ② public 公开
- ③ protected 受保护
- ④ 默认
2.2、以上的4个访问控制权限:控制的范围是什么?
- private 表示私有的,只能在本类中访问
- public 表示公开的,在任何位置都可以访问
- protected表示只能在本类、同包、子类中访问。
- “默认”表示只能在本类,以及同包下访问。
- 范围从大到小排序:public > protected > 默认 > private
2.3、访问控制权限修饰符可以修饰什么?
- 属性(4个都能用)
- 方法(4个都能用)
- 类(public和默认能用,其它不行。)
- 接口(public和默认能用,其它不行。)
…
传送门
上一章:JavaSE 进阶 - 第16章 面向对象(final、抽象类、接口)
下一章:JavaSE 进阶 - 第18章 面向对象(Object和匿名内部类)