先看一个未封装的Demo案例一:

package android.java.oop03;

class Person {

    int age;

}

public class PottingDemo {

    public static void main(String[] args) {
Person person = new Person();
person.age = -200; System.out.println("年龄是:" + person.age);
} }

执行结果:

    年龄是:-200


封装后的Demo案例一:

package android.java.oop03;

class Person {

    /**
* 加入私有private,不对外暴露
*/
private int age; public void setAge(int age) { if (age < 0 || age > 200) {
throw new IllegalArgumentException("setAge age值不规范,age value:" + age);
} this.age = age;
} public int getAge() {
return age;
}
} public class PottingDemo { public static void main(String[] args) {
Person person = new Person();
person.setAge(9); System.out.println("年龄是:" + person.getAge());
} }

执行结果:

    年龄是:9


未封装的案例代码 案例二:

package android.java.oop03;

class Counter {

    int add(int number1, int number2) {
return number1 + number2;
} int jian(int number1, int number2) {
return number1 - number2;
} int cheng(int number1, int number2) {
return number1 * number2;
} int chu(int number1, int number2) {
return number1 / number2;
} void doCounter(int number1, String f, int number2) { int result; if ("+".equals(f)) {
result = add(number1, number2);
} else if ("-".equals(f)) {
result = jian(number1, number2);
} else if ("*".equals(f)) {
result = cheng(number1, number2);
} else if ("/".equals(f)) {
result = chu(number1, number2);
} else {
throw new IllegalArgumentException("传入的运算符 有异常,不能是 f" + f);
} println(result);
} void println(int result) {
System.out.println("运算的结果是:" + result);
}
} public class PottingDemo2 { public static void main(String[] args) {
Counter counter = new Counter();
counter.doCounter(8, "+" ,8);
counter.doCounter(20,"-", 10);
counter.doCounter(9, "*", 9);
counter.doCounter(100,"/",2);
} }

执行结果:

运算的结果是:16
运算的结果是:10
运算的结果是:81
运算的结果是:50

封装的案例代码 案例二:

package android.java.oop03;

class Counter {

    private int add(int number1, int number2) {
return number1 + number2;
} private int jian(int number1, int number2) {
return number1 - number2;
} private int cheng(int number1, int number2) {
return number1 * number2;
} private int chu(int number1, int number2) {
return number1 / number2;
} public void doCounter(int number1, String f, int number2) { int result; if ("+".equals(f)) {
result = add(number1, number2);
} else if ("-".equals(f)) {
result = jian(number1, number2);
} else if ("*".equals(f)) {
result = cheng(number1, number2);
} else if ("/".equals(f)) {
result = chu(number1, number2);
} else {
throw new IllegalArgumentException("传入的运算符 有异常,不能是 f" + f);
} println(result);
} private void println(int result) {
System.out.println("运算的结果是:" + result);
}
} public class PottingDemo2 { public static void main(String[] args) {
Counter counter = new Counter();
counter.doCounter(8, "+" ,8);
counter.doCounter(20,"-", 10);
counter.doCounter(9, "*", 9);
counter.doCounter(100,"/",2);
} }

执行结果:

运算的结果是:16
运算的结果是:10
运算的结果是:81
运算的结果是:50


1.封装可以自定义隐藏细节(private),自定义对外提供接口(public);

2.封装可以提高安全性,private;

3.封装可以提高复用性

举例:  

未封装的表现:把 主版,电源,这些零件全部摆放在桌子上,每次开机时,用金属物触碰主板上的开机卡槽来开机;
1.不安全,万一不小心把水倒在主板上
2.暴露了细节

封装的表现:把 主板 电源,这些零件全部用机箱封装起来(隐藏细节),对外提供暴露的接口(USB,显示器,网卡等,开机开关);
1.安全,被封装了,受保护了
2.隐藏了细节

Android-Java-封装的更多相关文章

  1. # 095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 03 封装总结 01 封装知识点总结

    095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  2. 094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 04 static关键字(续)

    094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  3. 093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 03 static关键字(下)

    093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  4. 092 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 02 static关键字(中)

    092 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  5. 091 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 01 static关键字(上)

    091 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  6. 090 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 04 使用包进行类管理(2)——导入包

    090 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  7. 089 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 使用包进行类管理(1)——创建包

    089 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  8. 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现

    088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现 本文知识点:Java封装的代码实现 说明:因为时间紧张,本人写博客过程中只 ...

  9. 087 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 01 封装的概念和特点

    087 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 01 封装的概念和特点 本文知识点:封装的概念和特点 说明:因为时间紧张,本人写博客过程中只是对 ...

  10. [Android] Java Basic : preview

    基础教学:lecture, video, lecturer: Matt Stoker Java教学:http://www.runoob.com/java/java-intro.html[菜鸟教程,非常 ...

随机推荐

  1. 清晰易懂!关于PS入门的超详细笔记!

    给大家分享一篇关于PS入门的超详细笔记!原理讲解清晰明了,虽不是新版本解析,但都是新手学习PS必掌懂的一些知识点,灰常的实用,转走收藏学习! 编辑:千锋UI设计 来源:PS学堂

  2. The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone问题解决

    从错误即可知道是时区的错误,因此只要将时区设置为你当前系统时区即可 因此使用root用户登录mysql,按照如下图所示操作即可. 把时区设置为所在地时区(即东八区的时区)后,再连接数据库就可以了

  3. MySQL8.0的安装与配置(Windows 10)

    MySQL的下载 进入MySQL官网 https://www.mysql.com/ 选择 DOWNLOAD 到页面底部找到 MySQL Community Edition (GPL) 找到MySQL ...

  4. JVM 系列(二)内存模型

    02 JVM 系列(二)内存模型 一.JVM 内存区域 JVM 会将 Java 进程所管理的内存划分为若干不同的数据区域.这些区域有各自的用途.创建/销毁时间: 一. 线程私有区域 线程私有数据区域生 ...

  5. servlet 知识点 WebServlet("/")与WebServlet("/*")的区别

    (1)一个servlet的请求路径,如果配置成"/",那么它可以拦截除了.jsp之外的所有的请求. (2)一个servlet的请求路径,如果配置成"/*",那么 ...

  6. 求一个数的n次幂

    1.当这个数是2的多少次幂: 求(2^m)^n  =  2^(m*n) = 1<<m*n; 2.快速幂(要考虑底数a,和m的正负) int quick_mod(int a,int m){ ...

  7. ssh定义、操作

    Secure Shell(縮寫为SSH)SSH為一项建立在应用层和传输层基础上的安全协议,为计算机上的Shell(壳层)提供安全的传输和使用环境. 传统的网络服务程序,如rsh.FTP.POP和Tel ...

  8. ps中为什么在图片上面添加不了文字

    我们在使用PS对某些图片进行处理时,往往会添加一些文字:但有时因图片格式问题,导致添加文字是一个小黑点,无法看清,下面就为大家讲解一下具体的处理方法. 工具/原料   Photoshop CS5.图片 ...

  9. nginx 502 Bad Gateway 错误解决办法

    nginx出现502有很多原因,但大部分原因可以归结为资源数量不够用,也就是说后端PHP-fpm处理有问题,nginx将正确的客户端请求发给了后端的php-fpm进程,但是因为php-fpm进程的问题 ...

  10. Query - noConflict() 方法

    ps:菜鸟教程 如何在页面上同时使用 jQuery 和其他框架? noConflict() 方法会释放对 $ 标识符的控制,这样其他脚本就可以使用它了. 当然,您仍然可以通过全名替代简写的方式来使用 ...