当前位置: 首页 > 编程日记 > 正文

Java中的包,类的导入,静态导入

包的作用

1. 为了更好的组织代码,能够将自己的代码与代码库的代码分离。

2. 在需要合作完成的工作中,可以使用分包的方式来尽量的减少类命名的冲突。

Sun公司推荐程序员使用公司域名的反向字符作为公司项目的起始包名:如 baidu.com  --> com.baidu

引入包的概念,主要是为了解决类名冲突的问题,能够使合作的团队中,在各自的包内自由的命名而不受到其他包的名称的影响。

包的概念主要是为了程序员的一个方便理解和开发,对于编译器而言,包->子包 并不表明任何的关系,他们分别是一组类的集合

标示类所处的包的语法(必须是类文件中除注释以外的第一句):

package com.baidu;

使用javac,java命令必须将当前目录到基目录:

javac com/baidu/HelloWorld.java (编译器并不检查本文件的目录结构是否与对应文件的包声明一致,当该类不引用自身的类,是不会报错)

java com.baidu.HelloWorld           (解释器欲运行某类,必须将完整的包名.类名)

类的导入:

一个类能够使用该包中的所有类以及外包中的所有public类。因为只有内部类才可以被修饰为protected和private.对于一个普通类是不可以被protected和private修饰的。所以根据访问控制修饰符的概念。

使用类有两种方式(以使用java.util.Date为例):

1. 使用import语句将欲使用的类进行导入

  import java.util.Date;

  经过上文的导入语句之后,就可以构造Date的实例了。

View Code
import java.util.Date;public class ImportDemo{private Date currentDate = new Date();  }

当我们需要使用util包下面多个类时,import的语句是支持通配符的,可以直接使用import java.util.*; 表明导入util包下的所有类,但不包含子包中的类

  *通配符只能够表明单个包的所有类,不可以使用类似于 import java.*.*;这种通配来导入Java的所有包的类。

2. 使用该类的全包名+.类名

View Code
public  class NoImportDemo{java.util.Date currentDate = new java.util.Date();        
}

当使用了1方式的import,有可能在引入多个包的过程中,会引入多个同名类。在这种情况下:当我们没有使用冲突的同名类的时候,编译器是不会发出任何抱怨的,而当我们使用了同名的类时,编译由于不知道使用哪个包中的类,会发出抱怨(以java.util.Date和java.sql.Date为例)

View Code
import java.util.*;
import java.sql.*;public Class NameConflictDemo{Date currentDate = new Date(); //Compiler Error.  
}

在上文的代码中,由于编译器无法确定使用util包还是sql包中的Date类。

为了避免引起这样的冲突,我们可以在额外的加入一句我们真正要使用的那个Date的import语句,如我们要使用util的Date,我们加入import java.util.Date;

但是经过这样做了之后,我们在程序中的所有的Date都是util的Date,当我们需要同时使用util的Date和sql的Date时,我们就需要使用2方式(全包名.类名)

Import 和 C++的include并没有什么共同之处:

C++并不打开#include指定的文件,进行类的搜索。然而Java的编译器负责定位我们指定的Import的类(搜索的路径由我们的classpath决定)

Java可以不做import的动作,而使用全包名.类名来引用类,然而C++是必须加入#include对应的头文件的

某些程度上来讲,import和namespace有一定的相似相处。

静态方法+静态变量的导入

在J2SE5之后,对import语句做了一定量的加强,主要是支持导入类的静态方法以及静态变量

语法为:

import static ...;

View Code
import static java.lang.System.*;
import static java.math.Math.*;
public class StaticImportDemo{public static void main(String[] args){out.println(sqrt(4));  }
}

上述代码,静态的导入System的out静态变量,以及Math的sqrt的静态方法。能够带来代码上的简洁行不需要每次都加入类名。

转载于:https://www.cnblogs.com/papertigerv5/archive/2012/09/27/2704933.html

相关文章:

