java的封装类
⑴ java中的封装类
1.基本类型只能按值传递,而每个基本类型对应的封装类是按引用传递的。
2.从性能上说java中的基本类型是在堆栈上创建的,而所有的对象类型都是在堆上创建的,(对象的引用在堆栈上创建)。比如
Integer i=new Integer(10); 其中new Integer()是在堆上创建的,而他的引用Integer i是在堆栈上。 封装类的出现,是为了更方便的使用一些基本类型不具备的方法,比如valueOf(),toString()等等。还有你如果想传递一个int对象的引用,而不是值,那只能用封装类。
在堆栈上分配内存的调用效率和在堆上分配内存的效率差太多了。虽然在堆栈上分配内存效率高,不过在堆栈上分配内存有内存泄露的问题。(这是一个平庸程序员基本解决不了的问题...)java用了一种很天才的方法提高了在堆上分配内存的效率,尽管如此,java还是慢。他不太可能达到向c++那么快,尽管他一直在承诺总有一天虚拟机会和机器码速度一样快。
JDK5.0开始可以自动封包了 ,也就是基本数据可以自动封装成封装类,基本数据类型的好处就是速度快(不涉及到对象的构造和回收),封装类的目的主要是更好的处理数据之间的转换,方法很多,用起来也方便。
当然,封装类型的传递是引用传递,比如
Integer a = new Integer(1);
表示一个Integer类型的引用a引用了一块内存,这块内存中的数据是1; 而a中所存的则是这块内存的引用(地址),把a传给别的方法或对象时,则是把a的引用传递过去了。
类型之间的转换:
String b = "123456";
int c = Integer.parseInt(b);
表示把字符串123456转成整型数字,其中parseInt是静态方法,可以直接使用
还有一点,在某些场合,需要用到封装类,比如一个集合List,它只能往里面添加对象,也就是Object,那么直接存数字肯定是不行 的,则需要将数字封装成封装类型对象再存到该List中,如
List list = new ArrayList();
list.add(new Integer(1));
list.add(new Integer(2));
list.add(new Integer(3));
list.add(new Integer(4));
JDK5.0以后可以自动封包,所以可以简写成
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
⑵ java封装类
equals是给你用的比较对象内容是否相等,你覆写就可以自己定义相等的标准
hashcode一般系统自己用,比如hashmap里的键值就是按照对象hashcode方法计算
compare 用于对象之间比较大小, 可以自定义比较的标准
⑶ 什么是封装Java语言中的封装类有哪些
封装普通来说是为了方便。
技术层面来说。 就是封装了一个对象。
你封装的这个对象。使用者不需要去了解你这个对象。
直接使用你的其中一个功能。
比如API 都是封装好的。 常见的封装类 比如Integer String之类的。 他们都可以自动转型
⑷ JAVA中什么是封装类,如何使用
java中的封装类是基本类型的封装成对象。
使用方法:
package wrapper;
public class IntegerTest1 {
public static void main(String[] args)
{
Integer i=new Integer(123);
byte b=i.byteValue();
double d=i.doubleValue();
System.out.println("将Integer封装类转换为 byte值为:"+b);
System.out.println("将Integer封装类转换为 double值为:"+d);
String s1=Integer.toBinaryString(i);
String s2=Integer.toOctalString(i);
String s3=Integer.toHexString(i);
System.out.println("转换为二进制的值为:"+s1);
System.out.println("转换为八进制的值为:"+s2);
System.out.println("转换为十六进制的值为:"+s3);
}
}
⑸ Java的封装有哪些
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时有用的常量和方法。
⑹ Java中类的封装是如何实现的
java类中,是分四种级别的:public,private,保护,和默认级别。其中最常用的是public和private级别。java类封装,就是通过级别来控制的。private级别时,只可以类内部访问。public级别可让其他人使用。所以封住java类时,只要把你想封装的类资源写成private级别,再在类内部给它提供一个可被他人调用的public方法,这样,就实现了封装。大概就是这样吧
⑺ JAVA类的封装是什么意思
JAVA类的封装就是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
主要好处是:
将变化隔离。
便于使用
提高重要性。
提高安全性。
⑻ 关于java类的封装
classPerson{
privateintage;
publicvoidsetAge(inti){
if(i<0||i>120){
return;
}
age=i;
}
publicintgetAge(){
returnage;
}
}
publicclassTest{
publicstaticvoidmain(String[]args){
Personp1=newPerson();
p1.setAge(30);
System.out.println(p1.getAge());
p1.setAge(-30);
System.out.println(p1.getAge());
}
}
⑼ java一个类封装好了是什么意思
封装就是把客观的事物包装成抽象的类,将自己的属性方法对可信的类操作,不可信的类隐藏。
如何理解呢,类只是一个抽象的模板,类实例化出一个对象,对象就是一个客观的事物,举个例子 人,这是个抽象的东西,人具有的属性:性别,皮肤颜色等 、行为:吃饭,睡觉等,将其封装起来成为才是一个人的类。这些属性,行为,这些行为,属性,只属于人这个类,以及这个类创建的对象,别的类是无法改变,使用的,这也就是对不可信的类隐藏,根据每个属性的开放级别来看其他类是否可以使用或者改变,比如修饰符,举个例子,一个人生下个儿子,他继承了父亲某种属性,某种行为。
⑽ 什么是Java的封装类
封装类就是人家已经写好实现,你只要负责调用就可以
比如排序就可以直接调用Collections.sort(Collection
coll)方法,没必要再自己写