黑马程序员-java基础面向对象(3)
来源:互联网 发布:毕业论文数据去哪里找 编辑:程序博客网 时间:2024/06/09 19:02
——- android培训、java培训、期待与您交流! ———-
一、封装
1、 封装(Encapsulation)
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
2、 好处:
将变化隔离。
便于使用。
提高重用性。
提高安全性。
3、 封装原则:
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问。
二、private
1、private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)
2、私有只有本类中有效。
- 将age私有化以后,类意外即使建立了对象也不能直接访问。
- 但是人应该有年龄,就需要Person类中提供对应访问age的方式。
-
注意:私有仅仅是封装的一种表现形式。私有的最小权限。
之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。 - 对访问的数据进行操作。提供代码健壮性。
-
- 成员变量都有默认值,局部变量没有默认值。
代码块
练习:private实例
package com.itheima7;/** * * @author jjy * * 封装(Encapsulation) * 封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。 * 好处: * 将变化隔离。 * 便于使用。 * 提高重用性。 * 提高安全性。 * 封装原则: * 将不需要对外提供的内容都隐藏起来。 * 把属性都隐藏,提供公共方法对其访问。 * */public class PersonDemo { public static void main(String[] args) { Person p = new Person(); //p.age=-20;//age被直接访问,所以导致安全隐患。 p.setAge(20); //p.speak(); } }/** * private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数) * 私有只有本类中有效。 * * 将age私有化以后,类意外即使建立了对象也不能直接访问。 * 但是人应该有年龄,就需要Person类中提供对应访问age的方式。 * * 注意:私有仅仅是封装的一种表现形式。私有的最小权限。 * * 之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。 * 对访问的数据进行操作。提供代码健壮性。 * * 成员变量都有默认值,局部变量没有默认值。 * * @author jjy * */class Person{ private int age; //设置方法 public void setAge(int a){ if(a>0 && a<130){ age = a; speak(); } else System.out.println("feifa age"); } //获取方法 public int getAge(){ return age; } //说话方法 void speak(){ System.out.println("age="+age); }}
其中p.age=-20时,编辑器提示如下信息:
使用setAge()和getAge()方法时,内存情况图:
0 0
- 黑马程序员---java基础----面向对象3
- 黑马程序员-java基础面向对象(3)
- 黑马程序员--Java基础--面向对象基础
- 黑马程序员-----java基础(面向对象基础)
- 【黑马程序员】java编程基础,面向对象
- 黑马程序员 Java基础 ---> 面向对象(上)
- 黑马程序员 Java基础 ---> 面向对象(下)
- 黑马程序员----JAVA基础之面向对象
- 黑马程序员JAVA基础-面向对象
- 黑马程序员 java基础<—>--->面向对象
- 黑马程序员Java基础__面向对象
- 黑马程序员 Java基础<三>--->面向对象
- 黑马程序员---java基础---2面向对象
- 黑马程序员----java基础之面向对象
- 黑马程序员----Java基础之面向对象
- 黑马程序员--Java基础--01面向对象
- 黑马程序员--Java基础总结--面向对象
- 黑马程序员-java基础-面向对象-继承
- 【AJAX学习】【01】【开始】 ajax起步
- 【剑指Offer学习】【面试题58:二叉树的下一个结点】
- 如何看待交换机的启动配置文件???
- JS中变量名作为if条件的真/假
- Creo3.0二次开发
- 黑马程序员-java基础面向对象(3)
- mysql导入数据库和导出数据库
- 【剑指Offer学习】【面试题59:对称的二叉树】
- java基础 泛型
- Creo二次开发定制
- 打造最强Eclipse,搭建嵌入式开发环境(AVR)
- 【从零单排之微软面试100题系列】08之反转链表
- HDU 1875
- Android 手机影音 开发过程记录(六)