Java之~~包(package)


关于java语言中的package和import机制:
1、为什么要使用package?
        package是java中包机制。包机制的作用是为了方便程序的管理。
        不同功能的类分别存放在不同的包下。(按照功能划分的,不同的
        软件包具有不同的功能。)
2、package怎么用?
        package是一一个关键字,后面加包名。例如:
        package com . bjpowernode. javase . chapter17;
        注意:package语句只允许出现在java源代码的第一行。
3、包名有没有命名规范?         有
        一般都采用公司域名倒序的方式(因为公司域名具有全球唯一性。)
                包名命名规范:
        公司域名倒序+项目名+模块名+功能名
4、对于带有package的java程序怎么编译?怎么运行?
        采用之前的编译和运行不行了。
        类名不再是: HelloWorld 了。
类名是:   com . bjpowernode . javase . chapter17. HelloWorld
编译:
javac -d . HelloWorld. java

解释一一下:

javac  负责编译的命令
-d   带包编译
        代表编译之后生成的东西放到当前目录下(点代表当前目录)
HelloWorld. java被编译的java文件名。
运行:  java com . bjpowernode . javase . chapter17. HelloWorld

package com.bjpowernode.javase.chapter17;
    public class HelloWorld{
    public static void main(String[] args) {
            System.out. println("Hello World!");

}
}

结果如下:

 Java之~~包(package)_第1张图片

 Java之~~包(package)_第2张图片

 一个类想要用另外一个包中的类,该如何实现呢?(答案是用 import)

package com;
//将需要的类导入
import com.bjpowernode.javase.chapter17.HelloWorld;
public class Test02 {
public static void main(String[] args) {
/*    Test02在com包下。
    HelloWorld在com . bjpowernode . javase . chapter17下。

    不在同一个package下,包名可以省略吗?
     不能省略。

// 未导入包之前,错误:找不到符号
HelloWorld hw = new HelloWorld() ;
System.out.println (hw) ;
*/
/*
com .bjpowernode.javase.chapter17.HelloWorld hw = new com . bjpowernode . javase . chapter17
Sys tem . out. println (hw) ;
com . bjpowe rnode . javase . chapter17 . HelloWorld hw2 = new com . bjpowe rnode . javase . chapter17
System. out. println (hw2) ;
com . bjpowernode . javase . chapter17. HelloWorld hw3 = new com. bjpowernode. javase .chapter17
Sys tem . out. println (hw3) ; .
*/
HelloWorld hw1 = new HelloWorld();
System.out.println (hw1);
  }

结果如下:

Java之~~包(package)_第3张图片

 5、关于import的使用。
        import什么时候使用?
                A类中使用B类。

                A和B类都在同一个包下。不需要import.
                A和B类不在同一个包下。需要使用import.
        import怎么用?
                import语句只能出现在package语句之下,class声明语句之上。
                import语句还可以采用*(通配符)的方式。

1.2、以正的4个访问控制权限:控制的范围是什么?
        private表示私有的,只能在本类中访问
        public表示公开的,在任何位置都可以访问
        "默认"表示只能在本类,以及同包下访问。
        protected表示只能在本类、同包、子类中访问。

访问控制修饰符 本类 同包 子类 任意位置
public 可以 可以 可以 可以
protected 可以 可以 可以 不行
默认 可以 可以 不行 不行
private 可以 不行 不行 不行


          这个不要死记硬背,自己下去之后编写代码自己测试。
           范围从大到小排序: public > protected[>默认> private

你可能感兴趣的:(java,java)