Java 面向对象编程 – 对象和封装
一、使用面向对象分析
三步骤:
- 第一步:分析需求,归纳出类
- 第二步:发现类的属性
- 第三步:发现类的方法
面向对象设计的过程就是抽象的过程。根据项目中的业务需求,发现现实世界中的“对象”,并抽象出软件系统中的“对象”,从而归纳出与业务相关联的类及类的属性和方法。
可以通过在需求中找出名词的方式确定类和类的属性,通过找出动词的方式确定类的方法,并依据与业务的相关程度进行筛选。
二、构造方法
- 构造方法的作用:实例化类的对象
- 特点:
第一:无返回值;
第二:方法名称跟类名相同;
第三:当创建类的时候如果没有创建构造方法,系统会自动分配一个:
public 类名 ( ) { }
第四:一旦在类中显示的写了构造函数,则系统不再自动分配
三、方法重载
定义:
方法重载指的是同一个类包含两个或两个以上的方法,它们的方法名相同,方法参数的个数或参数类型不同。成员方法和构造方法都可以进行重载。
快速判断是否为方法重载的办法:
- 方法名要相同
- 参数列表要不一致(个数不一致,类型不一致)
- 跟方法的返回值没有关系
- 在同一个类中
方法重载的优点:
方法重载其实是对原有方法的一种升级,可以根据参数的不同,采用不同的实现方法而且不需要编写多个名称,简化了类调用方法的代码。
四、this的用法
- this:表示当前类的对象
- this.属性;
- this.方法();//调用本类的方法
- this.构造函数();
五、封装
-
什么是封装:
封装是面向对象的三大特性之一,就是将类的状态信息隐藏在类内部,不允许外部程序直接访问而通过该类提供的方法实现对隐藏信息的操作和访问。 -
封装的优点
封装反映了事物的相对独立性,有效避免了外部错误对此对象的影响,并且能对用户由于大意产生的错误操作起到预防作用。
封装的好处在于隐藏类的细节,让用户只能通过开发人员规定的方法访问数据,可以方便地加入访问修饰符来限制不合理操作。 -
封装的步骤:
第一步:修改属性的可见性来限制对属性的访问。
第二步:为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的存取。
第三步:在赋值方法中,可以加入对属性的存取控制语句。 -
创建赋值和取值方法
属性被修改为 private 后,其他类就无法访问了。如果要访问它,就需要为每个属性创建一对 getter()方法和 setter()方法,用于对这些属性的存取。其中,setter()方法用来更新变量值,getter()方法用来读取变量值。
六、类和类成员的访问修饰符
- 类的访问修饰符:
修饰符 | 同一包中 | 同一包中 |
---|---|---|
public | 可以使用 | 可以使用 |
默认修饰符 | 可以使用 | 不可以使用 |
- 类成员的访问修饰符:
修饰符 | 同一类中 | 同一包中 | 子类中 | 外部包 |
---|---|---|---|---|
private | 可以使用 | 不可以使用 | 不可以使用 | 不可以使用 |
默认修饰符 | 可以使用 | 可以使用 | 不可以使用 | 不可以使用 |
protected | 可以使用 | 可以使用 | 可以使用 | 不可以使用 |
public | 可以使用 | 可以使用 | 可以使用 | 可以使用 |
七、static关键字
static 关键字可以修饰类的属性、方法和代码块。使用 siatic 修饰的属性和方法不再属于具体的某个对象,而属于它所在的类。
在 Java 中,一般情况下调用类的成员需要先创建类的对象,然后通过对象进行调用。使用 static 关键字可以实现通过类名加“.”直接调用类的成员,不需要再消耗资源反复创建对象。
Java中调用static成员有两种方式:
- 使用类名.静态(属性和方法)进行调用
- 使用对象名.静态(属性和方法)进行调用
static 静态代码块:
程序执行就优先执行的代码一般用于程序的初始化数据。
总结:
- 构造方法 实例化类的对象
- 方法重载 :方便方法的调用
- 封装:set get方法读和写的权限
- static :修饰属性、方法,
调用:
使用类名.静态(属性和方法)进行调用
使用对象名.静态(属性和方法)进行调用
静态代码块:
程序启用就执行 - 访问修饰:
类的修饰符:public 默认修饰符
类的成员修饰符:private 默认修饰符 protected public - 类的概念:具有相同属性和行为的对象的集合
- 对象的概念:类的实例