1. 使用面向对象进行设计
面向对象设计的过程就是抽象的过程。
根据业务相关的属性和行为,忽略不必要的属性和行为,由现实世界中“对象”抽象出软件开发中的对象
第一步:发现类
第二步:发现类的属性
第三步:发现类的方法
类的基本结构,其主要由属性和行为组成,称为类的成员变量(或者成员属性)和成员方法,统称为类的成员(除此之外类的成员还包括构造方法,代码块等)
对象的创建:
通过够造方法来创建对象。
通过对象名.属性名的方式调用属性
通过对象名.方法名的方式调用方法
Static 可以用来修饰属性、方法和代码快 。Static的变量属于这个类所有,即由这个类创建的所有对象共同用一个 Static 变量 。 通常把Static修饰的属性和方法称为类属性(类变量)、类方法。不使用Static修饰的属性和方法,属于单个对象,通常称为实例属性(实例变量),实例方法。
类属性、类方法可以通过类名和对象名访问,实例属性、实例方法只能通过对象名访问。Final 可以用来修饰属性、方法和类。用final修饰的变量称为常量,其值固定不变。
构造方法的名字和类名相同,没有返回值类型。构造方法的作用主要就是在创建对象时执行一些初始化操作,如给成员属性赋初值。
在没有给类提供任何构造方法时,系统会提供一个无参的方法体为空的默认构造方法。一旦提供了自定义构造方法,系统将不会再提供这个默认的构造方法,如果要使用,必须手动添加。
如果一个类中包含了两个或两个以上方法,他们的方法名相同,方法参数个数或参数类型不同,则称该方法被重载了,这个过程称为方法重载,成员方法和构造方法都可以进行重载。
常见错误:
在类中可以定义Static变量,在方法里是否可以定义Static变量?
结论:在方法里不可以定义Static变量,也就是说类变量不能是局部变量。
给构造函数加上返回值类型会出现什么情况?
结论:构造方法没有返回值类型,如果有,就不是构造方法,而是和构造方法同名的成员变量。
4.用封装优化类
封装:将类的状态信息隐藏在类内不能,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
封装的具体步骤:修改属性的可见性来限制对属性的访问;为每个属性创建一对赋值方法(setter)和取值方法(getter),用于对这些属性的存取;在赋值方法中加入对属性的存取控制语句。
封装的好处主要有:隐藏类的实现细节;让使用者只能通过程序员规定的方法来访问数据;可以方便地加入存取控制语句,限制不合理操作。
封装时会用到多个权限控制符来修饰成员变量和方法,区别如下。
Private:成员变量和方法只能在类内被访问,具有类可见性
默认: 成员变量和方法只能被同一个包里的类访问,具有包可见性。
Protected:可以被同一个包中的类访问,被同一个项目中不同包中的子类访问
Public:可以被同一个项目中所有的类访问,具有项目可见性,这是最大的访问权限