面向对象之封装

原创 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!~很感谢在茫茫网海之中,你找到与众不同的我,本博客除了特殊声明外,其他博客文章均为原创,转载请注明出处!

相关文章推荐

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

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

Java经典封装JDBC模板(充分体现面向对象思想)

程序清单一览 bean类 package com.software.usermanager.bean; public class Users { private String id;...

c#面向对象——封装

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

I学霸官方免费教程十三:Java面向对象三大特性之封装

面向对象的三大特性 封装 将数据(属性)和功能(方法)包装在一起,形成一个不可分割的整体。对使用者提供访问的接口(方法的调用) 另一种简单的说法是,将属性私有化,对外提供公共的getter和sette...
  • ixueba
  • ixueba
  • 2015年08月10日 18:17
  • 288

Lua面向对象封装 链接库

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

面向对象 之 封装带来的好处

DataObj支持int float double三种类型,现在要设计一个less than函数,比较两个DataObj,并将结果存入到result中。一种实现: inline void...
  • maray
  • maray
  • 2011年07月28日 10:57
  • 3014

GCD封装成面向对象

  • 2015年11月17日 17:09
  • 35KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面向对象之封装
举报原因:
原因补充:

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