猿教程 Logo

java 包

一个java包是一组类似类型的类,接口和子包。

java中的包可以分为两种形式,内置包和用户定义包。

有很多内置的包,如java,lang,awt,javax,swing,net,io,util,sql等。

在这里,我们将详细学习创建和使用用户定义的包。


Java包的优点

1)Java包用于对类和接口进行分类,以便轻松维护它们。

2)Java包提供访问保护。

3)Java包消除命名冲突。



java包的简单示例

package关键字用于在java中创建一个包。

相关实例:

//save as Simple.java
package mypack;
public class Simple{
 public static void main(String args[]){
    System.out.println("Welcome to package");
   }
}

如何编译java包

如果您没有使用任何IDE,则需要遵循以下语法:

javac -d directory javafilename

例如

javac -d . Simple.java

-d开关指定放置生成的类文件的目标位置。 您可以使用任何目录名称,如/ home(在Linux的情况下),d:/ abc(在Windows的情况下)等。如果你想保持包在同一目录,你可以使用.(点)。


如何运行java包程序

您需要使用完全限定名称。 mypack.Simple等运行类。

要编译:javac -d. Simple.java

要运行:java mypack.Simple

Output:Welcome to package
Output:Welcome to package

-d是一个开关,它告诉编译器放置类文件的位置,即它代表目的地。 . 表示当前文件夹。


如何从另一个包中访问包?

有三种方法从包外部访问包。

  1. 导入包。

  2. 导入类;

  3. 使用完全限定名。

1)导入包

如果你使用package。*,那么这个包的所有类和接口都是可访问的,而不是子包。

import关键字用于使当前包可访问另一个包的类和接口。


导入包的示例。

相关实例:

//save by A.java
package pack;
public class A{
  public void msg(){System.out.println("Hello");}
}

相关实例:

//save by B.java
package mypack;
import pack.*;

class B{
  public static void main(String args[]){
   A obj = new A();
   obj.msg();
  }
}
Output:Hello

2)使用packagename.classname

如果你导入package.classname,那么只有这个包的声明类是可访问的。


通过导入package.classname的示例

相关实例:

//save by A.java

package pack;
public class A{
  public void msg(){System.out.println("Hello");}
}

相关实例:

//save by B.java
package mypack;
import pack.A;

class B{
  public static void main(String args[]){
   A obj = new A();
   obj.msg();
  }
}
Output:Hello

3)使用完全限定名

如果使用完全限定名,那么只有这个包的声明类将可访问。 现在没有必要导入。 但是你需要在每次访问类或接口时使用完全限定名。

它通常用于两个包具有相同类名的情况。 java.util和java.sql包包含Date类。


使用完全限定名称的示例


//save by A.java
package pack;
public class A{
  public void msg(){System.out.println("Hello");}
}


//save by B.java
package mypack;
class B{
  public static void main(String args[]){
   pack.A obj = new pack.A();//using fully qualified name
   obj.msg();
  }
}
Output:Hello

注意:如果导入包,则不会导入子包。

如果导入包,则将导入该包的所有类和接口,但不包括子包的类和接口。 因此,您还需要导入子包。

注意:程序的顺序必须是包,然后导入然后类。



在java中的子包

包内的包称为子包。 应该创建它以进一步分类包。

让我们举一个例子,Sun Microsystem定义了一个名为java的包,包含了许多类,如System,String,Reader,Writer,Socket等。 Reader和Writer类用于输入/输出操作,Socket和ServerSocket类用于网络等,等等。 所以,Sun已经将java包子类化为子包,如lang,net,io等,并将Input / Output相关类放在io包中,将Server和ServerSocket类放在网包中等等。

定义包的标准是domain.company.package例如 com.javatpoint.bean或org.sssit.dao。

子包装示例

相关实例:

package com.javatpoint.core;
class Simple{
  public static void main(String args[]){
   System.out.println("Hello subpackage");
  }
}

要编译:javac -d。 Simple.java

要运行:java com.javatpoint.core.Simple

Output:Hello subpackage

如何将类文件发送到另一个目录或驱动器?

有一个场景,我想把A.java源文件的类文件放在c:drive的classes文件夹中。 例如:


相关实例:

//save as Simple.java
package mypack;
public class Simple{
 public static void main(String args[]){
    System.out.println("Welcome to package");
   }
}

编译:

e:\ sources> javac -d c:\ classes Simple.java

运行:

要从e:\ source目录运行此程序,您需要设置类文件所在目录的类路径。

e:\ sources> set classpath = c:\ classes;。;

e:\ sources> java mypack.Simple

另一种方式运行这个程序通过-classpath切换java:

-classpath开关可以与javac和java工具一起使用。

要从e:\ source目录运行此程序,可以使用java的-classpath开关,告诉在哪里查找类文件。 例如:

e:\ sources> java -classpath c:\ classes mypack.Simple

Output:Welcome to package

加载类文件或jar文件的方式

有两种方法来临时和永久加载类文件。

  • 临时通过在命令提示符中通过-classpath开关设置类路径

  • 通过在命令提示符中设置类路径

  • 按类路径切换

  • Permanent通过在环境变量中设置类路径通过创建jar文件,包含所有类文件,并将jar文件复制到jre / lib / ext文件夹中。

  • 通过在环境变量中设置类路径

  • 通过创建jar文件,其中包含所有类文件,并将jar文件复制到jre / lib / ext文件夹中。

规则:在java源文件中只能有一个公共类,它必须由公共类名保存。

相关实例:

//save as C.java otherwise Compilte Time Error

class A{}
class B{}
public class C{}

如何将两个公共类放在包中?

如果你想把两个公共类放在一个包中,有两个java源文件包含一个公共类,但保持包名称相同。 例如:

相关实例:

//save as A.java

package javatpoint;
public class A{}

相关实例:

//save as B.java

package javatpoint;
public class B{}


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Java/java-package.html