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)好处是可以提高初始化块的复用,提高整个应用的可维护性。
|