本帖最后由 张研老师 于 2015-11-30 08:50 编辑
对象的封装 1、 概念 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。 2、 好处 提高复用性。调高安全性。 3、 原则 a) 将不需要对外提供的内容都隐藏起来。 b) 把属性都隐藏,提供公共方法对其访问。 4、 封装的表现形式之一——private(私有) private关键字:权限修饰符;用于修饰类中的成员(成员变量,成员函数);私有只在本类中有效。 常用之一: 将成员变量私有化,对外提供对应的set,get方法对其进行访问。提高对数据访问的安全性。 如:我有一个人对象,而年龄这一属性我不想被对象访问,我就可以将其设为private。 人物对象程序:
1. class Person//描述人物对象的类 2. { 3. private int age;//人对象的年龄属性 4. public void setAge(int a)//提供访问方法,并判断是否有效 5. { 6. if(a>0 && a<130) 7. { 8. age = a; 9. speak(); 10. } 11. else 12. System.out.println("feifa age"); 13. } 14. 15. public int getAge()//提供获取方法 16. { 17. return age; 18. } 19. private void speak()//对象的说功能 20. { 21. System.out.println("age="+age); 22. } 23. } 24. 25. class PersonDemo 26. { 27. public static void main(String[] args) 28. { 29. Person p = new Person();//创建人物对象 30. p.setAge(-40);//利用封装提供的访问方法进行修改年龄属性 31. p.speak(); 32. } 33. }
构造方法 1、 特点: a) 函数名与类名相同。 b) 不用定义返回值类型。 c) 不可以写return语句。 2、 作用: 给对象进行初始化。 3、构造函数的小细节: 当一个类中没有定义构造函数时,那么系统就会默认给该类加入一个空参数的构造函数。当在类中自定义了构造函数后,默认的构造函数就没有了。 4、构造函数和一般函数在写法上有不同。 在运行上也有不同: 构造函数式在对象一建立就运行,给对象初始化。而一般方法是对象调用才执行,给是对象添加对象具备的功能。一个对象建立,构造函数只运行一次。而一般方法可以被该对象调用多次。 5、什么时候定义构造函数? 当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中。 6、构造代码块 作用:给对象进行初始化。对象一建立就运行,而且优先于构造函数运行。 和构造函数的区别: 构造代码块是给所以对象进行初始化。 而构造函数是给对应的对象初始化。 构造代码块中定义的是不同对象共性的初始化内容。
this关键字 先看一个小程序:
1. class Person 2. { 3. private String name; 4. private int age; 5. Person(int age)//局部变量时age,成员变量也是age 6. { 7. this.age = age;//this能够很好区分 8. } 9. Person(String name) 10. { 11. this.name = name;//这里用this表示调用构造方法的对象 12. } 13. Person(String name,int age) 14. { 15. this.name = name; 16. this.age = age; 17. } 18. 19. public void speak() 20. { 21. System.out.println("name="+name+"...age="+age); 22. show(); 23. } 24. public void show() 25. { 26. System.out.println(this.name); 27. } 28. } 以上程序综合了构造函数和this的用法。看上去,是用于区分局部变量与成员变量同名情况。 this代表它所在函数所属对象的引用。 简单说:哪个对象在调用this所在的函数,this就代表哪个对象。 this的应用: 当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。 但凡本类功能内部使用到了本类对象,都用this表示。 this语句: 用于构造函数之间进行互相调用。如:this(name); thi语句只能定义在构造函数的第一行。因为初始化要先执行。 对this的概括总结: this的两种用法:1、用于区分同名变量的情况,说的成员和局部同名的时候;2、用于构造函数间调用。 注:一般函数不能直接调用构造函数,因为this语句不能用在一般函数中,只能用在构造函数间。
|