Java 封装
什么是封装呢?
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式;
这样做带来的好处:
- 隐藏实现细节,提供公共的访问方式;
- 提高了代码的复用性;
- 提高安全性;
封装原则:
- 将不需要对外提供的内容都隐藏起来;
- 把属性隐藏,提供公共方法对其访问;
其实就上一节我们也提到了,我们开车,并不需要了解车的内部结构,我们只需要知道车提供了几个操作就可以了!
我们还是看同样的例子, 但是小修改了下
package com.pangugle.test;
public class Car {
private int mSpeed = 0;
public void go()
{
this.mSpeed = 1;
System.out.println("开车...... 当前车速为 " + mSpeed);
}
public void doAddSpeed()
{
this.mSpeed += 1;
System.out.println("踩油门加速...... 当前车速为 " + mSpeed);
}
public void doBrakes()
{
this.mSpeed -= 1;
System.out.println("踩刹车减速...... 当前车速为 " + mSpeed);
}
public void stop()
{
this.mSpeed = 0;
System.out.println("车熄火! 当前车速为 " + mSpeed);
}
public int getSpeed()
{
return this.mSpeed;
}
public static void main(String[] args)
{
Car car = new Car();
car.go();
car.doAddSpeed();
car.doBrakes();
car.stop();
}
}
运行结果如下
开车...... 当前车速为 1
踩油门加速...... 当前车速为 2
踩刹车减速...... 当前车速为 1
车熄火! 当前车速为 0
这个类有五个方法
- go()
- doAddSpeed()
- doBrakes()
- stop()
- getSpeed();
就是表示这个车的五个行为,而这五个方法就是封装在Car这个类里!
mSpeed 这个是车的速度参数,外部是拿不到的;
说白一点,别人找你借钱,总不能别人直接从你的口袋直接拿钱包吧! 就是这个道理,所以你需要用自己的手从口袋拿钱包,并把钱拿给他! 因此在这个car里,我们添加了一个getSpeed()方法,这样外部想获取当前车速,就可以通过因此在这个car里,我们添加了一个getSpeed() 获取!