包
(1)包:packageA:对类文件进行分类管理
B:给类提供多层命名空间,处理类名冲突!
C:放在程序代码的第一行(注释除外)
B的例子:
java.awt.List
java.util.List
java.sql.Date
java.util.Date
(2)包的命名(小写)
所有字母都要小写!
包名也是标识符,与类名、变量名等,都是标识符,应该遵守标识符规范。
(3)访问:先得有包,然后:包.类名
编译自动生成包层次文件夹
javac –d 路径 源文件名称
java c –d . 源文件名称
javac - d . PackageDemo.java
-d 后面跟的是:目录
当前目录:.
运行时使用包的完全限定名(带包名)
运行类时,一定要给出完全限定名(全名)。
java cn.itcast.类名
(4)不同包之间类的访问
类一定要用类的完全限定名:包名.类名
2:protected
包之间的继承关系(子类),或者同包。
3:import
1)使用import引入指定包中所有类(简化类名:import 包.*)
一个程序文件中只有一个package,可以有多个import。
用来导包中的类,不导入包中的包。
2)错误的import引入
import java.*; (java包下没有类只有包,*代表所有类)
import *.*;
3)无需引入的包java.lang
java.lang包下的类是常用类无需使用import来导入,但你非要导入也可以。
4:jar
(1)打包:
打jar包 :jar cf Package.jar cn(jar cf 打包后的名称 要打包的名称)
(2)查看jar包
jar -xvf Package.jar
(3)jar.exe命令的参数
c:创建新的jar文件
f:指定文件名称
v:显示打包过程
m:指定清单文件
t:查看以存在jar文件内容
(4)查看以存在jar文件内容:jar –tf Package..jar
5:权限修饰符
同一个类中 同一个包中不同包中子类中 不同包中,不存在继承关系
private OK
默认 OK Ok
protected OkOk Ok
public OK Ok OK OK
6:关键字用来修饰什么?
类 属性方法 构造方法
private OK OK OK
默认 OK OkOk OK
protected Ok Ok OK
public Ok Ok Ok OK
static Ok Ok
final Ok Ok Ok
abstract Ok Ok
特殊:private和static可以修饰内部类。不用掌握。
static可以代码块。静态代码块。掌握。
A:权限修饰符任意时刻只能使用一种。
B:static,private,final 不能和abstract并用。
例1,导包例子
import java.util.Date;
class PackageTest
{
public static void main(String[] args)
{
Date d = new Date();
}
}
例2,编译自动生成包层次文件夹
javac –d 路径 源文件名称
java c –d . 源文件名称
javac –d . PackageTest.java
运行时使用包的完全限定名(带包名)
运行类时,一定要给出完全限定名(全名)。
java cn.itcast.类名
package cn.itcast;
class PackageTest
{
public static void main(String[] args)
{
System.out.println("Hello!!!");
}
}
例3打包
1,编译自动生成包层次文件夹 javac –d . PackageTest.java
2,打jar包 :jar cf Package.jar cn(jar cf 打包后的名称 要打包的名称)
package cn.itcast;
class PackageTest
{
public static void main(String[] args)
{
System.out.println("Hello!!!");
}
}
例4把jar包引入到classpath中(会用到例3中的包)
先把这个包Package.jar放在F:\java0108\目录下
再配置classpath
然后编译,运行
E:\java0108\day11>set classpath=F:\java0108\Package.jar;.
E:\java0108\day11>javac -d . MainApp.java
E:\java0108\day11>java cn.itcast.MainApp
Hello!!!
package cn.itcast;
import cn.itcast.PackageTest;
class MainApp
{
public static void main(String[] args)
{
PackageTest.main(null);
}
}
例5把jar包引入到classpath中
package cn.itcast;
import cn.itcast.PackageTest;
class PackageTest
{
public static void main(String[] args)
{
System.out.println("Hello!!!");
}
}
例6protected(保护)访问级别 (写两个java文件PackageTest .java ,MainApp.java)
package cn.itcast.a;
public class PackageTest {
protected void fun() {
System.out.println("PackageTest#fun()...");
}
}
package cn.itcast.main;
import cn.itcast.a.PackageTest;
public class MainApp extends PackageTest {
public void app() {
// super.fun();
}
public static void main(String[] args) {
MainApp ma = new MainApp();
ma.fun();
}
}
Java包管理与权限修饰
本文介绍了Java中的包管理概念,包括包的作用、命名规则、访问控制及如何使用import和jar命令。此外还详细解释了权限修饰符的使用范围及其在不同场景下的有效性。

被折叠的 条评论
为什么被折叠?



