JAVA学习.包的概念&包装类的理解

<1>.   包(package)的概念

     一个好的类名,大家都爱使用,那么在相同类名的情况下,将很难区分类的主人,所以我们必须给类起一个范围限定(归属), JAVA中是通过包的机制来解决的。

案例:

小强写的学生类  xiaoqiang. Student

小刚写的学生类  xiaogang.Student

小红编写了一个程序使用到了上述两个学生类中的一个:

 xiaogang.Student s=new xiaogang.Student();

   

      包是一种逻辑结构,是一个类的归属标志,同一个包中不能出现雷同的类名,同时包在物理上是通过磁盘目录来表示的。也就是通过层级目录来实现的:例如有现在两个包,一个是one.two.three ,第二个是one.two.four 那么这两个包的区分就是在磁盘目录下创建一个one文件夹,在one文件夹下有一个two文件夹,在two文件夹下好有两个文件夹,一个名字叫three 另外一个叫做four ,而你在两个包下面创建的类就分别放在对应的文件夹中。

 

       包名也有可能出现雷同的现象,为了避免这种情况的发生,我们一般使用单位的域名倒装来作为包名,因为域名不会出现重复,一个域名作为包名将可能在磁盘上创建多 个层级目录

 

为了避免你所编写的类,在后续的系统中出现使用上问题,请不要书写无包类/默认包类(default package).

 

案例:

package one.two.three.four;   //package关键字,说明这个类所属的包
	public class Student {
 
	}



<2>.包装类(wrapper)

任何基本类型:byte, int, long, float ,double, boolean,char ...(面向过程的数据类型)在JAVA中都有一个类类型与其对应。而这个类就称为该基本类型的包装类,为该基本类型提供了许多的方法以供使用。(JAVA没有无符号数据类型:第一位是否作为正负符号的标准)

boolean  布尔型  只有两个值true    false 

char     字符型

byte     8位带符号整数      -128到127之间的任意整数 

short      16位无符号整数    -32768~32767之间的任意整数

int          32位带符号整数    -2^31到2^31-1之间的任意整数

long       64位带符号整数    -2^63到2^63-1之间的任意整数

floaat    32位单精度浮点数   根据IEEE754-1985标准

doule   64位双精度浮点数   根据IEEE754-1985标准

 

Int  --->  java.lang.Integer  (java.lang,java语言包, lang=language,java.lang包中的所有的类在任何JAVA程序中都由编译器默认导入,语法是:import java.lang.*

由于lang包里头的类使用极度频繁,是语言扩展和服务类,为降低程序员的导入负担,该包下的所有类由编译器帮助导入,用户无需手动导入。)

  

 包装类的主要作用:

a)     int  ->Integer

b)     float  -> Float

c)     double  -> Double

d)     boolean  -> Boolean

e)     char ->Character

f)      long    ->  Long

g)     byte -> Byte

 

1.  弥补基本类型的语意缺失

基本类型无法表示:“没有”

float mark;     0

Float mark     0 , null

2.  为基本类型提供服务

Integer:

     

       System.out.println(Integer.parseInt("18")+100);
       //将字符串转化为十进制整型
       System.out.println(Integer.toBinaryString(123));
       //将十进制转化为二进制
       System.out.println(Integer.toHexString(234));
       //将十进制转化为十六进制
       System.out.println(Integer.toOctalString(345));
       //将十进制化为八进制

Character:

       Character.isDigit('1');//判断是否是数字
       Character.isLetter('c');//判断是否是字符
       Character.isLetterOrDigit('@');//判断是否是字符或者空格
       Character.isWhitespace('d');//判断是否是空格

注: 虽然包装类的代码量比基本类型要多出非常的多,但是声明一个基本类型和声明一个对应的包装类类型所占用的内存的大小基本上是相同的(需要对JAVA对象构建时内存的情况有所了解)但是使用包装类类型的话后台会有相当多优秀的方法来支持,所以当你想要对该类型的基本类型进行一些操作的话不妨先去查看一下对应的包装类中有没有你想要的方法,如果没有的话再去编写你所需要的代码这样的话可以节省大量的时间而且有助于提高代码的质量。

   

   装箱(inbox)和拆箱(outbox)

   代表了类类型和基本类型之间的转换行为。

   

   Integer b = new Integer(10);
   Inta = b.intValue;
   //手动装箱和拆箱
   Integer b=30;   //系统编译时会转化为  Integer b=new Integer(30);
   Inta=b;         //系统编译时会转化为  int a =b.intValue();
   //自动的装箱和拆箱

     因为基本类型和类类型之间的换转操作频繁,SUN公司在高版本的JDK中提供了自动装箱和拆箱操作,由编译器帮助你书写转换代码。

     只有 在JDK5.0以上版本才支持自动装箱和拆箱操作。

 原创出处:http://blog.csdn.net/u012830807

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值