实现800*600,1024*768两套分辨率方案

下面这段代码&#xff0c;可以实现800*600,1024*768两套分辨率方案。 <html><head><title>Untitled Document</title><script language"javascript">function go(){var myWidthscreen.widthif (myWidth>800){window.location.repl…

倒计时 4 天!高通人工智能应用创新大赛颁奖典礼线上隆重举行

经过7 个月的激烈角逐&#xff0c;由高通公司&#xff08;Qualcomm&#xff09;、中国智谷重庆经开区、CSDN、Testin云测、OPPO、极视角、中科创达、创业邦联合主办&#xff0c;重庆经开区高通中国中科创达联合创新中心协办&#xff0c;TensorFlow Lite 作为开源技术合作伙伴的…

IOS分享扩展使用JS脚本

2019独角兽企业重金招聘Python工程师标准>>> 实现一个分享扩展插件&#xff0c;功能是从Safari网页中截取当前网页的图片内容 基本的步骤总结在下面&#xff1a; 1.创建一个JS文件&#xff0c;命名为MyJavascriptFile.js&#xff0c;文件的功能是解析safari网页内容…

电脑人会得哪些病----------关注健康,关爱生命!

作者&#xff1a;未知 随着科技水平的提高&#xff0c;现代办公室综合症&#xff0c;特别是高科技病渐渐成为现代职业病。电脑可以说是本世纪最伟大的发明之一&#xff0c;有了它&#xff0c;人们工作、生活、学习的方式都出现了划时代的改变&#xff0c;随着网络与电脑的普及&…

IOS上传图片的方法

下面是图片上传的方法&#xff1a;-(void)loadImage:(NSString*)aurl{NSData *imageData;NSMutableData *postBody;NSString *stringBoundary, *contentType;NSURL *url [NSURL URLWithString:aurl]; //将字符串转换为NSURL格式NSArray *paths…

企业数字化转型,AI平台能力建设是关键

企业数字化转型迎来一波又一波热潮。 IDC研究数据显示&#xff0c;目前中国已有41.4%的企业成为数字化转型的坚定者&#xff0c;到2023年&#xff0c;全球超过一半的GDP将由数字化转型企业的产品和服务推动。 加速数字化转型、让业务智能化&#xff0c;许多行业均认可这是全面…

CSS中连接属性的排序

在CSS超链接的属性中&#xff0c;有四个连接方式: a:link a:hover a:visited a:acticve 之前在使用的时候一直是按照自认为的顺序中去写的&#xff0c;就是 L H V A的排序方式&#xff0c;然而有些时候却发现并不起作用了&#xff0c;查找了一些资料&#xff0c;也上网查找了一…

Spring源代码解析(十):Spring Acegi框架授权的实现

我们从FilterSecurityInterceptor我们从入手看看怎样进行授权的&#xff1a; Java代码 //这里是拦截器拦截HTTP请求的入口 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException …

可租赁、可定制的虚拟人居然还能这么玩?9月25日来百度大脑人像特效专场一探究竟!...

百度大脑自2016年启动开放以来&#xff0c;已打造成为业内最全面、最领先的AI开放平台&#xff0c;服务规模、调用量都居于业界第一。百度大脑开放日于2019年开办&#xff0c;覆盖北/上/深等地区&#xff0c;成为众多AI开发者、合作伙伴近距离沟通及深度交流&#xff0c;一起分…

提供前进、后退功能及其他JAVASCRIPT速成秘诀

通过了解下面的一些例子&#xff0c;并运用到你的WEB中&#xff0c;不久你马上成为JAVASCIPT的高手。 例&#xff08;一&#xff09;、在页面加入当前时间 < script languageJavaScript > tdynew Date(); document.write(当前时间:,tdy.getHours()); document.write(:,td…

C#零碎知识点笔记(容易混淆的一些点)

