黑马程序员技术交流社区

标题: 002分享_day07封装,构造函数 [打印本页]

作者: 掉了一地..    时间: 2015-2-1 13:27
标题: 002分享_day07封装,构造函数
本帖最后由 掉了一地.. 于 2015-2-1 14:11 编辑

day07_封装_构造函数:
1.1,匿名封装:
   1.匿名:new Car().run();//这句已执行完就是垃圾,没有东西引用。等同于:Car c = new Car(); c.run();
   2.局限:new对象一结束,该对象就是垃圾。
   3.作用:当对象对方法进行调用时,而且只调用一次时。可简化成匿名对象书写,需要调用多次时不可以使用匿名对象。
1.2封装的表现:
   函数就是一个最基本的封装体。
   类其实也是一个封装体。
1.3封装的好处:
   1.提高了代码的复用性。
   2.隐藏了实现细节。还要对外提供可以访问的方式。便于调用者的使用。//此既是封装的概念。
   3.提高了安全性:如私有变量。private int age。面向对象思想的特征之一。//封装,继承,多态。
2.1封装-私有:
    private int age//私有仅仅是封装的一种体现形式。private,私有,权限修饰符。
    1.对私有变量的访问操作有两个动作两个访问方式:赋值(设置 set),取值(获取 get);
    2.类中不需要对外提供的内容都私有化,包括属性和行为。
    3.以后描述事物,属性都私有化,并提供setXxx getXxx方法对其进行访问。
day07_封装_构造函数:
3.1构造函数的特点:
   没有返回值类型,因为构造对象,创建完就结束,需要结果。void也无须写,要求别于其他函数。
   构造函数名称和类名一致。
   无具体返回值。
3.2构造函数介绍,
3.3默认对象初始化,构造函数初始化。如果对象一产生就具有某些特点,就需要修改构造函数。
3.4 只要定义一个类,该类中就默认有一个空参数的构造函数,是编译时添加到class文件中。
    注意:如在类中定义了构造函数,那么默认的空参数构造器函数编译器就不添加了。
    原理:没有定义对象的初始化过程,编译器会添加一个默认的初始化过程。如果定义了指定的对象初始化过程,默认的就不添加了。
3.5构造函数的细节:
   1.一个类中可以有多个构造函数,如:person类  有的一出生就有姓名和年龄。有的既没姓名,又没年龄。
    多个构造函数的出现时以重载的方式出现的。和类名相同,但参数不同。
   2.构造函数中也是有返回值的,有return语句,用于结束初始化动作。
   3.构造函数是能被private修饰的。但其他程序无法创建该类对象了。但在本类中可以。
   4.构造函数可以调用一般函数或者其他构造函数,初始化是可以涉及到一部分动作,将动作为初始化的一部分。初始化动作必须放在构造函数的第一行。否则易产生冲突,导致编译异常。
   5.一个构造函数不能调用两个构造函数。
4.1构造函数和一般函数区别:
   1.写法不一样,构造函数没有返回值类型。
   2.运行上有差别,构造函数对象一创建,就会调用对应的构造函数,一般函数是对象创建后,才会调用所需的一般函数。
   3.构造函数中创建了属性,如需修改可以通过set方法完成。
   4.构造函数在对象创建时,仅调用一次(初始化动作只做一次,而且先执行)。一般方法可以被对象调用多次。
4.2 构造函数之间的互相调用:
   1.构造函数是对象初始化时调用的。
   2.初始化时,构造函数调用另一个构造函数时,需要使用到this关键字。
   3.通过this关键字来记录对象之间的地址,并通过this来明确被初始化的对象。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2