面向对象之封装

原创 2015年11月17日 16:51:17

编程语言的发展阶段:
 机器语言(汇编语言):由0和1组成的序列,称为机器指令。
 过程语言(C):把代码的组成叫过程和函数的块。
 面向对象编程(C#,Java):封装,继承,多态。

面向对象(OOP):Object Oriented Programming,描述对象之间的相互作用。
面向对象和面向过程的区别:
 算法与数据结构:
 过程:先确定算法,再确定数据结构。
 对象:先确定数据,再确定算法。

数据操作:
 过程:建立数据结构存放数据并定义函数(方法)对数据进行操作。
 对象:构造一个数据模型,把数据和方法组织在一起。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

面向对象的三大特征:(抽象)
封装:隐藏属性,方法或实现细节的过程。
   含义:java中,对象就是一个封装体。
         把对象的属性和服务组合成一个独立的单位,并尽可能地隐蔽对象的内部细节,主要指私有数据。
   目的:使得对象以外的部分不能随意存取对象的内部数据(属性),从而使得软件错误能够局部化,大大减少查错或排错的难度。
   好处:使用方便,保护内部数据,维护方便。
   方法:封装语句,类封装属性。
   概念:广义:所有的东西都可以封装。
         狭义:1.属性私有(private)2.访问之中提供getter/setter,3.访问器中添加条件。
         static{}静态代码块(一个类只执行一次),{}非静态代码块(对象创建便会执行)
         private 私有访问修饰符(内部可用)。
         public  公共访问修饰符(谁都可使用)。
   特性:设置对象中的成员变量和方法的访问权限(public,private,protected,缺省)
         提供一个统一让其他类引用的访问接口。如一些public方法;
         其他对象不能直接修改本对象所拥有的私有属性和私有方法
         包:类空间的划分单位。
         静态代码只输出一次,而属性走一次,输出一次。
   作用:1.对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持数据与操作内容的负担。
         2.对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的
构造方法:(构造类的对象,没有构造方法时,java jvm自动提供无参构造方法)
    作用:给属性赋值:
          类型 变量=new 构造方法();
    定义:      ps:方法名和类名相同,没有返回值类型。
    使用:类型 变量=new 构造方法();

方法重载:
    例子:System.out.println();
    定义: 方法名相同,参数列表不一致(参数个数,对应的位置类型不一致)。
    问题: 方法名相同容易记住,与参数类型有关,与参数名无关。


this用法总结:
   本类中方法调用自己的属性和方法时可以使用this。
   局部变量和属性重名时必须添加this。
   构造方法的使用:
    this():
            1.必须放在构造方法的第一句。
            2.必须调用自己的别的构造方法。
   方法分类:
      实例方法:每一个对象独享(调用自己的任何方法(除了自己的构造方法外)):this.方法名();
      类方法:类中所有对象共享(非静态方法和构造方法不能调用)
      构造方法:可以调用自己的所有方法包括别的构造方法。

封装和构造方法的重载的问题:
     问题:使用构造方法可以直接给属性赋值,set访问器中的判断无效。
     解决办法:构造方法给属性赋值时,建议使用set方法赋值

属性赋值方法总结:
     1.类中属性直接赋值
     2.使用构造方法给属性赋值
     3.通过set方法属性赋值
     4.通过实例方法给属性赋值
     5.在类外创建对象,调用2-4给对象属性赋值。
版权声明:Hello!~很感谢在茫茫网海之中,你找到与众不同的我,本博客除了特殊声明外,其他博客文章均为原创,转载请注明出处!

c++面向对象三大特征封装、继承和多态知识总结

面向对象三大特征:封装,继承,多态; 一、封装:该公开的就公开话,该私有的就隐藏掉,主要是由public,private实现;作用是便于分工和分模块,防止不必要的扩展; 二、继承:就是一种传承,可以把...
  • uestclr
  • uestclr
  • 2016年06月05日 18:23
  • 2767

面向对象编程三大特性------封装、继承、多态

本文是对面向对象编程三大特性(封装、继承、多态)的一个学习总结。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只...
  • jianyuerensheng
  • jianyuerensheng
  • 2016年06月07日 11:41
  • 8131

C语言也可以“面向对象”—— C语言实现封装、继承和多态

网上看到一篇讲述C语言面向对象的文章,顿时眼睛一亮,也佩服作者认识的深入。 特此转来与大家分享,网址: http://dongxicheng.org/cpp/ooc/ 1、  概述 ...
  • happy08god
  • happy08god
  • 2014年02月05日 17:48
  • 2421

Java SE 第十一讲(面向对象之封装) 续二

  • 2014年06月05日 18:04
  • 163KB
  • 下载

面向对象与Java实现(封装、继承

  • 2012年05月14日 13:10
  • 479KB
  • 下载

c#面向对象——封装

  • 2012年03月12日 10:11
  • 754KB
  • 下载

js面向对象封装拖拽移动功能,兼容pc和移动端

  • 2017年11月04日 15:39
  • 2KB
  • 下载

Lua面向对象封装 链接库

  • 2012年10月18日 14:12
  • 1.2MB
  • 下载

G[1].729A声码器的VC++面向对象封装实现

  • 2009年03月03日 14:41
  • 560KB
  • 下载

标准C面向对象(封装,继承)程序代码

  • 2011年10月24日 16:03
  • 55KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面向对象之封装
举报原因:
原因补充:

(最多只允许输入30个字)