1&#xff1a;按CWTAB就可以完成打印命令的快速输入&#xff1b; 2&#xff1a;声明变量的时候 记得在使用的时候给这个变量一个初始化&#xff1b; 3&#xff1a;明白 CPU___内存----硬盘 之间的 相互关系&#xff1b; 4&#xff1a;在增加浮点数的时候要记得为每一个变量后边…

正则表达式--检查颜色值

<input type"text" name"color"><input type"button" value"check" οnclick"checkColor(color)">检查一下颜色值 ,正确是#六位十六进制数比如:#3EEF4A <script language"JavaScript">functio…

AI安全最全“排雷图”来了!腾讯发布业内首个AI安全攻击矩阵

近年来&#xff0c;人工智能迅猛发展&#xff0c;与家居、金融、交通、医疗等各个领域深度融合&#xff0c;让人们的生活更为便利。但与此同时&#xff0c;基于人工智能的系统一旦存在风险也将带来更为严重的后果。如何确保人工智能在不同的应用场景下不会被轻易控制、影响或欺…

Tomcat5.5x+jndi配置

1、配置Tomcat5.5.X的Server.xml&#xff0c;在<host>下面加上&#xff1a; <Context path"/JNDIDemo" docBase"D:\workspace\JNDIDemo\WebRoot" debug"0" reloadable"true" crossContext"true"> <Logger cl…

设备物理像素、设备独立像素

视觉稿 在前端开发之前&#xff0c;视觉MM会给我们一个psd文件&#xff0c;称之为视觉稿。 对于移动端开发而言&#xff0c;为了做到页面高清的效果&#xff0c;视觉稿的规范往往会遵循以下两点&#xff1a; 首先&#xff0c;选取一款手机的屏幕宽高作为基准(以前是iphone4的32…

只要你敢进来,没有学不会xml滴

作者&#xff1a;喜悦国际村 开心果1、前言 本贴绝大部分资源均转自 http://www.xml.org.cn/ 声明先&#xff0c;免得有人说偶盗链 SHOW TIME2、黄金装备 XML Explorer简体中文正式版&#xff08;免费&#xff09;XML.ORG.CN下载 &#xff08;推荐这个&#xff0c;简单易用&a…

李彦宏AI布局又下一城,成立生命科学公司“百图生科”

此前业内传闻的“李彦宏将投资生物计算”一事有了新进展。9月25日消息&#xff0c;一家名为“百图生科”&#xff08;英文简称“BioMap”&#xff09;的生命科学平台公司正式成立。百度创始人、董事长兼CEO李彦宏确定将作为牵头发起人&#xff0c;亲自出任新公司的董事长&#…

1004_C/C++笔试题_13:16道c语言面试【8/9】

8.关键字volatile含义&#xff0c;并给出三个不同的例子。 一个定义为volatile的变量是说这个变量可能会被意想不到的改变。因此&#xff0c;优化器在每次用到这个变量时都要重新读取这个值&#xff0c;而不是使用在寄存器里的备份。 实例&#xff1a; 1.并行设备的硬件寄存器&…

oracel 不为null 保存空字符串

2019独角兽企业重金招聘Python工程师标准>>> // oracle里面不为 null 就不能保存进入 ""&#xff0c;必须加上一个空格才可以的。 hrEffPfmcePlaneePo.setGoal("");//不可以保存的。oracle 比较严谨很mysql 不一样 hrEffPfmcePlaneePo.setGoal(…

助力高校学子快速上手!昇腾AI处理器应用开发实践一览|华为昇腾师资培训沙龙北京场...

如今&#xff0c;AI技术已渗透到各个行业&#xff0c;随着AI技术应用的蓬勃发展&#xff0c;相关专业的人才缺口也日益增大。为了助力高校人工智能领域人才培养及学科建设&#xff0c;华为通过昇腾师资培训沙龙&#xff0c;面向广大高校教师提供昇腾全栈全场景AI技术知识点培训…

巧用CSS的RevealTrans滤镜

