Java学习笔记十八:Java面向对象的三大特性之封装
Java面向对象的三大特性之封装
一:面向对象的三大特性;
- 封装
- 继承
- 多态
二:封装的概念;
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问;
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
三:封装的好处;
1.只能通过规定的方法访问数据
2.隐藏类的实例细节,方便修改和实现
3.类内部的结构可以自由修改
四:实现Java封装的步骤;
1.修改属性的可见性;
如:
2.创建getter/setter方法;
如:

3.在getter/setter方法中加入属性控制语句;
对属性值的合法性进行判断
4.举个例子:
部分讲解在注释,请留意。

我们应该用封装的方式将我们的属性信息隐藏起来,给用户一个特定的方式访问数据
所以我们在源代码的变量加private修饰符
代码如下:
public class Telphone {
private float screen;
private float cpu;
private float mem;
//自己创建的构造方法
public Telphone(){
System.out.println("无参的构造方法执行了");
}
public Telphone(float newScreen,float newCpu,float newMem){
screen = newScreen;
cpu = newCpu;
mem =newMem;
System.out.print("有参的构造方法执行了");
}
}
于是现在不允许用户随便访问默认的值了

如何访问呢,我们使用set/get方法访问
代码如下:
Telphone类:
package com.test; //1.定义一个类
public class Telphone {
private float screen;
private float cpu;
private float mem;
//自己创建的构造方法 //创建一个get方法获得属性Screen的值
public float getScreen(){
return screen;
}
//创建一个set方法传入参数
public void setScreen(float newScreen){
screen =newScreen;
}
public Telphone(){
System.out.println("无参的构造方法执行了");
}
public Telphone(float newScreen,float newCpu,float newMem){
screen = newScreen;
cpu = newCpu;
mem =newMem;
System.out.print("有参的构造方法执行了");
}
}
InitailTelphone类:
package com.test;
public class InitailTelphone {
public static void main(String[] args) {
Telphone phone2 = new Telphone(5.0f,1.4f,2.0f);
//phone2.cpu = 5.2f;//在这个例子中,用户可以通过phone2这个对象直接修改我们的原始数据,
//这样是不安全的
//通过封装方法set方法得到属性Screen的值
phone2.setScreen(6.0f);
System.out.println();
System.out.println("screen:"+phone2.getScreen());
}
}
这里我们使用了set方法传入参数并通过get方法获取了Screen值的属性
运行结果为:

所以封装就是隐藏属性,通过方法来得到属性
其中set方法用来传入参数,get方法用来获取参数
Java学习笔记十八:Java面向对象的三大特性之封装的更多相关文章
- java基础笔记(6)----面向对象的三大特性
简介:面向对象的三大特性就是封装,继承,多态,是面向对象的核心. 封装 简介:封装是类的边界,可以对数据起到保护作用 特性:属性私有,提供公开的get/set方法 属性私有:private 数据类型 ...
- Java学习笔记十五:Java中的成员变量和局部变量
Java中的成员变量和局部变量 一:成员变量: 成员变量在类中定义,用来描述对象将要有什么 成员变量可以被本类的方法使用,也可以被其他类的方法使用,成员变量的作用域在整个类内部都是可见的 二:局部变量 ...
- Java学习笔记十九:Java中的访问控制修饰符
Java中的访问控制修饰符 一:Java修饰符的种类: 访问修饰符 非访问修饰符 修饰符用来定义类.方法或者变量,通常放在语句的最前端.我们通过下面的例子来说明: public class Hello ...
- Java学习笔记十六:Java中的构造方法
Java中的构造方法 1.使用new+构造方法 创建一个新的对象: 2.构造方法是定义在Java类中的一个用来初始化对象的方法: 3.构造方法与类同名且没有返回值: 4.语法格式: public 构造 ...
- Java学习笔记十二:Java中方法的重载
Java中方法的重载 什么是方法的重载呢? 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方法名称都为 s ...
- python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置
python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置Download JetBrains Python IDE :: PyCharmhttp://www. ...
- Python 面向对象的三大特性:封装,继承,多态
# 面向对象的三大特性:封装,继承,多态 # 继承的影响:资源的继承,资源的使用,资源的覆盖,资源的累加 # 资源的继承,在Python中的继承是指能使用父类的资源,而不是说在子类也复制一份父类代码到 ...
- Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态)
Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态) 1.面向对象的三大特性: (1)继承 继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,父类又可以 ...
- Java学习笔记二十一:Java面向对象的三大特性之继承
Java面向对象的三大特性之继承 一:继承的概念: 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方 ...
随机推荐
- Android笔记——Socket通信实现简单聊天室
两部分,客户端和服务端 ---------------------------------------------------------------- 客户端 1.为防止ANR异常,互联网连接可用 ...
- Can't create new folder in windows7
First, please use System File Checker tool to troubleshoot(诊断) this issue. If the issue persists, im ...
- 删除datatable的行后,出现“不能通过已删除的行访问该行的信息”的错误,即DeletedRowInaccessibleException
删除datatable的行后,出现“不能通过已删除的行访问该行的信息”的错误 =========================================================== 采 ...
- June 25th 2017 Week 26th Sunday
There is always that one song that brings back old memories. 总有那么一首歌,让你想起那些旧的回忆. There are seveal so ...
- GO语言(一)G语言自虐
package main import . "fmt" //notice 1 type testInt func(uint32) bool func isOdd(integer u ...
- 深入解析Backbone.js框架的依赖库Underscore.js的作用
这篇文章主要介绍了深入解析Backbone.js框架的依赖库Underscore.js的作用,用过Node.js的朋友对Underscore一定不会陌生:)需要的朋友可以参考下 backbone必须依 ...
- 一些SAP Partners能够通过二次开发实现打通C/4HANA和S/4HANA的方法介绍
有好几位朋友在公众号后台给我留言询问SAP C/4HANA和S/4HANA集成的方案. 尽管我给这些朋友推送了一个方案:打通C/4HANA和S/4HANA的一个原型开发:智能服务创新案例,然而我得到的 ...
- Android(java)学习笔记209:Android线程形态之 HandlerThread
1. HandlerThread Android HandlerThread 完全解析 Handler与HandlerThread区别,HandlerThread应用(对比AsyncTask) 备注 ...
- 代码注释模板(把内容保存为xml文件,导入eclipse中即可)
<?xml version="1.0" encoding="UTF-8" standalone="no"?><templa ...
- MQ--API总结
研究MQ很长时间了, 每个类,方法,都查了很长时间,在此总结一下! Java编写访问MQ的程序 1.MQQueueManager―――队列管理器访问类 常用方法: public MQQueueMan ...