java封装实例用法讲解
我们可以选择把类的方法、属性装起来,便于日后的程序书写和使用,这种处理方法就是封装的思想。因为封装类之后,其他的外部类方法就不能在混入其中,对代码的安全性进行了提高。接下来我们就对java中封装的概念、目的进行介绍,然后在实例中为大家演示封装的方法。
1.概念
封装性是面向对象三大特征之一,是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
2.目的
(1)辛苦一次,后面都能少敲很多代码,增强了代码得复用性
(2)简化代码,看起来更容易懂
(3)隐藏核心实现逻辑代码,简化外部逻辑,并且不让其他人修改,jar 都这么干
(4)一对一,一个功能就只为这个功能服务;避免头发绳子一块用,导致最后一团糟
3.实例
编写一个包含名为Calculator类的程序。定义两个整型属性以及对该两个变量的setter和getter,编写用于对两个属性执行加、减、乘、除运算方法。在main方法里创建该类的对象并访问这些方法。
package Qingdenggufuo; public class Calculator { private int a;//定义属性 private int b; int c; public void setA(int a){ //构造方法 this.a=a; } public int getA(){ return a; //返回到private int a; } public void setB(int b){ this.b=b; } public int getB() { return b; } public void augment(){ //方法 c=a+b; System.out.println(c); } public void reduce(){ c=a-b; System.out.println(c); } public void ride(){ c=a*b; System.out.println(c); } public void divide(){ c=a/b; System.out.println(c); } }
内容扩展:
为什么需要封装
通过封装,可以实现对属性的数据访问限制,同时增加了程序的可维护性。
由于取值方法和赋值方法隐藏了实现的变更,因此并不会影响读取或修改该属性的类,避免了大规模的修改,程序的可维护性增强。
如何实现封装,实现封装的具体方法
(1)、修改属性的可见性来限制对属性的访问。
(2)、为每个属性创建一对赋值方法和取值方法,用于对这些属性的访问。
(3)、在赋值和取值方法中,加入对属性的存取的限制。
到此这篇关于java封装实例用法讲解的文章就介绍到这了,更多相关java封装是什么内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Java封装数组之动态数组实现方法详解
本文实例讲述了Java封装数组之动态数组实现方法.分享给大家供大家参考,具体如下: 前言:在此之前,我们封装的数组属于静态数组,也即数组空间固定长度,对于固定长度的数组当元素超过容量时会报数组空间不足.为了能更好的使用数组,我们来实现一个可以自动扩充容量的数组. 实现思路: 1.当数组容量达到事先定义值时创建一个空间是data数组两倍的newData数组(扩容): 2.把data数组中的元素全部赋值到newData数组中: 3.把data数组重新执行newData数组. 一.定义核心扩容方法 /
-
Java封装数组实现在数组中查询元素和修改元素操作示例
本文实例讲述了Java封装数组实现在数组中查询元素和修改元素操作.分享给大家供大家参考,具体如下: 前言:在上一小节中,我们已经对如何往数组中添加一个元素的方法进行了编写,此节中我们就如何查询出数组中元素与修改元素的方法进行编写. 在数组中,数据是存储在私有变量data中的,若我们想知道打印输出一些关于data中数据相关信息,我们可以使用toString()方法,在java中,该方法需要每个类自定义重写实现,针对该类,自定义如下: @Override public String toString
-
Java封装数组之改进为泛型数组操作详解
本文实例讲述了Java封装数组之改进为泛型数组操作.分享给大家供大家参考,具体如下: 前言:通过上一节我们对我们需要封装的数组,进行了基本的增删改查的封装,但只局限于int类型的操作,为了能提供多种类型数组的操作,我们可以将其进一步封装为泛型数组. 1.定义泛型数组相关概念 (1)泛型数组让我们可以存放任何数据类型 (2)存放的类型不可以是基本数据类型,只能是类对象 基本类型: boolean.byte.char.short.int.long.float.double (3)每个基本数据类型都有
-
Java封装统一的Result Model案例
在开发过程中,有时候会需要使用错误码+错误信息的形式,来返回某些业务操作的错误结果信息,来代替效率较低的异常传递. 这样就需要封装一个统一的Result model作为返回值,代替直接返回数据等结果. 1.定义错误码 - 错误信息接口 错误码可能是String.Integer.Long 等类型,也可能是enum类型.因此这里使用泛型来代替,错误码类型,可以提高灵活性 .也可以通过枚举直接实现CodeMessage接口. public interface CodeMessage<C>{ C ge
-
Java封装数组实现包含、搜索和删除元素操作详解
本文实例讲述了Java封装数组实现包含.搜索和删除元素操作.分享给大家供大家参考,具体如下: 前言:在上一小节中我们已经会了如何获取和如何修改数组中的元素,在本小节中我们将继续学习如何判断某个元素是否在数组中存在.查询出某个元素在数组中的位置.以及删除数组中元素等方法的编写. 1.查找数组中是否包含元素e,返回true或false //查找数组中是否包含元素e public boolean contains(int e) { for (int i = 0; i < size; i++) { if
-
java封装实例用法讲解
我们可以选择把类的方法.属性装起来,便于日后的程序书写和使用,这种处理方法就是封装的思想.因为封装类之后,其他的外部类方法就不能在混入其中,对代码的安全性进行了提高.接下来我们就对java中封装的概念.目的进行介绍,然后在实例中为大家演示封装的方法. 1.概念 封装性是面向对象三大特征之一,是指一种将抽象性函式接口的实现细节部份包装.隐藏起来的方法.封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问. 2.目的 (1)辛苦一次,后面都能少敲很多代码,增强了代码得复用性
-
java SelectableChannel的使实例用法讲解
1.说明 (1)SelectableChannel 是一个抽象类,它实现了 Channel 接口,这个类比较特殊. (2)SelectableChannel 可以被 Selector 用来多路复用,不过首先需要调用 selectableChannel.configureBlocking(false) 调整为非阻塞模式. 2.实例 SelectionKey register(Selector sel, int ops) SelectionKey register(Selector sel, int
-
php中yar框架实例用法讲解
RPC是在TCP协议上面的网络传输和远程服务调用,通过TCP来进行数据传输.底层都是tcp,更高层的封装.因此这就是应用间通信间不直接用TCP,而是选用RPC框架的原因,本章教学内容就是给大家带来rpc中yar框架的使用,内容简单明了,希望对每一位在学习php道路上的小伙伴都能得到掌握了解. 编译: /usr/local/php/bin/phpize 配置: extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-201707
-
Python-split()函数实例用法讲解
在Python中,split() 方法可以实现将一个字符串按照指定的分隔符切分成多个子串,这些子串会被保存到列表中(不包含分隔符),作为方法的返回值反馈回来. split函数用法 split(sep=None, maxsplit=-1) 参数 sep – 分隔符,默认为所有的空字符,包括空格.换行(\n).制表符(\t)等. maxsplit – 分割次数.默认为 -1, 即分隔所有. 实例: // 例子 String = 'Hello world! Nice to meet you' Stri
-
python中waitKey实例用法讲解
1.说明 用于等待按钮.当用户按下按钮时,句子将被执行并获得返回值. 2.语法 retval=cv2.waitKey([delay]) Retval:表示返回值: Delay:键触发的时间,单位为ms. 3.实例 import cv2 lena=cv2.imread("D:\pmjcv\lena.bmp") cv2.namedWindow("lesson") cv2.imshow("lesson",lena) key=cv2.waitKey()
-
Java之JsonArray用法讲解
需求: 四个字符串: "[\"HDC-51\"]", "[\"HDC-51\", \"HDC-55\"]", "[\"HDC-50\", \"HDC-55\", \"HDC-55-2\"]", "[\"HDC-51\", \"HDC-55\", \"HDC-55-2\&
-
python中if-elif-else语句实例用法讲解
1.判断多个条件的语句,if为真则执行if后面的语句. 2.如果elif是真的,则执行elif,后面的代码块不执行. 3.如果if和elif不满意,执行else语句. 实例 if expression: statements... elif expression: statements... # 可以有1条或多条elif语句 else: statement... 知识点扩充: 有的时候,一个 if - else - 还不够用.比如,根据年龄的划分: 条件1:18岁或以上:adult 条件2:6岁
-
java运算符实例用法总结
四则运算符 四则运算当中的加号"+"有常见的三种用法: 1.对于数值来,那就是加法. 2.对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算.char类型字符,和int类型数字之间的对照关系比表:ASCII,Unicode 3.对于字符串String(首字母大写,并不是关键字)来,加号代表字符串连操作.任何数据类型和字符串进行连接的时候,结果都会变成字符串 自增运算符:++ 自减运算符:-- 基本含义:让一个变量涨一个数字,或者让一个变量降一个数字1 使用格式
-
C语言sqrt函数的实例用法讲解
c语言sqrt函数的用法 sqrt函数用于计算一个非负实数的平方根. sqrt的函数原型: 在VC6.0中的math.h头文件的函数原型为double sqrt(double); 说明:sqrt即Square Root Calculations(平方根计算),通过这种运算可以考验CPU的浮点能力. 头文件:math.h 程序示例: #include <math.h> #include <stdio.h> int main(void) { double x = 4.0, result
-
Java之map的常见用法讲解与五种循环遍历实例代码理解
目录 一.概述: 二.Map集合的功能介绍 三.map官方总结 四.实例 五.循环遍历的五种方法 一.概述: 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 Map接口和Collection接口的不同 Map是双列的,Collection是单列的 Map的键唯一,Collection的子体系Set是唯一的 Map集合的数据结构针对键有效,跟值无关;Collection集合的数据结构是针对元素有效 二.Map集合的功能介绍 a:添加功能 V put(K key,V val
随机推荐
- php实现字符串反转输出的方法
- IOS 开发之自定义按钮实现文字图片位置随意定制
- python中string模块各属性以及函数的用法介绍
- is_uploaded_file函数引发的不能上传文件问题
- 我用php+mysql写的留言本
- js正则表达式中的问号几种用法小结
- 浅谈C/C++中的static与extern关键字的使用详解
- android基础总结篇之二:Activity的四种launchMode
- JAVASCRIPT style 中visibility和display之间的区别
- java实现的AES加密算法完整实例
- jquery ajax 同步异步的执行 return值不能取得的解决方案
- JavaScript 浮点数运算 精度问题
- node.js中的buffer.slice方法使用说明
- javascript Array.prototype.slice的使用示例
- Android获取通话时间实例分析
- Android开发中TextView 实现右上角跟随文本动态追加圆形红点
- Android开发中ImageView的scaletype属性用法分析
- 交换机的“软故障”解决经验
- FTTB+NAT+DHCP+pppoe+CBAC+vpn client+Authentication AAA
- 代码分析Python地图坐标转换