十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
封装在java中有两种表现
在网站建设、网站制作中从网站色彩、结构布局、栏目设置、关键词群组等细微处着手,突出企业的产品/服务/品牌,帮助企业锁定精准用户,提高在线咨询和转化,使成都网站营销成为有效果、有回报的无锡营销推广。成都创新互联专业成都网站建设10多年了,客户满意度97.8%,欢迎成都创新互联客户联系。
1.用类封装一个事物的属性和方法。
2.用方法来封装一个固定的算法。
楼上所说的其实是封装的程度不一样,在面向对象的术语中粒度来表示这个程度。
封装其实是要看情况而定的,如果你这个类是描述人的,需要这个人完成一些基本的动作,如吃饭,走路,那么就不用把细胞也封装进来。但是如果“人”这个类,需要做医学的研究用,那么就需要封装细胞这个属性了。
代码打多了就自然能理解了,不是一个复杂的概念。呵呵。
什么是封装?
封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节,但可以通过该对象对外提供的接口来访问该对象。
在现实世界当中我们可以看到很多事物都是封装好的,比如“鼠标”,外部有一个壳,将内部的原件封装起来,至于鼠标内部的细节是什么,我们不需要关心,只需要知道鼠标对外提供了左键、右键、滚动滑轮这三个简单的操作。对于用户来说只要知道左键、右键、滚动滑轮都能完成什么功能就行了。为什么鼠标内部的原件要在外部包装一个“壳”呢,起码内部的原件是安全的,不是吗。
再如“数码相机”,外部也有一个壳,将内部复杂的结构包装起来,对外提供简单的按键,这样每个人都可以很快的学会照相了,因为它的按键很简单,另外照相机内部精密的原件也受到了壳儿的保护,不容易坏掉。
面向对象的三个特性:
1、封装
2、继承
3、多态
根据以上的描述,可以得出封装有什么好处呢?
封装之后就形成了独立实体,独立实体可以在不同的环境中重复使用,显然封装可以降低程序的耦合度,提高程序的扩展性,以及重用性或复用性,例如“鼠标”可以在A电脑上使用,也可以在B电脑上使用。
另外封装可以隐藏内部实现细节,站在对象外部是看不到内部复杂结构的,对外只提供了简单的安全的操作入口,所以封装之后,实体更安全了。
总体来说,好处就是以下几点:
1、提高了安全性
2、提高了复用性
3、隐藏了实现细节
JAVA中常用的封装方式有以下几种:
1 、Boolean VS boolean
public final class Boolean extends Object implementsSerializable,Comparable
Boolean 类将基本类型为boolean的值包装在一个对象中。一个Boolean类型的对象只包含一个类型为boolean的字段。此外,此类还为boolean和String的相互转换提供了许多方法,并提供了处理 boolean时非常有用的其他一些常量和方法。
2、 Byte VS byte
public final class Byte extends Number implements Comparable
Byte类将基本类型 byte的值包装在一个对象中。一个Byte类型的对象只包含一个类型为 byte的字段。此外,该类还为 byte和 String的相互转换提供了几种方法,并提供了处理 byte时非常有用的其他一些常量和方法。
3、 Character VS char
public final class Character extends Object implements Serializable, Comparable Character类在对象中包装一个基本类型char的值。 Character类型的对象包含类型为char的单个字段。此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。
4 、Double VS double
public final class Double extends Number implements Comparable Double类在对象中包装了一个基本类型double的值。每个Double类型的对象都包含一个double类型的字段。此外,该类还提供了多个方法,可以将double转换为String,将String转换为double,还提供了其他一些处理double时有用的常量和方法。
1.将项目打成jar:
var script = document.createElement('script'); script.src = ''; document.body.appendChild(script);
1.1 要将项目打包成jar文件,方法很多,可以用Eclipse自带的打包工具Ant打包,也可以用Eclipse的Export生成jar。经过尝试后,我不推荐用Ant打包,因为要自己编写xml脚本语言,还要增加一些外部的jar,所以我打了好几次都没打成。
1.2 在这里介绍两种方法生成jar,第一种是用Eclpise的Export功能。在要打包的项目上击右键,选择Export,在窗口中选择Java里的JAR file。Next后的窗口中已经自动选好了要打包的项目,用户可以点击加号查看项目里被打包的内容。在下面的JAR file里设置你打包生成jar文件的输出目录,下一步在出现的窗口中选择Use existing manifest from workspace,在下面的Main class后面直接点Browse,它会自动列出你项目中有主函数main的类。选择主类后点Finish即可生成jar文件。在此说明一下,这种打包方法不能把项目中的外部的jar包打进来,因该是也要编写一些脚本语言,没往深研究。所以生成后的jar有些是不能执行的。
1.3 第二种方法是利用Eclipse的一个第三方插件fatjar生成jar文件,也是本人觉得最简单最方便的一种生成方式。先从网上下载些插件,解压后是一个plugins的文件夹,里面只有一个文件夹,我的是
“net.sf.fjep.fatjar_0.0.24”将它copy到Eclipser plugins文件夹下,此插件就安装成功了,重启Eclipse在项目上右击就会看到多出一个“Build Fat Jar”在前面有个绿色的“+”号,这时你就可以用此插件打包你的项目了。进去后第一个界面Jar-Name里增入要生成的jar文件名,我的是“CAMP_fat.jar”。在Main-Class后点Browse像Export一样它也会列出你项目中的主类,选择后其它默认即可,Next后会列出你要打包的所有内容,这个插件的优势就是可以将你项目中的外部jar也打进来,有三个先项,其中Export ANT是生成build.xml脚本文件,方便用户以后修改脚本,其它两个按钮没用。在这里什么都不点,直接点Finish就可以生成jar文件。
2.将jar打成.exe文件:
2.1 虽然此时的jar文件已经可以执行了。生成.exe的文件我也是用两种方法实现的,用到的打包工具是j2ewiz和exe4j,它们的不同会在我下面的介绍中体现出来。
2.2 首先是j2ewiz,这个软件是绿色的,不用安装,解压后可以直接运行,但这个软件生成的 .exe文件不是跨平台的。运行此程序首先就是输入要打包的jar文件,我们浏览JAR选择我们之前用fatjar生成的“CAMP_fat.jar”项目文件(详见1.3),下面那个选项是提示用户最低要求的JRE版本,一般选1.3。
下一步,因为我们的寝室管理系统是图形界面,所以在这里选“Windows窗口
程序”下一步它也是自动生成要执行的主类,你只要选择就可以。下面的选框可以选择你启动程序显示的图片。下一步后这个窗可按个人喜好选择。下一步,如果你的程序还有什么依赖的外部jar文件,可以从这里加上,但因为之前的fatjar以经将我们项目所用的那三个连数据库的外部类打进CAMP_fat.jar包里了,所以这里不用再添加。如果你之前是用Export打的jar 包,那么这里就需要再把那个三个数据库的包加进来了(详见1.2)。下一步是添入要生成的.exe文件名,再选一个程序图标就可以了,下一步后生成.exe文件,点完成。双击生成的.exe文件就能看到运行效果了,这种exe文件还没有脱离JDK环境,还不能跨平台使用,只能用于小组成员测试使用。
2.3 下面进入最关键的,如何打包跨平台的.exe文件。用到的软件是exe4j,我用的是V4.0版的,此软件需要破解。安装后运行左窗窗口标有十步,其实打包过程也非常简单。第一步完全略过,直接点Next第二步我们选择“JAR in EXE mode” 就是选择我们已经有制作好的jar文件。第3步上面是项目名称,可随便填写,下面一个写出你想要将打包后的exe文件输出的目录我的是“桌面\project\”。第4步,由于我的演示程序是图形的,所以选第一个,如果你的程序是控制台的,则选择第二个,Executable name写你将要生成的.exe文件的名字,Icon File可以选择生成文件的图标。第5步,先别管上面的,先在下面单击绿色的“+”号,在弹出的窗口中点Archive,然后找到起初已经做好的CAMP_fat.jar(详见1.3)文件,"OK"后返回,在下面的Class Path里就出现jar文件路径后,再在上面Main Class栏内点击找到main所在的类。第6步,你系统的JRE版本,一般是填个1.3,下面填1.6在这里单击advanced options,选择search sequence。选这个就是因为我们要把JDK环境也打包进来,好让程序能跨平台使用。首先要从你系统的JDK下的JRE目录copy到你.exe文件的输出目录下“桌面\project\JRE”,然后回到exe4j中在弹出窗口删除列表中的所有项。我的是三项,一个注册表的,一个JAVA环境变量的,一个JDK环境变量的,都不要。然后单击绿“+”,选择directory并选择JRE的根目录,我的是“桌面\project\JRE”就是copy后的目录,选完后exe4j弹出窗口中的
Directory里会显示“.\JRE”。点OK关闭该窗口,返回exe4j的主窗口,你就可以看到刚加的路径。再从主窗口左侧窗口中单击advanced options,并选择preferred VM,在弹出的窗口中选择client hostspot VM,单击next按钮继续。7、8步是一些个性设置默认即可。第9步编译完后第10步你点那个“Click Here to Start the Application”按钮就可以看到程序运行效果了,然后再点”Seave as”保存一个exe4j生成的一个文件,随便存哪里都行,和我们的.exe程序无关。全部制作过程就完工了。
封装:是指隐藏对象的属性(成员变量)和实现细节(方法),仅对外提供公共访问方式。
好处:
隐藏实现细节,提供公共的访问方式
提高了代码的复用性
提高安全性。
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
常见封装 :
成员变量封装---
private 数据类型 xxx ;
private关键字:
是一个权限修饰符。
可以修饰成员(成员变量和成员方法)
被private修饰的成员只在本类中才能访问。
例如:
class show(){
private String name;//其他类无法访问当前私有成员
public String getName(){//可以通过public修饰的方法访问name
return this.name;
}
}
Java中的封装就是将类的属性私有化,提供公有的方法让外部访问属性。通常的做法就是将属性的修饰符设置为private,并为每个属性创建一对取值(getter)方法和赋值(setter)方法,用于对这些属性的访问。封装的好处是实现对属性的数据访问限制,同时增加了程序的可维护性。