zoukankan      html  css  js  c++  java
  • (java补充)抽象和封装

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

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

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

    第一步:发现类

    第二步:发现类的属性

    第三步:发现类的方法

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

    对象的创建:

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

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

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

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

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

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

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

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

    常见错误:

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

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

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

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

    4.用封装优化类

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

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

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

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

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

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

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

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


  • 相关阅读:
    列表
    Lambda表达式
    委托
    泛型(二)
    泛型(一)
    继承
    object类
    linux 命令补全包
    记一次 mysql 安装完成后启动报错 且 日志为空
    nginx 下配置https 访问提示下载文件 解决方法
  • 原文地址:https://www.cnblogs.com/zhujianxipan/p/3146881.html
Copyright © 2011-2022 走看看