面向对象第一个特征-封装(Encapsulation)

                             作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.封装概述(Encapsulation)

1>.什么是封装

  是指隐藏对象的熟悉和实现细节,仅对外提供访问方式。说白了就是将数据和操作组织到类中,即属性和方法。

2>.封装的好处

  将变化隔离

  便于使用

  提高重用性

  提高安全性

3>.封装原则

  将不需要对外提供的内容都隐藏起来。

  把数据都隐藏,提供公共方法对其访问。

二.private(私有)关键字

  private关键字:
    是一个权限修饰符,用于修饰成员变量(包括属性和成员函数),被私有化的成员只在本类中有效。   常用场景:
    将成员变量私有化,对外提供对应的getter,setter方法对其进行访问。提高堆数据访问的安全性。   私有是封装的一种体现形式。

三.代码封装案例

1>.定义Person类对age属性进行封装

/**
*
* @author 尹正杰
*
*/
public class Person {
String name; //将age变量私有化,此时只有当前类可以范围该变量
private short age; public void speak() {
System.out.println("My name is " + name + ", 我今年" + age + "岁啦!");
} //定义setter方法
public void setAge(short num) {
if(num > 0 && num <= 150) {
age = num;
}else {
System.out.println("Error: 您给定的年龄不合法,age字段赋值失败,正确范围为(0,150]");
}
} //定义getter方法
public int getAge() {
return age;
}
}

2>.编写PersonDemo.java代码

/**
*
* @author 尹正杰
*
*/
public class PersonDemo { public static void main(String[] args) {
Person p1 = new Person();
short age = 18; p1.name = "尹正杰"; p1.setAge(age); p1.speak();
}
}

 

面向对象第一个特征-封装(Encapsulation)的更多相关文章

  1. Java基础-面向对象第一特性之封装(Encapsulation)

    Java基础-面向对象第一特性之封装(Encapsulation) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.理解什么是面向过程和面向对象 面向过程与面向对象都是我们编程中 ...

  2. 面向对象的三大特征——封装、继承、多态(&常用关键字)

    一.封装 Encapsulation 在面向对象程式设计方法中,封装是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装的概念(针对服务器开发,保护内部,确保服务器不出现问题) 将类的 ...

  3. php面向对象的三大特征 封装,继承,多态

    对象的主要三个特性 对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为. 对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型. 对象的表示:对象的表示就相当于身份证,具体区分在相同的行为 ...

  4. Python面向对象的三大特征 --- 封装、继承、多态

    一.封装 1)封装:是面向对象的一大特点:将属性和方法封装在一个抽象类中.外界使用类创建对象,然后让对象调用内部方法.对象方法的细节都被封装在类的内部. class Person():   def _ ...

  5. python面向对象的三大特征--封装

    #coding:utf-8 __author__="tang" #第一个层面的封装:类就是麻袋,本身就是一种封装 #第二个层面的封装:类中定义私有的,只在类的内部使用,外部无法访问 ...

  6. JAVA面向对象:三大特征 封装讲解

    一.JAVA封装 1.封装的理解 封装是 JAVA 面向对象思想的 一 种特性,也是一种信息隐蔽的技术 2.封装的原则 将类中的某些信息隐藏起来,来防止外部程序直接访问,通过类中的方法实现对隐藏的信息 ...

  7. Python面向对象初始(三大特征,多态,继承,封装)

    Python面向对象的初始 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的 ...

  8. Java面向对象的三大特征和五大原则

    Java面向对象的三大特征 封装 封装(Encapsulation)是指属性私有化,根据需要提供setter和getter方法来访问属性.即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问 ...

  9. 03_Java面向对象特征: 封装性

    1. 面向对象的概念 面向对象是相对面向过程而言,面向对象和面向过程都是一种思想 面向过程• 强调的是功能行为面向对象• 将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象 ...

随机推荐

  1. 二、js中基础知识

    该篇文章主要是强化一下自己javaScript的基础,让写代码变得更轻松些.基础好的请忽略.    JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解 ...

  2. java 学习地址

    数组 JAVA中数组排序小结 Java中ArrayList和LinkedList区别    在往里面插入数据时.LinkedList会比ArrayList快很多,因为前者仅仅做了一个类型的插入,而后者 ...

  3. R语言 subset()函数用法

    subset() 函数: subset(dataset , subset , select ) dataset 是 要进行操作的数据集 subset 是对数据的某些字段进行操作 select 选取要显 ...

  4. 启动nginx出错:open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)

    [emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory) 解决:mkdir / ...

  5. 搭建solr集群的时候出现 ./zkcli.sh:行13: unzip: 未找到命令

    主要的原因是: linux系统下面没有安装压缩解压工具    zip 和 unzip:需要我们自己手动的安装: 利用yum命令安装即可: yum install -y unzip zip

  6. DatePicker和DataPickerDialog以及AutoCompleteTextView的基本使用方法

    1.DatePicker和DatePickerDialog的基本使用方法: main.xml: <?xml version="1.0" encoding="utf- ...

  7. pycharm连接mysql数据库的时区问题.

    登录到mysql的控制台, 执行: set global time_zone='+8:00'; 这设置的是全局时区,重启后失效. 自MySQL 8.0 GA版本开始支持将参数写入并且持久化: set ...

  8. Masonry与UITableView+FDTemplateLayoutCell搭配使用

    打个小广告:本人开发了一个宠物相关的App,欢迎大家下载体验~ 下载二维码: 进入正文: 之前发过一篇博客,也是对这两个的练习使用,但是之后遇到些问题,所以删除重写了.抱歉 Masonry是一款轻量级 ...

  9. Golang函数-递归函数

    Golang函数-递归函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  10. Codeforces 546 E:士兵的旅行 最大网络流

    E. Soldier and Traveling time limit per test 1 second memory limit per test 256 megabytes input stan ...