1基本类型只能按值传递,而每个基本类型对应的封装类是按引用传递的。
2从性能上说java中的基本类型是在堆栈上创建的,而所有的对象类型都是在堆上创建的,(对象的引用在堆栈上创建)。比如
Integer i=new Integer(10); 其中new Integer()是在堆上创建的,而他的引用Integer i是在堆栈上。 封装类的出现,是为了更方便的使用一些基本类型不具备的方法,比如valueOf(),toString()等等。还有你如果想传递一个int对象的引用,而不是值,那只能用封装类。
在堆栈上分配内存的调用效率和在堆上分配内存的效率差太多了。虽然在堆栈上分配内存效率高,不过在堆栈上分配内存有内存泄露的问题。(这是一个平庸程序员基本解决不了的问题)java用了一种很天才的方法提高了在堆上分配内存的效率,尽管如此,java还是慢。他不太可能达到向c++那么快,尽管他一直在承诺总有一天虚拟机会和机器码速度一样快。
快捷键:shift + alt + s。
为了实现良好的封装,需要从两个方面考虑:
把字段(成员变量)和实现细节隐藏起来,不允许外部直接访问。
把方法暴露出来,让方法控制这些成员变量进行安全的访问和 *** 作。因此,封装就有两个含义:把该隐藏的隐藏起来,把该暴露的暴露出来。
实现封装的方式:使用访问控制符:
java提供了三种访问权限,准确的说还有一种是默认的访问权限,加上它一共四种。
private 在当前类中可访问
default 在当前包内和访问
protected 在当前类和它派生的类中可访问
public 公众的访问权限,谁都能访问
扩展资料
封装的意义:
1、封装可以隐藏实现的细节;
2、让使用者只能通过实现写好的访问方法来访问这些字段,这样一来我们只需要在这些方法中增加逻辑控制,限制对数据的不合理访问;
3、方便数据检查,有利于于保护对象信息的完整性;
4、便于修改,提高代码的可维护性。
包对java源文件没有作用,只对class字节码文件起作用。包相当于一个字节码的相对路径。例如上例中PackageTestclass的绝对路径就是:G:\p1\p2\p3
引入包可以防止文件名之间的冲突(例如一个公司的网站域名为:>
class Man{private String name;private int age;Man(){}Man(String name, int age){thisname=name;thisage=age;}public void setName(String name){thisname=name;}public String getName(){return name; }public void setAge(int age){thisage=age;}public int getAge(){return age;}}创建了一个人的类,封装了名字和年龄两个属性,构建了两个构造函数,用于初始化。应用:class Test{static public void main(String a[]){Man man1=new Man(); //空构造函数初始化,无姓名,无年龄Man man2=new Man("张三",22); //带参数初始化,有姓名,有年龄//为man1取名,定年龄man1setName(''李四");man2setAge(20);//输出两个人Systemoutprintln(man1getName()+" "+man1getAge());Systemoutprintln(man2getName()+" "+man2getAge());}}以上是封装两个属性,其实封闭代码,甚至类都是有共同点的,你可以参考一下
你把JAVA生成的两个clsss文件找到,例如:Aclass和Bclass再建一个文本文件,把建的文本文件CTXT把扩展名改为mf,再用记事本打开这个文件,在里面写上这样的语句:
Manifest-Version: 10
Main-class; A
Created-By: 15
然后在"开始"中打开"运行"打开输入"cmd"然后用CD把目录转化成那两个文件的目录,然后输入"jar cfm [要生成的文件名] Cmf Aclass Bclass"
这样就会生成一个文件,这个文件就是打包的文件,你可以双击运行
这个软件可以,里面还有破解补丁。
第一次安装时要求系统有15版本以上的JDK,如果你的机器上有JDK,点Locate找到你机器上已安装的JDK目录下/bin/javaexe就可以进行安装了。
下面就打包过程详细说明一下:
第1步,默认即可。
第2步,如果已经有制作好的jar文件,则下面一个"JARinEXE"。
第3步,上面是项目名称,可随便填写,下面一个写出你想要将打包后的exe文件输出的目录:
第4步,由于我的演示程序是图形的,所以选第一个,如果你的程序是控制台的,则选择第二个,Executable name写你将要生成的exe文件的名字,IconFile可以选择生成文件的图标
第5步,首先,单击绿色的"+"号,在d出的窗口中点Archive,然后找到起初已经做好的jar文件,"OK"后返回,在下面的Class Path里就出现jar文件路径后,再在上面Main Class栏内点击找到main所在的类,这一步即算完成:
第6步,你系统的JRE版本,上面填个13,下面填16:
当然,这样配置的程序只能在安装有JRE的机器上执行,发布时总要考虑的问题就是用户是否有能力在自己机器上安装JRE,总不能发布一个程序还要用户自己安装个JRE吧,下面我就介绍如何将JDK环境变量动态打包到exe中,在这里单击advancedoptions,选择searchsequence。
首先把JRE复制到exe文件输出的目录里,我用的是c:\xaocker\,在d出的窗口中,删除列表中所有项,然后单击绿+,选择directory并选择JRE的根目录(注意是拷贝后的目录)即可,单击ok后,再从图中单击advancedoptions,并选择preferred VM,在d出的窗口中选择clienthostspotVM,单击next按钮继续:
第7、8步是一些基本配置,默认即可,第9步编译,第10步你就可以点这个看到效果了:
exe4j未注册的版本会出现对话框:点击确定之后就可以看到你程序的运行结果了!
javaexe依照一套逻辑来寻找可以用的JRE,首先查找自己所在的目录下有没有JRE,其次查找自己的父目录下有没有JRE;最后才是查询Windows的注册表。
现在我们的程序可以在任意的计算机上执行了,可是缺点是致命的,比方说我的程序才160K,可是不论走到哪里都要背着70多M的JRE,未免有点小题大做吧,其实作为我们的私有的JRE,好多内容都是可以抛弃的。Jre目录下的license都可以不要,bin下的执行文件只需要保留javaexe或者javawexe,lib下只要保留rt,jsse,jce,charsets几个库就可以了。除了i386和zi两个子目录外,其余的子目录都可以不要。Zi下只需要保留自己地区的子目录和其下的一些文件就可以。Lib下除了库之外的属性文件等等都要保留。这样清理一番,JRE仍然有接近50MB。还可以继续清理几个库文件里面不需要的内容,这需要仔细的整理,会很费功夫。最好能写出一个自动工具帮助我们整理它们。从Sun公司上下到的JMF里面附带的用Java写的媒体播放器就自带了JRE,只有几个MB。
清理过后需要运行几遍我们的应用程序,以确保我们的JRE不缺少东西。
OK,仔细清理之后,文件变小了不少,可以发布了……
以上就是关于java封装类全部的内容,包括:java封装类、JAVA封装字段快捷键或快速封装是哪个、怎么封装java类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)