一、面向对象

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. [html]浏览器标签小图标LOGO简单设置

    方式一:如果是一个项目一个LOGO 的话,直接接把图片像素设置成16x16像素,然后改名favicon.ico放在项目根部目录就可以,自动识别的! 方式二:简单设置! 首先找一个图片把像素设置成16x ...

  2. 如何将Python项目发布到PyPI

    The Python Package Index (PyPI) is a repository of software for the Python programming language. 如何打 ...

  3. Golang Web入门(4):如何设计API

    摘要 在之前的几篇文章中,我们从如何实现最简单的HTTP服务器,到如何对路由进行改进,到如何增加中间件.总的来讲,我们已经把Web服务器相关的内容大概梳理了一遍了.在这一篇文章中,我们将从最简单的一个 ...

  4. 十分钟通过一个实际问题,真正教会大家如何解决Bug

    前言 这篇文章从实际问题 -> 问题解决步骤 -> 问题解决思路,帮助大家能够明白如何在程序中发现问题,定位问题,解决问题.并真正理解那些问题解决思路. 首先说说这个实际问题是什么,又是怎 ...

  5. 初学者的Pygame安装教程

    最近在自学python,在看完了些基础知识之后,准备写个小项目[外星人入侵],这个项目需要安装pygame. 所以就在网上找到了两个下载地址https://bitbucket.org/pygame/p ...

  6. 点击 QTableView,触发事件

    Here is an example of how you can get a table cell's text when clicking on it. Suppose a QTableView ...

  7. Jetson AGX Xavier刷机

    1. 准备一台电脑做主机(host),运行Ubuntu系统,我用的是虚拟机,运行的是Ubuntu 18.04系统. 2. 主机更换apt-get源,参见https://www.cnblogs.com/ ...

  8. http请求返回的数字代表的含义

    一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务器超时 下面提供 HTTP 状态码的完整列表.点击链接可了解详情.您也可以访问 HTTP 状态码上的 ...

  9. Linux网络服务第七章DNS域名解析服务

    端口:53 一.DNS服务器 正向解析:根据域名查IP地址,即将指定的域名解析为相对应的IP地址.域名的正向解析是DNS服务器最基本的功能,也是最常用的功能. 反向解析:根据IP地址查域名,即将指定的 ...

  10. 素数&欧拉函数

    素数表 const int maxN找[1,maxN)内的素数 int prime[int I]第I个素数 const int maxN=1e5+5; int prime[maxN]; bool ma ...