先看一个未封装的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. pycharm 创建文件时,自动添加文件头注释

    File->settings->Editor->File and Code Templates->Python Script # -*- coding: utf-8 -*- & ...

  2. pycharm和anaconda

    借鉴其他博文和亲自操作做一简要的总结: anaconda是python中一个管理包很好用的工具,可以轻松实现python中的各种包的管理.相信大家会有这样的体验,在pycharm中也是有自动搜索和下载 ...

  3. 7-性能测试i报告

    性能测试报告概述 1.测试报告是指把测试的过程和结果写成文档:对发现的问题和缺陷进行分析:为纠正软件的存在的质量问题提供依据: 为软件验收和交付打下基础 2.性能测试报告属于软件测试报告的一种,主要针 ...

  4. Python3实战系列之一(获取印度售后数据项目)

    问题:公司在印度开设生产工厂并在当地销售手机,生产.销售系统均由印度开发维护.对总部需要的售后数据,采用每日在ftp上提供一个.xlsx文件,给总部使用.总部需要将此数据导入到总部的销量统计系统中,以 ...

  5. 【WebService】WebService基础知识(一)

    WebService是什么? 1. 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据) 2. 一个跨语言.跨平台的规范(抽象) 3. 多个跨平台.跨语言的应用间通信整合的方案(实际) ...

  6. JS高级-String- RegExp- Math- Date:

    1. String: 切割: 将一个字符串,按指定分隔符,切割为多段子字符串 简单切割: 切割符是固定的 var arr=str.split("切割符") 强调: 切割后的结果中, ...

  7. Django之admin管理数据库,cookie验证及分页设置

    一.admin管理数据库 1)models.py创建class类表 class Book(models.Model): name=models.CharField(max_length=) price ...

  8. ios alloc init 和 new 的区别

    1.在实际开发中很少会用到new,一般创建对象咱们看到的全是[[className alloc] init] 但是并不意味着你不会接触到new,在一些代码中还是会看到[className new], ...

  9. 关于java项目中的XML文件

    一,xml的机制 1.xml文件会在服务器启动的时候进行加载 2.加载完成后根据xml文件里面配置的属性对集成的对象进行属性和行为赋予 3.xml会有很多不同的标签,每个标签都有它特定的含义 二.为什 ...

  10. Codeforces Round #546 (Div. 2) D 贪心 + 思维

    https://codeforces.com/contest/1136/problem/D 贪心 + 思维 题意 你面前有一个队列,加上你有n个人(n<=3e5),有m(m<=个交换法则, ...