作者&#xff1a; 冯永曜 CSS的RevealTrans动态滤镜是一个神奇的滤镜&#xff0c;它能产生23种动态效果&#xff0c;更为奇妙的是它还能在23种动态效果中随机抽用其中的一种。用它来进行网页之间的动态切换&#xff0c;简直方便极了&#xff0c;你只要在网页源代码的< …

FOPEN FUNCTION

打开文件提供给低级文件函数使用. FOPEN(cFileName [, nAttribute]) 参数 cFileName 指定要打开的文件名,cFileName可以包含Microsoft Visual FoxPro在当前搜索路径中未指定的目录,文件夹,驱动器,或卷下要打开文件的路径.如果这个路径没有被包含在内,Visual FoxPro在下列位置索…

手机安全卫士——软件管理-用户程序和系统程序

首先看一下界面&#xff1a; AppManagerActivity .java //软件管理 public class AppManagerActivity extends Activity implements View.OnClickListener{List<AppInfo> appinfos;ListView lv;private List<AppInfo> userAppInfos;private List<AppInfo> sy…

hdu 1879 继续畅通工程

最小生成树入门题&#xff0c;和纯粹的裸题有些区别&#xff0c;题目中有些道路已经存在&#xff0c;不需要建造&#xff0c;答案是求最后建造的总费用&#xff0c;不要把已经有的道路的权值算进去 //kruskal算法已有的边权植赋为0 //用SORT排序&#xff0c;用并查集判断是否成…

AI视觉大牛朱松纯担任北大AI研究院院长,提出通过构建大任务平台走向通用AI...

整理 | AI科技大本营编辑部据北京大学新闻网9月24日报道&#xff0c;AI视觉顶级学者朱松纯正式任职北京大学讲席教授、人工智能研究院院长。朱松纯表示&#xff0c;他与北大、清华的相关学者一直保持着密切的学术交流与合作&#xff0c;近一段时间&#xff0c;他又又深入考察了…

巧用CSS的alpha滤镜

作者&#xff1a;冯永曜 “Alpha”滤镜&#xff0c;听到这个名字&#xff0c;你可能会想到Flash里有&#xff0c;Photoshop里也似乎见过。一点不错&#xff0c;它们的作用基本类似&#xff0c;就是把一个目标元素与背景混合。你可以指定数值来控制混合的程度。这种“与背景混合…

Java实现二维码

Java实现二维码 最近突然想写一些博客&#xff0c;所以就陆陆续续的编写一些自我感觉有用的并且大家也可能用到的一些技术代码。方便互相学习交流。 今天这篇博客&#xff0c;主要是利用Java实现二维码&#xff1a; 在写代码之前先讲一下整体思路&#xff0c;以方便更好更快捷的…

巧用CSS的BlendTrans滤镜

作者&#xff1a;冯永曜 BlendTrans滤镜比起上一篇介绍的Revealtrans滤镜来要简单一些&#xff0c;它只有一个参数&#xff1a;Duration 变换时间&#xff0c;它的功能也比较单一&#xff0c;就是产生一种淡入淡出的效果&#xff0c;不过它的这种效果比起RevealTrans滤镜的淡入…

百度盯上媒体生意?百度CTO王海峰详解智能媒体中台

9月27日&#xff0c;由中央网信办、上海市委网信委、新华通讯社联合主办&#xff0c;新华网、上海市委网信办、上海广播电视台、百度承办的“2020中国网络媒体论坛”在上海隆重举行。在百年未有之大变局的新形势下&#xff0c;作为中国网络媒体界层次最高、最具权威性和影响力的…

[转]Android敏捷开发指南

原文地址&#xff1a;http://www.apkbus.com/android-72730-1-1.html 本文紧密结合移动开发方法与技术&#xff0c;围绕Android平台的开发探讨提供更高质量移动产品的解决方案。作者在文中分析了移动开发中常见的问题&#xff0c;从两方面阐述了ThoughtWorks&#xff08;&#…