(java补充)抽象和封装

我们两清 提交于 2019-12-27 15:57:50

 

1.  使用面向对象进行设计

面向对象设计的过程就是抽象的过程。    

根据业务相关的属性和行为,忽略不必要的属性和行为,由现实世界中“对象”抽象出软件开发中的对象

第一步:发现类

第二步:发现类的属性

第三步:发现类的方法

类的基本结构,其主要由属性和行为组成,称为类的成员变量(或者成员属性)和成员方法,统称为类的成员(除此之外类的成员还包括构造方法,代码块等)

对象的创建:

通过够造方法来创建对象。

通过对象名.属性名的方式调用属性

通过对象名.方法名的方式调用方法

Static 可以用来修饰属性、方法和代码快 。Static的变量属于这个类所有,即由这个类创建的所有对象共同用一个 Static 变量 。 通常把Static修饰的属性和方法称为类属性(类变量)、类方法。不使用Static修饰的属性和方法,属于单个对象,通常称为实例属性(实例变量),实例方法

类属性、类方法可以通过类名和对象名访问,实例属性、实例方法只能通过对象名访问。Final 可以用来修饰属性、方法和类。用final修饰的变量称为常量,其值固定不变。

构造方法的名字和类名相同,没有返回值类型。构造方法的作用主要就是在创建对象时执行一些初始化操作,如给成员属性赋初值。

在没有给类提供任何构造方法时,系统会提供一个无参的方法体为空的默认构造方法。一旦提供了自定义构造方法,系统将不会再提供这个默认的构造方法,如果要使用,必须手动添加。

如果一个类中包含了两个或两个以上方法,他们的方法名相同,方法参数个数或参数类型不同,则称该方法被重载了,这个过程称为方法重载,成员方法和构造方法都可以进行重载。

常见错误:

在类中可以定义Static变量,在方法里是否可以定义Static变量?

结论:在方法里不可以定义Static变量,也就是说类变量不能是局部变量。

给构造函数加上返回值类型会出现什么情况?

结论:构造方法没有返回值类型,如果有,就不是构造方法,而是和构造方法同名的成员变量。

4.用封装优化类

    封装:将类的状态信息隐藏在类内不能,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

      封装的具体步骤:修改属性的可见性来限制对属性的访问;为每个属性创建一对赋值方法(setter)和取值方法(getter),用于对这些属性的存取;在赋值方法中加入对属性的存取控制语句。

       封装的好处主要有:隐藏类的实现细节;让使用者只能通过程序员规定的方法来访问数据;可以方便地加入存取控制语句,限制不合理操作。

封装时会用到多个权限控制符来修饰成员变量和方法,区别如下。

Private:成员变量和方法只能在类内被访问,具有类可见性

默认: 成员变量和方法只能被同一个包里的类访问,具有包可见性。

Protected:可以被同一个包中的类访问,被同一个项目中不同包中的子类访问

Public:可以被同一个项目中所有的类访问,具有项目可见性,这是最大的访问权限


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!