黑马程序员——JAVA基础之简述 类的封装
------- android培训、java培训、期待与您交流! ----------
类的封装(Encapsulation)
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装优点:
将变化隔离。
便于使用。
提高重用性。
提高安全性。
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句,对访问的数据进行操作,提高代码健壮性。
注意:私有仅仅是封装的一种表现形式,私有不等于封装,封装包含私有。
private(私有)关键字:
是一个权限修饰符。
用于修饰成员(成员变量和成员函数)
被私有化的成员只在本类中有效。
常用之一:将成员变量私有化,对外提供对应的set ,get方法对其进行访问。提高对数据访问的安全性。
import java.util.Scanner; /**
* 演示私有的小程序,体现封装的一部分
*
*/ class Person
{
private int age;//私有年龄,不能直接赋值
public void setAge(int age)
{
//判断年龄是否正确
if (age>0 && age<130)
{
this.age=age;
speak();
}
else
System.out.println("非法操作!");
}
public int getAge()
{
return age;
}
private void speak()
{
System.out.println("my age is: "+age);
} } class privateDemo
{
public static void main(String[] args)
{
//从键盘扫描一个整数
Scanner in = new Scanner(System.in);
System.out.print("please input age: ");
int age = in.nextInt(); //创建一个person对象
Person p = new Person();
p.setAge(age);
}
}
------- android培训、java培训、期待与您交流! ----------
黑马程序员——JAVA基础之简述 类的封装的更多相关文章
- 黑马程序员——JAVA基础之简述 类的继承、覆写
------- android培训.java培训.期待与您交流! ---------- 继承的概述: 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只 ...
- 黑马程序员——JAVA基础之简述面向对象,类,变量,匿名对象
------- android培训.java培训.期待与您交流! ---------- 面向对象: 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程 强调的是功能行为 面向对象 将 ...
- 黑马程序员——JAVA基础之File类,递归,打印流,合并切割流
------- android培训.java培训.期待与您交流! ---------- File类 用来将文件或者文件夹封装成对象 方便对文件与文件夹的属性信息进行操作. File对象可以作为参数传递 ...
- 黑马程序员——JAVA基础之简述设计模式
------- android培训.java培训.期待与您交流! ---------- 设计模式(Design Patterns) 设计模式(Design pattern)是一套被反复使用.多数人知晓 ...
- 黑马程序员——JAVA基础之简述多线程,两种创建多线程的方式
------- android培训.java培训.期待与您交流! ---------- 多线程: 进程和线程: 进程:是一个正在执行中的程序.每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或者 ...
- 黑马程序员——JAVA基础之简述集合collection
------- android培训.java培训.期待与您交流! ---------- 集合: 为什么出现集合类? • 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对 ...
- 黑马程序员Java基础班+就业班课程笔记全发布(持续更新)
正在黑马学习,整理了一些课程知识点和比较重要的内容分享给大家,也是给自己拓宽一些视野,仅供大家交流学习,大家有什么更好的内容可以发给我 ,现有黑马教程2000G QQ 1481135711 这是我总 ...
- 黑马程序员----java基础笔记中(毕向东)
<p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...
- 黑马程序员----java基础笔记上(毕向东)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...
随机推荐
- MATLAB中mexFunction函数的接口规范(转载)
MEX文件的调用极为方便,其调用方式与MATALAB的内建函数完全相同,只需要在命令窗口内输入对应的文件名称即可. C语言MEX程序代码文件有计算子例程(Computational routine)和 ...
- ssm开发的一点小技巧
一般使用反转工作生成基础bean如Items然后我们使用的实体类一般是基础bean的拓展类ItemsCustomer,继承自基础类,这个是为了方便对于表字段的更改生成的bean影响减低我们查询一般是使 ...
- ios上传应用后,审核流程完成前(reveiw)修改了程序内容,如何上传替换
其实挺简单,只需要更改下version和build版本 看图说话就可以.我的程序之前版的版本设置 修改bug之后的设置: 然后重新打包就好了,提示打包成功后,在itunesconnect查看发现 选中 ...
- Asp.Net应用运行原理
一.运行原理图 二.对于HttpModule和HttpHandler的概念可能还不是很清楚,请先看Asp.Net应用生命周期.RAR 或者 Asp.Net深入解析 第四章,流程图太大无法粘贴 三.传智 ...
- XCode之entitlement
entitlement是codesign的一个输入,参见:codesign. entitlement的意思是权力,也就是表明应用所具有的权利,可以访问什么,不能访问什么等.这些信息会在codesign ...
- (转)深入浅出 iOS 之生命周期
原文:http://www.cocoachina.com/applenews/devnews/2011/0817/3129.html 深入浅出 iOS 之生命周期 发布于:2011-08-17 10: ...
- [IE兼容性] Table 之边框 (IE6 IE7 IE8(Q) 中 cellspacing 属性在重合的边框模型的表格中仍然有效)
在 IE6 IE7 IE8(Q) 中,在通过 border-collapse:collapse 使用表格的重合边框模型后,其 cellspacing 属性仍然有效: 在 其他浏览器 中,此时的 cel ...
- 极客DIY:使用Arduino制作一块开源手表
1 – 引言 首先让我们看下这个项目要考虑到的问题: .)使用100%Arduino兼容性硬件 .)保证存储器足够大可以装下大量的稍后会扩展的新内容 .)电量最少够1天用 .)BLE既是中枢设备又是外 ...
- Kylin上chromium不能用flash的解决命令
sudo apt-get update sudo apt-get install pepperflashplugin-nonfree sudo update-pepperflashplugin-non ...
- “PEDIY CrackMe 2007” 下载地址
工欲善其事,必先利其器.本专辑收集了看雪论坛『CrackMe & ReverseMe』版块2004年4月-2006年12月31期间所有的CrackMe和ReverseMe,共350余个. 下载 ...