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 os模块获取指定目录下的文件列表
bath_path = r"I:\ner_results\ner_results" dir_list1 = os.listdir(bath_path) for dir1 in di ...
- liunx常用知识基本命令大全
liunx基础命令使用 标签(空格分隔):liunx常用命令 网络配置 虚拟网卡的绝对路径 /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ...
- Flutter自己实现一个ProgressHUD
用惯了iOS的SVProgressHUD,但是在flutter pub上的并没有找到类似的实现,于是自己实现一个 主要实现四个基本功能 Loading显示 成功显示 错误显示 进度显示:环形进度条和文 ...
- Eclipse Mac OS 安装 最新版 Subversion插件subclipse
subclipse 目前全部转移到github 官方地址 https://github.com/subclipse/subclipse/wiki Eclipse mac版 安装 最新版svn插件sub ...
- java中异常的处理
异常分为运行时的异常和检测异常: java提供了两种异常机制.一种是运行时异常(RuntimeExepction),一种是检查式异常(checked execption). 运行时的异常就是在java ...
- Jmeter简单压测之服务器监控
此篇为最近工作需要到内容,故现在做一个总结. 最近家里电脑坏了,等待会公司空闲在编写. 文章构思中,敬请期待.......
- STL之内存管理
STL以泛型思维为基础,提供了6大组件:容器(containers).算法(algorithms).迭代器(iterators).仿函数(functors).适配器(adapters).分配器(all ...
- Java——TCP/IP超详细总结
网络的基础知识 一.协议 1.简介: 在计算机网络与信息通信领域里,人们经常提及“协议”一词.互联网中常用的具有代表性的协议有IP.TCP.HTTP等.而LAN(局域网)中常用的协议有IPX/SPX” ...
- 自定义View实战
PS:上一篇从0开始学自定义View有博友给我留言说要看实战,今天我特意写了几个例子,供大家参考,所画的图案加上动画看着确实让人舒服,喜欢的博友可以直接拿到自己的项目中去使用,由于我这个写的是demo ...
- js和jq的获取焦点失去焦点写法