一、面向对象

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面向对象之封装的更多相关文章

  1. OracleHelper(对增删改查分页查询操作进行了面向对象的封装,对批量增删改操作的事务封装)

    公司的一个新项目使用ASP.NET MVC开发,经理让我写个OracleHelper,我从网上找了一个比较全的OracleHelper类,缺点是查询的时候返回DataSet,数据增删改要写很多代码(当 ...

  2. 原生JS面向对象思想封装轮播图组件

    原生JS面向对象思想封装轮播图组件 在前端页面开发过程中,页面中的轮播图特效很常见,因此我就想封装一个自己的原生JS的轮播图组件.有了这个需求就开始着手准备了,代码当然是以简洁为目标,轮播图的各个功能 ...

  3. 黑马程序员_Java面向对象1_封装

    3.面向对象_封装 3.1面向对象概念 3.1.1理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程:强调的是功能行为(执行者) 面向对象:将功能封装进对象,强调具备了 ...

  4. Java面向对象(封装性概论)

     Java面向对象(封装性概论) 知识概要:                   (1)面向对象概念 (2)类与对象的关系 (3)封装 (4)构造函数 (5)this关键字 (6)static关键 ...

  5. python 面向对象之封装与类与对象

    封装 一,引子 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,小老虎一起装进麻袋,然后把麻袋封上口子.照这种逻辑看,封装='隐藏',这种理解是相当片面的 二,先看如何隐藏 在 ...

  6. python面向对象编程 -- 封装、继承

    面向对象编程 -- 封装.继承 面向对象编程三要素:封装.继承和多态.本文主要看和封装.继承相关的概念:在python中多态的概念比较模糊,本文不做讨论. 1 封装 封装:将数据和操作组装到一起,对外 ...

  7. C#面向对象(封装)

    以上就是面向对象的封装和初始化:

  8. python 全栈开发,Day116(可迭代对象,type创建动态类,偏函数,面向对象的封装,获取外键数据,组合搜索,领域驱动设计(DDD))

    昨日内容回顾 1. 三个类 ChangeList,封装列表页面需要的所有数据. StarkConfig,生成URL和视图对应关系 + 默认配置 AdminSite,用于保存 数据库类 和 处理该类的对 ...

  9. python之路----面向对象的封装特性

    封装 [封装] 隐藏对象的属性和实现细节,仅对外提供公共访问方式. 广义上面向对象的封装 :代码的保护,面向对象的思想本身就是一种只让自己的对象能调用自己类中的方法 狭义上的封装 —— 面向对象的三大 ...

随机推荐

  1. vue原生表格怎样实现动态列及表格数据下载

    最近项目经常用到带有合并效果以及动态列的表格,而翻阅iview和element-ui官网没有找到合适的(也有可能自己的水平有限,不会改写),所以只好自己用原生表格写了一个,具体效果如下: 这个表格右侧 ...

  2. Pytorch手写线性回归

    pytorch手写线性回归 import torch import matplotlib.pyplot as plt from matplotlib.animation import FuncAnim ...

  3. PHP中的数据库操作

    PDO project data object 连接到数据库 $db=new PDO("mysql:dbname=database;host=sever","userna ...

  4. apache虚拟主机配置-域名/IP和端口两种配置

    由于百度上有非常详细的资料,我这里就转载而已:https://jingyan.baidu.com/article/4f7d5712d48a191a201927e0.html

  5. php utf-8

    header(”Content-Type: text/html; charset=UTF-8″) 控制器控释模板输出: 值: array (size=8) 1 => array (size=4) ...

  6. 给动态ajax添加的元素添加click事件

    $(document).on('click','div',function(){alert(1)}); .live()方法也是可以的

  7. 总结:js世界中的特殊符号

    常用符号:+ ++ - -- || / /' && 等 这些基本上每天都能用到,但是 js 世界中有些特殊符号是不常用的,我也是偶然在阅读大神代码的时候发现的,一番查找之后得出了以下结 ...

  8. MAC攻击及缺陷

    MAC攻击及缺陷 MAC有好几种实现方式 对MAC的攻击 重放攻击 重放攻击的防护 密钥推测攻击 MAC算法的缺陷 第三方证明 防止否认 前面我们在讲HMAC的时候简单讲过了什么是MAC消息认证码. ...

  9. android开发之自定义View 详解 资料整理 小冰原创整理,原创作品。

    2019独角兽企业重金招聘Python工程师标准>>> /** * 作者:David Zheng on 2015/11/7 15:38 * * 网站:http://www.93sec ...

  10. Netty(六):NioServerSocketChannel源码解析

    我们在Netty学习系列五的最后提出了一些问题还没得到回答,今天来通过学习NioServerSocketChannel的源码来帮我们找到之前问题的答案. 先看一下NioServerSocketChan ...