面向对象三大特征之封装
2016-09-26 23:52
260 查看
面向对象三大特征:封装、继承、多态
看着样一个例子:
存在问题: 性别有问题?
根本原因: 由于其他人可以直接操作sex属性。可以对sex属性进行了直接的赋值。
由此引出了封装:
一、权限修饰符:权限修饰符就是控制变量以及方法等等的可见范围的。一共有四种,在此先介绍两种。
1、public : 公共的。 public修饰的成员变量或者方法任何人都可以直接访问。
2、private : 私有的, private修饰的成员变量或者方法只能在本类中进行直接访问。
二、封装的步骤:
1、使用private修饰需要被封装的属性。
2、提供一个公共的方法设置或者获取该私有的成员属性。
1)命名规范:
2)疑问: 封装一定要提供get或者set方法吗?
答:不一定, 根据需求而定的。
3)(不成文的)规范 : 在现实开发中一般实体类的所有成员属性(成员变量)都要封装起来。
a)实体类:用于描述一类事物的就称作为实体类。
b)不是所有类都是用来描述事物的,还有像工具类(Arrays数组的工具类):
三、封装的好处:
1、提高数据的安全性。
2、操作简单。(相对调用者而言的,省略了一些判断条件,直接调用就可以了)
3、隐藏了实现。
四、举例:
1、使用java类描述一个计算器类,计算器具备操作数1, 操作数2 、操作符三个公共 的属性,还具备计算的功能行为。
要求: 不能直接对操作数1,操作数2,运算符 (+ - * / )这些属性进行直接 的赋值,要封装起来。根据需求提供get或者set方法。
2、代码:
3、效果:
看着样一个例子:
存在问题: 性别有问题?
根本原因: 由于其他人可以直接操作sex属性。可以对sex属性进行了直接的赋值。
由此引出了封装:
一、权限修饰符:权限修饰符就是控制变量以及方法等等的可见范围的。一共有四种,在此先介绍两种。
1、public : 公共的。 public修饰的成员变量或者方法任何人都可以直接访问。
2、private : 私有的, private修饰的成员变量或者方法只能在本类中进行直接访问。
二、封装的步骤:
1、使用private修饰需要被封装的属性。
2、提供一个公共的方法设置或者获取该私有的成员属性。
1)命名规范:
set属性名(); get属性名();
2)疑问: 封装一定要提供get或者set方法吗?
答:不一定, 根据需求而定的。
3)(不成文的)规范 : 在现实开发中一般实体类的所有成员属性(成员变量)都要封装起来。
a)实体类:用于描述一类事物的就称作为实体类。
b)不是所有类都是用来描述事物的,还有像工具类(Arrays数组的工具类):
三、封装的好处:
1、提高数据的安全性。
2、操作简单。(相对调用者而言的,省略了一些判断条件,直接调用就可以了)
3、隐藏了实现。
四、举例:
1、使用java类描述一个计算器类,计算器具备操作数1, 操作数2 、操作符三个公共 的属性,还具备计算的功能行为。
要求: 不能直接对操作数1,操作数2,运算符 (+ - * / )这些属性进行直接 的赋值,要封装起来。根据需求提供get或者set方法。
2、代码:
//计算器类 class Calculator{ private int num1; //操作数1 private int num2; //操作数2 private char option ; //运算符 //提供公共的方法设置属性值(一般都是使用set、get来命名,但不是规定,这样写也OK) public void initCalculator(int n1 , int n2 , char o){ num1 = n1; num2 = n2; //引用类型(如字符串)才使用equals()方法进行比较,而八大基本类型使用”==“,即可。 if(o=='+'||o=='-'||o=='*'||o=='/'){ option = o; }else{ option = '+'; } } //计算的功能 public void calculate(){ //为什么没有default,因为把变量封装起来后,添加了一些判定条件就不会出现不想要的情况。 switch(option){ case '+': System.out.println("做加法运算,结果是:"+(num1+num2)); break; case '-': System.out.println("做减法运算,结果是:"+(num1-num2)); break; case '*': System.out.println("做乘法运算,结果是:"+(num1*num2)); break; case '/': System.out.println("做除法运算,结果是:"+(num1/num2)); break; } } } class Demo1{ public static void main(String[] args) { //创建了一个计算器对象 Calculator c = new Calculator(); //设置属性值 c.initCalculator(1,2,'a'); //调用计算器的计算功能 c.calculate(); } }
3、效果:
相关文章推荐
- c++面向对象三大特征封装、继承和多态知识总结
- 那些年一起学过的面向对象之:4 面向对象的三大特征:封装、继承、多态
- java面向对象三大特征 — 封装
- 面向对象的三大特征——封装、继承、多态
- 面向对象三大特征一——封装
- 面向对象三大特征---封装、继承、多态
- 黑马程序员——面向对象三大特征(封装、继承、多态)
- 【职坐标】java面向对象三大特征(一)——封装
- Java面向对象三大特征之封装
- java面向对象的三大特征:封装,继承,多态
- c++面向对象三大特征封装、继承和多态知识总结
- php面向对象的三大特征 封装,继承,多态
- Java面向对象三大特征:封装、继承、多态
- 面向对象三大特征:封装、继承、多态
- 面向对象的三大特征-封装,继承,多态
- #码神心得_08# 面向对象三大特征——封装、继承、多态
- 面向对象三大特征之封装与static——(Java学习笔记四)
- 浅谈Java面向对象三大特征--封装,多态
- 面向对象的三大特征:继承,封装,多态
- OC面向对象的三大特征(封装 继承 多态)习题3 多态