先看一个未封装的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. C++变量存储类别和内存四区

    变量存储类别 变量声明/定义的一般形式: 存储类别 数据类型 变量名 存储类别指的是数据在内存中存储的方法.存储方法分为静态存储和动态存储两大类.标准C语言为变量.常量和函数定义了4种存储类型:ext ...

  2. Maven 下载安装

    http://www.runoob.com/maven/maven-tutorial.html https://www.yiibai.com/maven/ Maven 提倡使用一个共同的标准目录结构, ...

  3. How to make a USB stick use ISO image file in debian

    4.3.1. Preparing a USB stick using a hybrid CD or DVD image Debian CD and DVD images can now be writ ...

  4. Python之路(第八篇)Python内置函数、zip()、max()、min()

    一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回t ...

  5. 第一个spring boot 程序

    安装.运行.预览省略 错误1:8080端口被IIS占用,关闭它 Description: The Tomcat connector configured to listen on port 8080 ...

  6. 开发apicloud模块遇到的几个梗

    2017-06-04 原来模块中不能的R.id.xxx,只能用UZResourcesIDFinder.getResIdID("mo_minivr_framecontainer") ...

  7. 安装ADT和ADK到eclipse

    1.安装好JDK后,配置一下环境变量: 为了配置JDK的系统变量环境,我们需要设置三个系统变量,分别是JAVA_HOME,Path和CLASSPATH.下面是这三个变量的设置防范. JAVA_HOME ...

  8. ubuntu14上安装nltk

     安装nltk 1)在buntu终端命令键入:wget https://bootstrap.pypa.io/ez_setup.py,下载ez_setup.py. 2)下载完成后后,键入:sudo py ...

  9. [C#.Net]启动外部程序的几种常用方法汇总

    本文汇总了C#启动外部程序的几种常用方法,非常具有实用价值,主要包括如下几种方法: 1. 启动外部程序,不等待其退出. 2. 启动外部程序,等待其退出. 3. 启动外部程序,无限等待其退出. 4. 启 ...

  10. Python开课复习10

    # 储备知识:# 函数的使用应该分为两个明确的阶段# 1. 定义阶段:只检测语法,不执行函数体代码def func(): print('from func')# 2. 调用阶段:会触发函数体代码的执行 ...