黑马程序员技术交流社区

标题: Java基础学习 第6天 (02) [打印本页]

作者: luguoyuanf    时间: 2013-3-25 07:34
标题: Java基础学习 第6天 (02)
3.3 封装(Encapsulation)
          定义:指隐藏对象的属性和实现细节,仅对外提供公共访问方式
          好处:
                   1)将变化隔离,隐藏类的实现细节
                   2)便于使用,可以方便加入控制逻辑,限制对属性不合理操作
                   3)提高重用性,便于修改,增强代码的可维护性
                   4)提高安全性
          封装原则:
                   1)将不需要对外提供的内容都隐藏起来
                   2)把属性都隐藏,提供公共方法对其访问
         3.3.1private (私有)关键字
private关键字
      1) 是一个权限修饰符。
      2) 用于修饰成员(成员变量和成员函数)
      3) 被私有化的成员只在本类中有效。
常用之一:
                   将成员变量私有化,对外提供对应的set get方法对其进行访问。提高对数据访           问的安全性
         3.4构造函数
          特点:
                   1)构造方法的方法名必须与类名相同
           2) 构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
           3) 构造方法不能由编程人员调用,而要系统调用。
           4) 一个类可以定义多个构造方法,也就是构造方法可以重载,以参数的个数,类                         型,或排列顺序区分。
           5)如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认             构造器,这个构造器不执行任何代码。
                   作用:构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的                                     参数传给对象的域。
                   构造函数和一般函数的区别:
                    1从功能上的区别:
             构造函数是给对象初始化的
             一般函数是因为对象需要满足某种功能定义的
                    2从执行上的区别
             构造函数,是对象创建的时候被执行,不用调用。
             一般函数是什么时候调用,就什么时候执行,不调用就永远不执行。
         3.5this关键字
           定义:Java关键字this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)                            就会给这个对象分配一个引用自身的指针,这个指针的名字就是this。因此,                     this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出                         现this,(这在讲解Java关键字static、final中给出了明确解释。)并且this只和                   特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。
           简言之:哪个对象调用this所在的函数,this就代表哪个对象。
                   this关键字的作用
            1) 第一、通过this调用另一个构造方法,用法是this(参数列表),这个仅仅在类的构造方法中,别的地方不能这么用。
            2) 第二、函数参数或者函数中的局部变量和成员变量同名的情况下,成员变量被屏蔽,此时要访问成员变量则需要用“this.成员变量名”的方式来引用成员变量。当然,在没有同名的情况下,可以直接用成员变量的名字,而不用this,用了也不为错,呵呵。
            3) 第三、在函数中,需要引用该函数所属类的当前对象时候,直接用this。
            4) 其实这些用法总结都是从对“this是指向对象本身的一个指针”这句话的更深入的理解而来的,死记不然容易忘记而且容易搞错,要理解!
                   局部代码块(定义在方法里面)
            public void method(){
{
           int x = 4;
           System.out.println("x="+x);
}
}
这种写法开发并不常见,但是面试可能会出现,它的作用就是可以限定变量的生命周期.
           初始化块(构造代码块)
                    定义在类里
                            {
                                     System.out.println("我是初始化块")
                            }
           1) 括号里的是初始化块,这里面的代码在创建java对象时执行,而且在构造器之前执行!
           2) 其实初始化块就是构造器的补充,初始化块是不能接收任何参数的,定义的一些所有对象共有的属性、方法等内容时就可以用初始化块了初始化!!
           3)好处是可以提高初始化块的复用,提高整个应用的可维护性。


作者: 许庭洲    时间: 2013-3-27 07:45
值得学习ing!




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