封装的概念---(Java版)
简言:封装是一个非常广泛的概念,小到对一个属性,一个变量的封装,大到一个项目,一个框架的封装。但是我们还需要学习Java中的三个基本特性就是封装,继承,多态,我们可以看到封装就是Java中的三大特性之一,这个特性是我们必须要重点掌握的。
比如:我们的电脑机盒就是一个十分简单的封装。
public class Ecap1 {public int age;public String name;public double height;
}
这里写了一个类,这类里面有age,name,height属性,再继续观察下面的实现类。
public class test {public static void main(String[] args) {Ecap1 ecap1 = new Ecap1();ecap1.age = -10;ecap1.height = -1.88;ecap1.name = "浩林";System.out.println("age:"+ecap1.age);System.out.println("name:"+ecap1.name);System.out.println("height:"+ecap1.height);} }
我们可以看见我们age和height赋值的时候,age和height是不可能是负数的,这里我们就提出来封装的概念。
解决方法
package cv.mbzreview.encapsulation;public class Ecap1 {private int age;private String name;private double height;public int getAge() {return age;}public void setAge(int age) {if(age<0){System.out.println("输入的age的格式错误,请重新输入:");this.age = age;}else {this.age = age;}}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getHeight() {return height;}public void setHeight(double height) {if(height<1.70){System.out.println("您的年龄不符合要求,谢谢!");this.height = height;}else {this.height = height;}} }
这里我们用到了settter,getter访问器,我们可以给属性值做一定的封装如上面代码所示。
同时我们把属性值改为了private访问修饰符。这里的访问修饰符只能被本类使用。
我们可以看见我们的实现类里面是不能调用private的访问属性的,所以这里的setter和getter访问器就起到非常大的作用。
我们对属性的封装在这里就起到了他的关键作用。
封装的概念---(Java版)相关推荐
- 抽象类、抽象方法、封装的概念、接口的含义(Java 从自学到就业 第12天)
Java 学习记录 第十二天 由于本渣渣是前端转行Java,所以编辑器的选择就直接用 webstorm 同公司的 idea 接下来的知识梳理有一部分会借鉴大佬 廖雪峰的博客 学习目标 结合抽象类对多态 ...
- 常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构)
常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构) 数据结构和算法作为程序员的基本功,一定得稳扎稳打的学习,我们常见的框架底层就是各类数据 ...
- Java:封装的概念,UML类图,构造方法,this关键字,static关键字,方法重载,包package
oop三大特性:封装,继承,多态 oop一般指面向对象程序设计(一种计算机编程架构) 一.封装的概念: 将东西包在一起,然后以新的完整形式呈现出来 ...
- JAVA SE、EE、ME,JRE、JDK,基本数据类型,访问修饰符、函数、封装的概念、UML类图、构造方法、this关键字、static关键字、方法重载、方法重写、包(packahe)
运行第一个JAVA程序: 这里使用的开发环境是eclipse,新建一个java工程,然后可以看到src这个是存放java代码的地方,然后在src文件右击新建一个class(类),然后可以看到下图,同样 ...
- java 封装的概念_java封装的概念
继承.封装.多态.抽象是面向对象编程的四大基本概念,其中封装尤为重要,因为从我们学习JAVA开始,就基本上接触了封装,因为JAVA中的所有程序都是写在类中的,类也能当做一种封装. 在面向对象中封装是指 ...
- 第三篇 :微信公众平台开发实战Java版之请求消息,响应消息以及事件消息类的封装...
微信服务器和第三方服务器之间究竟是通过什么方式进行对话的? 下面,我们先看下图: 其实我们可以简单的理解: (1)首先,用户向微信服务器发送消息: (2)微信服务器接收到用户的消息处理之后,通过开发者 ...
- Wind(万得)原生TDBAPI(JAVA版)封装成 WEB API (Demo版)
##1. 引言## 目前项目使用了开源的vnpy框架来做量化交易(python版), 但是公司采购的wind历史数据TDBAPI没有python版(只有C++版,JAVA版,C#版,matlab版). ...
- 2020年 第11届 蓝桥杯 第2次模拟赛真题详解及小结【Java版】
蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...
- Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据流程分析【转】
Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据&流程分析 QQ空间说说抓取难度比较大,花了一个星期才研究清楚! 代码请移步到GitHub GitHub地址:http ...
最新文章
- LDO和DC-DC的区别
- EOS 共识机制 (3)DPOS+BFT
- 含类定义的完整python程序_Python——变量,运算,条件,循环
- 矢量合成和分解的法则_重点解析丨抛体运动 之 运动的合成与分解
- Ajax — 第一天
- java空类型方法无参_类的无参方法
- 怎么更改wifi频段_wifi信号差?网速慢?这样做不浪费每一兆宽带
- linux2.4.18内核定时器的使用
- MAC下ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
- WPS office根目录在哪?_WPS加载项深入开发代码解析-2
- 计算机软件进费用什么科目,购买软件费用如何记账?
- 日语---之百度百科
- VC编程——QQ连连看外挂
- dns服务器修改失败,dns错误重新设置方法
- Go整合Logrus实现日志打印
- 英特尔芯片漏洞比想象中更严重:控制计算机无需密码
- 【Java工程中出现问题】XXX has been compiled by a more recent version of the Java Runtime
- Flutte 之TextFile(文本输入框)
- JavaScript实现阿拉伯数字转中文数字
- pat L1-057 PTA 使我精神焕发