面向对象程序设计-类的封装

面向过程和面向对象

        面向过程是一种以过程为中心的编程思想,以什么正在发生为目标进行编程。即程序是一步一步地按照一定的顺序从头到尾地执行一系列的函数。面向对象是一种以事物为中心的编程思想。即当解决一个问题时,面向对象会从这些问题中抽象出一系列对象,再抽象出这些对象的属性和方法,让每个对象去执行自己的方法。值得指出的是,面向对象中的方法相当于面向过程中的函数。

        面向过程的优点:性能比面向对象高,因为类调用时需要实例化,比较消耗资源,例如单片机、嵌入式、Linux/Unix等对性能要求高的一般采用面向过程开发;缺点:没有面向对象易维护、易复用、易扩展。

        面向对象的优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活;缺点:性能比面向过程低。

类和对象

        与对象是整个面向对象中最基本的组成单元。其中,类是抽象的概念集合,表示的是一个共性的产物,类中定义的是属性和行为(方法);对象是一种个性的表示,表示一个独立而具体的个体。可以用一句话来总结类和对象的区别:类是对象的模板,对象是类的实例。类只有通过对象才可以使用,在开发中先产生类,再产生对象。类不能直接使用,对象是可以直接使用的。

类包含的变量类型

1)成员变量:成员变量是定义在类体中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。

2)局部变量:在方法(包含构造方法)和语句块中定义的变量被称为局部变量。这种变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

3)类变量:类变量也声明在类体中,方法体之外,但必须声明为static类型。这种变量也称为静态变量。

类的成员方法和构造方法

        成员方法对应类的行为一个成员方法可以不带参数,也可以带一个或若干个参数,这些参数可以是对象也可以是基本数据类型的变量,同时,成员方法可以有返回值也可以不返回任何值,返回值可以是计算结果也可以是其他数值和对象。

        在类中除了成员方法外,还存在一种特殊类型的方法,那就是构造方法。构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象时,类都会自动调用构造方法。构造方法没有返回值,每个类都有构造方法,一个类可以有多个构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认的无参构造方法

权限修饰符

Java中的权限修饰符主要包括privatepublicprotected,这些修饰符控制着对类、类的成员变量及成员方法的访问。若一个类的访问权限为不可见,这个类将隐藏其内的所有数据,以免用户直接访问,给修饰符的权限如下:

权限修饰符本类同包其他类或子类其他包的类或子类
public可见可见可见
protected可见可见不可见
private可见不可见不可见

对象的创建、操作和销毁

        对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下3步:①声明:声明一个对象,包括对象名称和对象类型;②实例化:使用关键字new来创建一个对象;③初始化:使用new创建对象时,会调用构造方法初始化对象。

        每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址将会被回收。在其他语言中需要手动回收废弃的对象,但Java拥有一套完整的垃圾回收机制,用户不必担心废弃的对象占用内存,垃圾回收器将回收无用但占用内存的资源。

类的封装

面向对象程序设计中,封装是指一种将抽象性函数接口的实现细节部分包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制,这样就避免了外部操作对内部数据的影响,提高了程序的可维护性。封装最主要的功能在于设计类的一方可以修改已封装的代码,而使用类实例化对象的一方不允许修改这部分代码。适当的封装可以让代码更容易理解和维护,也加强了代码的安全性。封装有以下优点:①良好的封装能够减少耦合;②类内部的结构可以自由修改;③可以对成员变量进行更精确的控制;④隐藏信息,实现细节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值