Java包的概述和讲解

包(package):其实就是文件夹。

  作用:对类进行分类管理。

  格式:包与子包之间通过 . 连接。

注意事项:

  1.package语句必须是程序的第一条可执行代码;

  2.package语句在一个java文件中只能有一个;

  3.如果没有package,默认表示无包名。

带包的程序编译和运行:

  1.手动式

    a:编写一个带包的java文件;

    b:通过javac命令编译该java文件;

    c:手动创建包名和子包名;

    d:把b步骤创建的class文件放到最底层的包内;

    e:回到和包根目录在同一目录的地方,然后带包运行。

  2.自动式

    a:编写一个带包的java文件;

    b:javac编译的时候,在其后面带上-d . 即可;( . 的前后都要有空格)

    c:回到和包根目录在同一目录的地方,然后带包运行。

不同包下的类相互访问:

  举例:定义一个功能类Demo,一个测试类Test,两个类分别定义在不同包内,如下:

 1 /*
 2 Demo类,求和
 3 */
 4 package com.benon;
 5 
 6 public class Demo{
 7     public int sum(int a,int b){
 8         return a + b;
 9     }
10 }
 1 /*
 2     Test类,测试
 3 */
 4 package cn.itcast;
 5 
 6 class Test{
 7     public static void main(String[] args){
 8         com.benon.Demo d = new com.benon.Demo();
 9         System.out.println(d.sum(10,20));
10     }
11 }

注意事项:

  1.测试类Test需要调用功能类Demo中的方法,如果直接编译Test类,会提示"找不到Demo";
     此时需要带包定义,比如:com.benon.Demo

  2.如果直接编译Test类,会提示“程序包com.benon找不到”;

     此时需要先用javac -d . 编译Demo类,这样才会产生com.benon的包目录。

  3.如果Demo类前面不添加public,会提示“Demo在com.benon中不是公共的”,即无法从外部程序包中对其进行访问;

     故功能类Demo前必须加上public,这样才能被外部类访问。

  故上面的程序正确的编译步骤如下: 

    javac -d . Demo.java

    javac -d . Test.java

    java cn.itcast.Test

猜你喜欢

转载自www.cnblogs.com/benon94/p/12427335.html