面向对象第一个特征-封装(Encapsulation)
面向对象第一个特征-封装(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)的更多相关文章
- Java基础-面向对象第一特性之封装(Encapsulation)
Java基础-面向对象第一特性之封装(Encapsulation) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.理解什么是面向过程和面向对象 面向过程与面向对象都是我们编程中 ...
- 面向对象的三大特征——封装、继承、多态(&常用关键字)
一.封装 Encapsulation 在面向对象程式设计方法中,封装是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装的概念(针对服务器开发,保护内部,确保服务器不出现问题) 将类的 ...
- php面向对象的三大特征 封装,继承,多态
对象的主要三个特性 对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为. 对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型. 对象的表示:对象的表示就相当于身份证,具体区分在相同的行为 ...
- Python面向对象的三大特征 --- 封装、继承、多态
一.封装 1)封装:是面向对象的一大特点:将属性和方法封装在一个抽象类中.外界使用类创建对象,然后让对象调用内部方法.对象方法的细节都被封装在类的内部. class Person(): def _ ...
- python面向对象的三大特征--封装
#coding:utf-8 __author__="tang" #第一个层面的封装:类就是麻袋,本身就是一种封装 #第二个层面的封装:类中定义私有的,只在类的内部使用,外部无法访问 ...
- JAVA面向对象:三大特征 封装讲解
一.JAVA封装 1.封装的理解 封装是 JAVA 面向对象思想的 一 种特性,也是一种信息隐蔽的技术 2.封装的原则 将类中的某些信息隐藏起来,来防止外部程序直接访问,通过类中的方法实现对隐藏的信息 ...
- Python面向对象初始(三大特征,多态,继承,封装)
Python面向对象的初始 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的 ...
- Java面向对象的三大特征和五大原则
Java面向对象的三大特征 封装 封装(Encapsulation)是指属性私有化,根据需要提供setter和getter方法来访问属性.即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问 ...
- 03_Java面向对象特征: 封装性
1. 面向对象的概念 面向对象是相对面向过程而言,面向对象和面向过程都是一种思想 面向过程• 强调的是功能行为面向对象• 将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象 ...
随机推荐
- 微信二次分享的JSSDK的调用
网页端微信的二次分享如果不调用分享的SDK,分享之后就不会带有标题.描述 .缩略图 微信分享SDK调用 引入 <script src="//res.wx.qq.com/open/js/ ...
- java虚拟机之内存分配
Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配.同时,Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收. JDK1.8之前的堆内存示意图: 从上图可以看出堆内存分为新 ...
- 项目启动异常,java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' befo ...
- 学习SpringBoot零碎记录——配置应用URL名称
学习SpringBoot配置应用名称,结果发现坑 到网上找 到 https://blog.csdn.net/qq_40087415/article/details/82497668 server: p ...
- git/github error: failed to push some refs to 'https://github.com/shenhaha/cloudletter.git'
git 提交代码到github上报如下错误 报错分析: 解决方法: 关闭这两个设置 再次提交代码 success
- 【Unity】鼠标划定范围然后截图~
有时候要重复用某一个场景的某一个角度,都过去好几步了结果总不能再把已经打乱的场景物体再移动回去吧.so~智慧的我完成了伟大的偷懒.截图保存,什么时候要看,直接上图片以假乱真棒棒哒~ 当然这个功能还能用 ...
- #$d#$a什么意思
#$d#$a什么意思 qjh.693111级分类:外语被浏览37次2013.05.12 满意答案 vgrwi 采纳率:50%12级 2013.05.13 回车换行 换成十进制就是 #13#10
- 关于netty配置的理解serverBootstrap.option和serverBootstrap.childOption
The parameters that we set using ServerBootStrap.option apply to the ChannelConfig of a newly create ...
- 【pwnable.tw】 death_note
题目逻辑比较简单,大概增加和删除和打印三个功能: show函数中,打印各日记内容,由于这题没有给出libc文件,应该不需要泄露地址,估计用处不大: delete函数中,正常的free,然后指针修改为n ...
- redis cluster 添加/删除节点操作
RedisCluster 添加/删除节点 添加节点新配置两个测试节点8008和9009 [root@--- ~]# /usr/local/redis-/bin/redis-server /u02/re ...