06JAVA面向对象之封装
一、面向对象
1、面向过程和面向对象
面向过程
分析问题的步骤,然后逐步实现。
面向对象
(1)面向对象基于面向过程
(2)面向对象是找出解决问题的人,然后分配职责。
(3)对象中包含解决问题的步骤
面向对象更接近人的思想
面向对象的优势:高复用,高维护,高扩展
二、类和对象
类
类是具有相同属性和行为的一类事物的总称。
类中包含成员变量和成员方法。
1、例子
public class Student{
int age;//成员变量
//成员方法
public String study(String something){
return something;
}
}
2、private关键字
被private修饰的成员变量或者成员方法只能在该类中使用。
public class Student{
//被private修饰的成员变量可通过在类中定义成员方法进行获取或者修改
private int age;
public int getAge(){
return age;
}
}
3、构造函数
作用:初始化类
public class Student{
//被private修饰的成员变量可通过在类中定义成员方法进行获取或者修改
private int age;
public Student(int age){
this.age = age;
}
public int getAge(){
return age;
}
}
4、this关键字:指代实例后的对象
作用场景:类中成员变量和局部变量名称相同的时候。
如果局部变量和成员变量重名,java采用就近原则
5、成员变量和局部变量的qubie
| 区别 | 详情 |
|---|---|
| 在类中的位置 | 1、成员变量位于类中。 2、局部变量位于类中的方法中。 |
| 在内存中的位置 | 1、成员变量位于堆中。 2、局部变量位于栈中。 |
| 生命周期 | 1、成员变量随着对象的创建而创建,随着对象的消失而消失。 2、局部变量随着成员方法的调用而创建,随着方法的弹栈而消失。 |
| 初始化后的值 | 1、成员变量有初始化值。 2、局部变量没有初始化值。 |
对象
对象是类的实例化
一个类可以实例无数对象
三、封装
1、从数据角度讲
封装将多个基本数据类型封装成自定义数据类型。
封装可以保护数据安全。
2、从行为角度讲
封装隐藏实现的步骤,对外提供接口访问。
3、从设计角度来讲
(1)、分而治之
将需求拆分,用多个类协同实现,而不是一个类实现所有功能。
(2)、封装变化
每个变化点做成一个类
(3)、高内聚
一个类应该只实现一个功能
(4)、低耦合
类与类之间的数据交流应该尽可能少
06JAVA面向对象之封装的更多相关文章
- OracleHelper(对增删改查分页查询操作进行了面向对象的封装,对批量增删改操作的事务封装)
公司的一个新项目使用ASP.NET MVC开发,经理让我写个OracleHelper,我从网上找了一个比较全的OracleHelper类,缺点是查询的时候返回DataSet,数据增删改要写很多代码(当 ...
- 原生JS面向对象思想封装轮播图组件
原生JS面向对象思想封装轮播图组件 在前端页面开发过程中,页面中的轮播图特效很常见,因此我就想封装一个自己的原生JS的轮播图组件.有了这个需求就开始着手准备了,代码当然是以简洁为目标,轮播图的各个功能 ...
- 黑马程序员_Java面向对象1_封装
3.面向对象_封装 3.1面向对象概念 3.1.1理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程:强调的是功能行为(执行者) 面向对象:将功能封装进对象,强调具备了 ...
- Java面向对象(封装性概论)
Java面向对象(封装性概论) 知识概要: (1)面向对象概念 (2)类与对象的关系 (3)封装 (4)构造函数 (5)this关键字 (6)static关键 ...
- python 面向对象之封装与类与对象
封装 一,引子 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,小老虎一起装进麻袋,然后把麻袋封上口子.照这种逻辑看,封装='隐藏',这种理解是相当片面的 二,先看如何隐藏 在 ...
- python面向对象编程 -- 封装、继承
面向对象编程 -- 封装.继承 面向对象编程三要素:封装.继承和多态.本文主要看和封装.继承相关的概念:在python中多态的概念比较模糊,本文不做讨论. 1 封装 封装:将数据和操作组装到一起,对外 ...
- C#面向对象(封装)
以上就是面向对象的封装和初始化:
- python 全栈开发,Day116(可迭代对象,type创建动态类,偏函数,面向对象的封装,获取外键数据,组合搜索,领域驱动设计(DDD))
昨日内容回顾 1. 三个类 ChangeList,封装列表页面需要的所有数据. StarkConfig,生成URL和视图对应关系 + 默认配置 AdminSite,用于保存 数据库类 和 处理该类的对 ...
- python之路----面向对象的封装特性
封装 [封装] 隐藏对象的属性和实现细节,仅对外提供公共访问方式. 广义上面向对象的封装 :代码的保护,面向对象的思想本身就是一种只让自己的对象能调用自己类中的方法 狭义上的封装 —— 面向对象的三大 ...
随机推荐
- python函数-易错知识点
定义函数: def greet_users(names): #names是形参 """Print a simple greeting to each user in th ...
- python 基础篇 自定义函数
多态 我们可以看到,Python 不用考虑输入的数据类型,而是将其交给具体的代码去判断执行,同样的一个函数(比如这边的相加函数 my_sum()),可以同时应用在整型.列表.字符串等等的操作中. 在编 ...
- react: typescript jest && enzyme
Install Jest 1.install jest dependencies jest @types/jest ts-jest -D 2.jest.config.js module.exports ...
- python信息收集(三)
前两篇介绍了利用python编写一些脚本实现二层主机的发现,这一篇介绍一下三层主机的发现. 一般来说,三层主机的发现主要是通过ICMP协议来实现的.其中ICMP协议中的ping命令可以 ...
- MySQL 查询语句优化思路
query 语句的优化思路和原则主要提现在以下几个方面:1. 优化更需要优化的Query:2. 定位优化对象的性能瓶颈:3. 明确的优化目标:4. 从 Explain 入手:5. 多使用profile ...
- 2019-2020-1 20199303《Linux内核原理与分析》第五周作业
系统调用的三层机制 API:第一层是指Libc中定义的API,这些API封装了系统调用,使用int 0x80触发一个系统调用中断:当然,并非所有的API都使用了系统调用,如完成数学加减运算的API就没 ...
- Linux 获取网卡名字列表
lspci | egrep -i --color 'network|ethernet'
- 标准库os
os模块 提供对操作系统进行调用的接口 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 os ...
- Excel中拆分列
常常在linux下我们写个shell,结果输出至txt中需要把数据一条一条的抠出来,也是很累人的事情,而直接输出值excel中的话相对较简单,但是会集中在第一列.这时候也不用担心,在Excel中选择第 ...
- #Lab0 Environment Building
清华提供了实验环境的很多选项,具体可以参考README 我选择用虚拟机完成. 一.安装VirtualBox 下载链接 一路next,我的版本是6.0.4. 二.下载虚拟硬盘文件 实验所需的软件都在虚拟 ...