JAVA面向对象:三大特征 封装讲解
一.JAVA封装
1.封装的理解
封装是 JAVA 面向对象思想的 一 种特性,也是一种信息隐蔽的技术
2.封装的原则
将类中的某些信息隐藏起来,来防止外部程序直接访问,通过类中的方法实现对隐藏的信息调用和访问,使用对应的 get 和 set 方法。
3.封装的优点
隐藏信息,有利于数据安全性
举个例子,我们日常生活中的插座,如果没有封装外壳直接使用零线火线的话会比较危险,加上外壳封装之后使用起来既方便又安全
调压着只需调用,无需了解实现过程
4.通过private 关键词声明使用
//案例
public class Student{
String name;//姓名
int age;//年龄
}
上面定义了一个Student类,下面写一个Student01类进行测试
public class Student01{
public static void main(String[] args){
//创建Student类型的对象
Student s = new Student();
System.out.println(s.age);//这里输出结果为0,因为没有设置值
p.age = -10;//这个地方的数据不合理, 因为年龄都是整数,负数年龄怎么可能出来丫~
}
}
上面的Student01中人的年龄出现了-10,这显然是一个不合法的数据,所以应该将Student类中的age隐藏起来,不能让外界直接访问,需要使用private修饰符将age进行封装。
class Student{
private String name;
private int age;
}
//添加了private修饰之后,外界无法直接访问age了
//这时候需要提供两个办法供外界访问即set方法和get发放
//对外提供两个公开的方法
//set 赋值
public void setAge(int agea){
//安全控制
if(agea<0 || agea>120){
System.out.println("年龄不合法");
return; //返回值
}
age = agea;//这里把agea赋值给age
}
//get 读取\获取
public int getAge(){
return age;
}
public void setName(String namea){
name = namea;
}
public String getName(){
return name;
}
}
//创建测试类
public class Student02{
public static void main(String[] args){
//创建Student类型对象
Student s = new Student();
s.setName("小董");
s.setAge(23);
System.out.println("大家好,我叫"+s.setName);
System.out.prinln("我今年的年龄"+s.set.Age+"岁");
}
}
输出结果为
大家好,我叫小董
我今年的年龄23岁
最新文章
- MAC上安装 HLA(High Level Assembly)
- 界面布局之表格布局TableLayout+TableRow
- 瞬间读懂什么是互联网思维、大数据、O2O、众筹、红海
- Python培训12期-day2作业-购物车
- 重新想象 Windows 8 Store Apps (63) - 通信: WebSocket
- 【JS Note】undefined与null
- 8个web前端的精美HTML5 &; CSS3效果及源码下载
- .NET中 MEF应用于IOC
- JavaScript引用类型之Array类型一
- app_offline.htm的作用
- json转义 使用 JavaScriptSerializer 时 需要添加的引用
- 第十七单元 Samba服务
- Tensorflow中的变量
- Android的GridView控件点击图片变暗效果
- weblogic服务目录迁移记录
- zookeeper图形工具——zkui
- 关于数组以及c#学习问题
- torch Tensor学习:切片操作
- python笔记-12 redis缓存
- VS 2015 IDE 不支持 MS SQL 2000 生成 dbml
热门文章
- angular 接入 IdentityServer4
- 服务扫描-dmitry、nmap、amap和服务识别
- 如果人生也能存档——C#中的备忘录模式
- CSS——文本超出隐藏显示省略号
- opencv+python实现图像锐化
- Spreading the Wealth
- ";Celsius=5/9*(Fahrenheit-32)"; and ";Celsius=5*(Fahrenheit-32)/9 ";
- ORA-39257: Data cannot be remapped for more than 10 columns.
- Python3笔记022 - 5.1 字符串常用操作
- dva的简介