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之路----面向对象的封装特性
封装 [封装] 隐藏对象的属性和实现细节,仅对外提供公共访问方式. 广义上面向对象的封装 :代码的保护,面向对象的思想本身就是一种只让自己的对象能调用自己类中的方法 狭义上的封装 —— 面向对象的三大 ...
随机推荐
- 4.JS跳转路由/刷新/返回页面
1.JS跳转路由(需要拿到父组件的history) clickHandle(){ let history = this.props.history; history.push( '/home') } ...
- redis: 配置文件详解(十一)
#通用配置 bind 127.0.0.1 #绑定可访问的ip 默认本机访问,如果bind选项为空的话,那会接受所有来自于可用网络接口的连接,也可以绑定指定ip访问 protected-mode yes ...
- SpringCloud-Gateway 网关路由、断言、过滤
Gateway 简介 是什么? Spring Cloud 全家桶中有个很重要的组件:网关.在 1.x 版本中使用的是 Zuul 网关,但是到了 2.x,由于Zuul的升级不断跳票,Spring Clo ...
- 天池Docker学习赛笔记
容器的基本概念 什么是容器? 容器就是一个视图隔离.资源可限制.独立文件系统的进程集合.所谓"视图隔离"就是能够看到部分进程以及具有独立的主机名等:控制资源使用率则是可以对于内存大 ...
- Java锁之自旋锁
Java锁之自旋锁 自旋锁:spinlock,是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁,这样的好处是减少线程上下文切换的消耗,缺点是循环会消耗CPU 原来提到的比较并交换,底层 ...
- 2019-2020-1 20199310《Linux内核原理与分析》第九周作业
1.问题描述 在前面的文章中,学习了译链接的过程和ELF可执行文件格式,对Linux内核装载和启动一个可执行程序,本次内容围绕对进程调度的时机和进程切换进行,分析进程的调度时机,调度策略和算法,并跟踪 ...
- 2019-2020-1 20199310《Linux内核原理与分析》第三周作业
1.问题描述 计算机的3大法宝是存储程序计算机,函数调用堆栈和中断机制,存储程序计算机已经在上一个博客中进行具体描述,本文将在剩下两方面出发对操作系统是如何工作的进行学习和探讨. 2.解决过程 2.1 ...
- 2019-2020-1 20199326《Linux内核原理与分析》第八周作业
可执行程序工作原理## 编译链接的过程### 示例程序hello.c #include<stdio.h> void main() { printf("Hello world\n& ...
- POJ1475 推箱子---模块化思想
自古逢秋悲寂寥,我言秋日胜春朝. 晴空一鹤排云上,便引诗情到碧霄. --刘禹锡 题目:推箱子 网址:http://poj.org/problem?id=1475 推箱子游戏相信大家都不陌生,在本题中, ...
- SpringBoot应用操作Rabbitmq(topic交换器高级操作)
一.topic交换器为主题交换器,可以根据路由key模糊匹配 实现模型图 二.实战 1.引入maven <dependency> <groupId>org.springfram ...