zoukankan      html  css  js  c++  java
  • 1.7(java学习笔记)package和import

    package

    package主要用于管理类,在java中同一个包下不能有相同的类名,可有时项目总会出现很多同名的类,这时就需要通过包来管理类。不同的包下可以有相同的类名。

    包就有点类似于文件夹,不同文件夹中可以有相同的文件名,一个文件夹下不能有同名的文件。

    包的命名规则一般是域名倒着写,后面再加具体项目名称。

    例如京东的就是 cn.jd.123

    例如下面位于包cn.hcf.pro3下的TestExtends.java文件和位于包cn.hcf.TestThis包下的TestPackage.java文件中都有Person类,但他们处于不同的包中是可以的。

    但当它们位于同一个包下时是不可以的。

    2.import

    import可以导入其他包的类,但这个类必须是以public修饰的(这个知识点还需要学习后面的访问控制才知道为什么)。

    例如下面我在cn.hcf.oo包下的TestEqu中要用TestPackage包下的TestPackage类,就需要用import导入。

    如果不导入,在一个包中使用其它包的类,则会出行错误。

     1 package cn.hcf.oo;
     2 
     3 
     4 import TestPackage.*; //包后面加*就代表导入TestPackage包中的所有类,也可以单独导入包中的一个类,
     5                       //import TestPackage.TestPackage 就代表导入TestPackage包中TestPackage类。
     6 public class TestEqu {
     7     public static void main(String[] args){
     8         TestPackage n = new TestPackage();
     9         
    10     }
    11 }

    导入还有静态属性的导入,比如在java.lang包下的Math类中有PI(圆周率)这个静态属性。我们使用要这样写,Math.PI,代表使用PI。

    我们可以用静态属性的导入, import static java.lang.math.PI;就导入了PI这个静态属性,导入后可以直接写PI,因为该属性已被导入。

    还有一个问题,导入时例如我们要使用Date类,在cn.test.1这个包和cn.test.2这两个包中都有Date类,我们导入时这样写

    import cn.test.1.Date;

    import cn.test.2.*;

    那么我们用new = Date()新建一个对象时,优先选择具体导入的类,就是说此时的Date是cn.test.1包中Date;

    如果我们既要使用cn.test.1中的Date,也要使用cn.test.2中的cn.test.2中的Date时

    即使使用 import导入也会出现错误,因为创建Date时无法识别到底是哪一个包中的Date

    这时我们需要写出Date具体的路径。

    例如我们两个都要使用时:

    cn.test.1.Date D1 = new cn.test.1.Date();

    cn.test.2.Date D2 = new  cn.test.2.Date();

  • 相关阅读:
    ERP类系统设计学习
    人工智能关键词
    系统性能
    连接不同服务器不同数据库
    socket一个例子
    SQLite
    asp.net 页面缓存、数据缓存
    原生js
    Android 网络调试 adb tcpip 开启方法
    C语言中string char int类型转换
  • 原文地址:https://www.cnblogs.com/huang-changfan/p/9319338.html
Copyright © 2011-2022 走看看