对程序进行package封装
一、package包
格式:package 代码必须写在源代码文件的第一句, 约定俗成使用公司域名的倒写,之后再加其他。
for example: package cn.chuanzhiboke.test1;
注意: 如果你的一个Java文件放在了包中,其编译的.class文件就必须放在正确的路径下面(就是其包名对应的目录路径),而且如果在其他类中要调用这个类
就要在类名前加上其包名。
二、import语句
格式: 在源文件中放在 package 语句的下面, 格式实例:
import cn.chuanzhiboke.test1.**class 表示引入包内的 **class文件。
import cn.chuanzhiboke.test1.* 表示引入包内的所有的class文件。
作用:在一个文件中引入了某个包过后,其它包中的程序再要调用这个包中的类文件时,不用在类名前加上包名。
示例:
文件1: package cn.chuanzhibike.test1;
public class Cat
{
}
文件2: //import cn.chuanzhiboke.test1.Cat.class ;
public class Dog
{
public static void main(String []args)
{
cn.chuanzhiboke.test1.Cat c = new cn.chuanzhiboke.test1.Cat();
// Cat c = new Cat();
}
}
其中, 文件1中的.class文件必须放在cn/chuanzhiboke/test1目录下,
而且其要被调用的类文件必须是 public权限的(其中要被调用的方法也必须是public的)。
而cn的父目录要在classpath环境变量下, 如果想要直接运行Cat.class文件, 在dos命令行中输入包名加类名。
D:\java>java cn/chuanzhiboke/test1/Cat
总结: 如果将一个类放在包中,第一句必须写package,编译文件放于正确的路径下:与包名一直的文件夹路径下。
另一个包中的类如果要调用这个类就必须将包名写全,或者导入包名。
但是: 访问同一个包中的类不用引入,
class文件的最上层包的父目录必须在classpath下。
执行一个class需要写全名。
三、jar包:
JDK中会提供许多包:安装目录下/jre/lib/rt.jar
其中有许多包:
而在Java.lang中的包使用时无需引入, 其他包使用之前也要引入。
自己创建jar包: 在包名的父目录下使用 jar 命令。
>jar -cvf test.jar 文件名、文件夹名(可写多个)
>jar -cvf test.jar . 表示将该目录下的所有文件压缩进包中。
可以将jar包名存进 classpath 目录下,就可以直接
四、StaticImport 静态导入。
jdk1.5 出现的新特性。
为了能够使用其他的包中的类,我们可以导入这个类:
如: import java.util.*; :导入了java.util包中的所有类。
接触相同的原理,我们要使用其他的类中的静态成员时,可以静态导入这个类中的静态成员。
如: import static java.util.Collections.* ; :导入了Collections中的所有静态成员。
import static java.util.Arrays.*; :导入了Arrays中所有的静态成员。
import static Java.lang.System.*: : 导入了System中的所有静态成员。
好处: 再使用上述类中的导入后,使用这些类的静态成员时可以不用写类名
如: Collections.sort(List<T> list) 可以写为: sort(List<T> list);
Arrays.deepEequals(O[] o1, O[] o2); 可以写为 : deepEquals(O[] o1, O[] o2);
System.out.println(); 可以写为: out.println();
注意: 前面学过,在包导入中,如果两个包中有相同名字的类,实例化该类的时候,必须指明包名。
同理,在类的静态导入之后,如果方法或成员重名时,应当指明方法所属的对象或者类名,
否则,系统按照就近原则查找。
对程序进行package封装的更多相关文章
- 微信小程序初体验--封装http请求
最近看了一下微信小程序,大致翻了一下,发现跟angular很相似的,但是比angular简单的很多具体可参考官方文档 https://mp.weixin.qq.com/debug/wxadoc/dev ...
- mpvue学习笔记-之微信小程序数据请求封装
简介 美团出品的mpvue已经开源出来很久了,一直说要进行一次实践,这不最近一次个人小程序开发就用上了它. 看了微信官方的数据请求模块--request,对比了下get和post请求的代码,发现如果在 ...
- 微信小程序Http高级封装 es6 promise
公司突然要开放微信小程序,持续蒙蔽的我还不知道小程序是个什么玩意. 于是上网查了一下,就开始着手开发..... 首先开发客户端的东西,都有个共同点,那就是 数据请求! 看了下小程序的请求方式大概和a ...
- 基于Linux C的socket抓包程序和Package分析 (一)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/guankle/article/details/27538031 測试执行平台:CentOS 6 ...
- 微信小程序 request请求封装
在utils文件夹新建文件utils.js,封装代码如下: 小程序升级后内部不自带Promise方法,需外部引入Promise方法 var sendRequest = function (url, ...
- 基于Linux C的socketEthereal程序和Package分析 (一个)
执行测试平台:CentOS 6.5发行版,内核版本号3.11 1. Linux抓包源程序 在OSI七层模型中.网卡工作在物理层和数据链路层的MAC子层. 进行网络通信时.源主机通过socket( ...
- (转载)基于Linux C的socket抓包程序和Package分析
转载自 https://blog.csdn.net/kleguan/article/details/27538031 1. Linux抓包源程序 在OSI七层模型中,网卡工作在物理层和数据链路层的MA ...
- 微信小程序API接口封装
@ 目录 一,让我们看一下项目目录 二,让我们熟悉一下这三个文件目的(文件名你看着办) 三,页面js中如何使用 今天的API的封装,我们拿WX小程序开发中,对它的API (wx.request)对这个 ...
- 微信小程序自定义组件封装及父子间组件传值
首先在我们可以直接写到需要的 page 中,然后再进行抽取组件,自定义组件建议 wxzx-xxx 命名 官网地址:https://developers.weixin.qq.com/miniprogra ...
随机推荐
- webpack详细配置解析
阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可以快速浏览或直接跳过:如果你和十天前的我一样,对很多选项存在着疑惑,那花一段时间慢慢阅读本 ...
- L2-027. 名人堂与代金券
链接:名人堂与代金券 在比赛中这题只得了2分,赛后发现原来strcmp函数并不是只返回-1,0,1三种,而是返回正数负数0 但是在我的电脑上一般就是返回前三种,只是用后面的三种更稳妥点 都怪我基础不扎 ...
- SE Class's Individual Project--12061161 赵梓皓
1. 项目预计的用时 其实刚开始以为这个项目不难写,因为上学期oo课程上用java写过类似的程序(貌似还比这个复杂).觉得主要的难点在于学习c++语言. 总的项目被分为大概3个部分. 其一,文件遍历. ...
- Echarts中graph类型的运用求教
以下是百度Echarts官网上关系图的源码,但是这个关系图的node节点和edge都是静态文件里规定好的,我现在想动态实现,点击其中一个节点A然后新产生一个新节点B,并且有A和B之间的edge,就类似 ...
- M1/M2阶段总结
之前提问的博客 问题解答 问题 1 关于代码复审,复审者是否应该参与编码?如果复审者也参与编码的话,那么难免任务量较多,但如果不参与编码的话,工作分配的似乎不太均衡. 我们的团队项目在M1和M2阶段没 ...
- js 基础-&& || 逻辑与和逻辑或
今天百度发现一个简化长if else if 语句的方法,看起来及其强大,感觉这样虽然对系统性能提升没有帮助但是代码更简练了,分析了一番,下面先说说自己学到的理论. 首先要弄清楚js 中对于 变量, ...
- java中定时执行任务
现在项目中用到需要定时去检查文件是否更新的功能.timer正好用于此处. 用法很简单,new一个timer,然后写一个timertask的子类即可. 代码如下: package comz.autoup ...
- EL表达式和JSTL标签库
expresion language表达式语言 可以输出表达式的值.跟jsp的表达式脚本一样.计算表达式的值后输出. EL表达式出现的目的是为了使JSP写起来更加简单,让jsp的代码更佳简化. 1. ...
- java mail smtp port
https://www.tutorialspoint.com/javamail_api/javamail_api_smtp_servers.htm https://www.mkyong.com/jav ...
- docker发现端口是tcp6的 导致无法访问前端
最近偶尔发现一个比较奇怪的现象,netstat 查看监听的服务端口时,却只显示了 tcp6 的监控, 但是服务明明是可以通过 tcp4 的 ipv4 地址访问的,那为什么没有显示 tcp4 的监听呢? ...