后端开发 \ Java \ 包(package/import/protected)

包(package/import/protected)

总点击11
简介:什么是包? 因为在同一文件夹中,不能出现同名文件,包的出现是避免同名文件问题,就是定义不同的包,在不同的包可存在相同的文件夹。包的本质是文件夹。包的存在是为了更好的管理文件。

什么是包?


因为在同一文件夹中,不能出现同名文件,包的出现是避免同名文件问题,就是定义不同的包,在不同的包可存在相同的文件夹。包的本质是文件夹。包的存在是为了更好的管理文件。


简单定义一个包:

package www.code;

public class Pack

{

public static void main(String[] args)

{

System.out.println("hello day");

}

}

打包编译命令 :javac -d . Pack.java,在编译后,会在当前目录下生成一个文件夹www,在www下会有一个文件夹code,code文件夹下有Pack.class二进制文件。


-d 表示生成目录,根据package定义生成;


. 表示在当前所在目录生成子目录。


在执行时:java www.code.Pack(需要加上包即告诉编译器在哪儿找文件)


包的导入(import):

//定义一个包

package www.code.me;

public class Message

{

public void func()

{

System.out.println("Message 类");

}

}

在主类中导入上面的包:

//包的定义:

package www.code;

import www.code.me.Message; //包的导入

public class Pack

{

public static void main(String[] args)

{

Message message =new Message();

message.func(); //Message类

}

}

多个包的自动匹配编译顺序:在当前目录下按照主类的使用情况自动编译。


对于有多个包编译:javac -d . ./*.java


执行:java www.code.Pack

系统常用包:

java.lang : 系统常用基础类(String类、Object类、包装类),JDK1.1之后自动导入

java.util : Java 提供的工具程序包(集合类,ArrayList ,HashMap),需要手动导入

juc : java.util,concurrent :并发程序包

访问控制权限:


private < default < protected < public


default是默认权限即什么都不写,包访问权限:仅供在同一包下类访问


protected : 继承访问权限,有继承关系的类可以访问。


包(package/import/protected)


关于protected:

//protected 属性在同一包的子类可以访问

class A

{

protected static int age=10;

}

public class Test extends A

{

public static void main(String[] args)

{

System.out.println(age); //子类访问父类的protected权限 ,另外静态方法访问属性时,属性必须是static

}

}

不同包的继承类中访问protected属性:

package www.code.me;

public class Message

{

protected int age=10;

public void func()

{

System.out.println("Message 类");

}

}

定义另外一个包进行继承Message类:

package www.code;

import www.code.me.Message; //包的导入

public class Pack extends Message

{

public static void main(String[] args)

{

Message message =new Message();

message.func(); //Message类

System.out.println(new Pack().age); //10 在不同包的子类中访问protected权限

}

}

意见反馈 常见问题 官方微信 返回顶部