关闭

装箱与拆箱以及java 的一些基本概念

370人阅读 评论(0) 收藏 举报
分类:

 装箱是将值类型转换为 object 类型或由此值类型实现的任一接口类型的过程。

int i = 123;

        // The following line boxes i.

         object o = i;  

        // unboxing

         o = 123; i = (int)o;



对象,打个很简单的比方说:男人,女人都是高级动物,都是一个对象,他们都有一个父对象就是高级动物。
这里的装箱应该理解为 封装对象 ,即把基础数据类型(如 int)转换成基础类型封装类的对象(如 new Integer())
拆箱就是装箱的反过程,即把基础类型封装类的对象(如 new Integer())转换为基础数据类型(如 int)。

装箱: Integer a = new Integer() ;
              a = 100 ; //1.5以前不支持为对象如此赋值
拆箱: int b = new Integer(100) ;


道理很简单,按理说C#被设计成一种完全面向对象的语言。因此,包括数字、字符、日期、布尔值等等在内的一切,都是对象。似乎只需要一种方式来对待这些对象就可以了。


但是C#不是只停留在学院中和理想中,它必须为性能而妥协,我们知道,对于CPU来说,处理一个完整的对象,需要很多的指令,对于内存来说,又需要很多的内存。如果连整数都是对象,那么性能自然很低。C#于是使用了一种机制,使得这些基本类型在一般的编程中被当作非对象的简单类型处理,在另一些场合,又允许它们被视作是一个对象。这种机制就是装箱和拆箱。

装箱后的对象看上去和一个对象一样,拥有方法,可以当作object处理,拆箱后的变量,看上去又如同C语言中的那些变量、结构体一样,可以直接参与运算和处理。

1)对象 对象是运行期的基本实体,它是一个封装了数据和操作这些数据的代码的逻辑实体。

2)类 类是具有相同类型的对象的抽象。一个对象所包含的所有数据和方法可以通过类来构造。

3)封装 封装是将数据和代码捆绑到一起,避免了外界的干扰和不确定性。对象的某些数据和代码可以是私有的,不能被外界访问,以此实现对数据和代码不同级别的访问权限。

4)继承 继承是让某个类型的对象获得另一个类型的对象的特征。通过继承可以实现代码的重用:从已存在的类派生出的一个新类将自动具有原来那个类的特性,同时,它还可以拥有自己的新特性。

5)多态 多态是指不同事物具有不同表现形式的能力。多态机制使具有不同内部结构的对象可以共享相同的外部接口,通过这种方式减少代码的复杂度。

6)动态绑定 绑定指的是将一个过程调用与相应代码链接起来的行为。动态绑定是指与给定的过程调用相关联的代码只有在运行期才可知的一种绑定,它是多态实现的具体形式。

7)消息传递 对象之间需要相互沟通,沟通的途径就是对象之间收发信息。消息内容包括接收消息的对象的标识,需要调用的函数的标识,以及必要的信息。消息传递的概念使得对现实世界的描述更容易

8)方法 方法(Method)是定义一个类可以做的,但不一定会去做的事。


类是抽象的,而对象是一个实体
.类:具有相同属性和行为的一组对象的集合.
对象:是具体存在的事物,明确定义状态和行为.


类:一系列属性的集合,如老师
对象:一个具体的事务或集体中的一员,如xx老师!
xx老师有老师(类)的所有属性,并自己还有延伸的属性(装逼,弱智)!

简单的理解为:对象是类的一个实例!类是集体对象共同属性的集合!


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12788次
    • 积分:262
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:8篇
    • 译文:0篇
    • 评论:0条