Java基础-面向对象思考

一、类的抽象

定义

  • 类的抽象(class abstraction):将类的实现和类的实用使用分离开。
  • 类的封装(class encapsulation):实现的细节经过封装,对用户隐藏起来。
  • 类的合约(class’s contract):从类外可以访问方法和数据域的集合以及预期这些成员如何行为的描述。
    类的抽象和封装是一个问题的两个方面。下面的例子反映了面向对象方法。
    这里写图片描述
    例如,你想要组建一台计算机,它拥有许多组件-CPU、内存、磁盘、显卡和主板等,每个组件都可以是看成有属性(数据域)和方法(method)的对象,要使各个组件协调工作,只需要知道组件如何使用(类的使用)即可,且这些组件已经是厂商帮你设计好的(类的实现),这就是类的抽象;你只要遵守厂商给你的使用规则就能够运作组件,这就是类的合约;且无须了解组件内部是如何工作和实现的,内部功能的实现被封装起来,对你隐藏,这就是类的封装

二、面向对象思考

面向过程和面向对象

大部分人入门的语言是C语言,它是一门面向过程的语言。它与面向过程的JAVA有什么区别呢?
从范式角度:

  • 面向过程的范式重点在于设计函数(方法),基本单位是函数,比方记录人的信息,面向过程的语言设计更多的是注重记录的过程,假如让我使用C语言设计,必定是将设计一个person.c文件模块,思考存储的过程函数需要什么样的数据(name,sex,age),然后把这些数据当成函数的形参,存储函数getPerson(char * name , char * sex , unsigned int age)获取到所有信息进行存储,在person.c文件中并不会产生函数之外数据域与函数产生耦合,模块本身一般不设计数据域,更多的是设计面向过程的函数。
    这里写图片描述

  • 面向过程的范式是将数据和方法耦合在一起构造成对象,基本单位是,类就好比一个模板,就像生产可乐的配方(class)去生产可乐(object),让我用JAVA设计记录人的信息,我会先将人抽象成一个实体类,它具有什么数据域(name,sex,age)和方法域(get&set method),实体类为存储的方法所服务(实体对象做参数)。
    这里写图片描述

下面是实现实体类代码

/**
 * Created by FengJie2532 on 2017/1/10.
 */
public class Person
{
    private String name;
    private String sex;
    private int age;

    public String getName ()
    {
        return name;
    }

    public void setName ( String name )
    {
        this.name = name;
    }

    public String getSex ()
    {
        return sex;
    }

    public void setSex ( String sex )
    {
        this.sex = sex;
    }

    public int getAge ()
    {
        return age;
    }

    public void setAge ( int age )
    {
        this.age = age;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值