软考笔记(下午题)——面向对象的程序设计与实现

5.面向对象的程序设计与实现

  • C++基本语法、JAVA基本语法、解题技巧、真题讲解

C++基本语法

  • 类、派生类、类外函数实现:
class 类名
{
    public:共有数据成员或公有函数成员的定义;
    protected:保护数据成员或保护函数成员的定义;
    private:私有数据成员或私有函数成员的定义;
}

在类外定义函数体的格式如下:
    返回值类型	类名::	成员函数名(形参表)
    {
        函数体
    }
::是类的作用域分辨符,用在此处,放在类名后成员函数前,表明后面的成员函数属于前面的那个类。

class 派生类名:继承方式1  基类名,继承方式2  基类名2,...
{
    private:派生类的私有数据和函数
    public:派生类的公有数据和函数
    protected:派生类的共有数据和函数
}
  • 构造函数、析构函数:

  • 构造函数相对于一般函数来说,具有如下特殊的性质:

    • 构造函数的函数名必须与定义它的类同名。
    • 构造函数没有返回值。如果在构造函数前加void是错误的。
    • 构造函数被声明定义为公有函数。
    • 构造函数在建立对象时由系统自动调用。
  • 析构函数相对于一般函数来说,具有如下特殊的性质:

    • 析构函数没有任何参数,不能被重载,但可以是虚函数,一个类只有一个析构函数。
    • 析构函数没有返回值。
    • 析构函数名与类名相同,但在类名前加上一个逻辑非运算符“~”,以示与析构函数对比区别。
    • 析构函数一般由用户自己定义,在对象消失时由系统自动调用,如果用户没有定义析构函数,系统将自动生成一个不做任何事的默认析构函数。
  • 对象指针、对象引用、虚函数、纯虚函数:

    • 对象指针的语法定义形式如下:
      • 类名 *对象指针名;
    • 对象引用的定义形式如下:
      • 类名 &对象引用名=被引用对象;
  • 注意:通过对象名或对象引用访问对象的成员,使用的运算符是“.”;而使用对象指针访问对象的成员,使用的运算符是“–>”。如“对象指针名–>数据成员名或:对象指针名–>成员函数名(参数表)

  • 虚函数定义的一般语法形式如下:

    virtual	函数类型	函数名(形参表)
    {
    	函数体;
    }
    
    纯虚函数定义形式如下:
        virtual	函数名=0;
    

JAVA基本语法

  • 类和定义
类的定义格式如下:
[import]
[类修饰符]class xxxclass [extends超类] [implements接口]{
    public:共有数据成员或公有函数成员的定义;
    protected:保护数据成员或保护函数成员的定义;
    private:私有数据成员或私有函数成员的定义;
}
说明:
    ·import包:引入包中的类。
    ·类修饰符:主要有四个修饰符,publicabstractfinalprivate。
    ·class为关键字,xxxclass为类名,命名遵循Java标识符的命名规则。
    ·extends为继承关键字,implements为接口关键字。
    
    
例题:
    class Department{/*代码省略*/}

class SqlserverDepartment3{}

abstract class Shape{
    abstract public void draw()
}

class Rectangle extends Shape{}

当使用extends关键字时,表明继承关系,如上所示:继承的是抽象类,要加abstract关键字。
  • 接口:JAVA中的接口是一种特殊的类,其内部的实现方法只有定义,没有实现,这就是特殊所在,接口定义如下:

    • interface IFactory{}

      class SqlServerFactory implements IFactory

  • 若类使用implements关键字,表明是接口类。

解题技巧

  1. 定义了类的对象后,必须要先初始化(使用new关键字);
  2. 接口(interface)和抽象类(abstract class)(子类继承关键字不同,为implements和extends);
  3. 抽象类中可以有普通的方法(有函数体),也可以有抽象方法(无函数体,方法前要加关键字abstract),而接口中的方法都是默认为抽象方法(因为默认,无需再加任何关键字标识);
  4. this的使用,指代当前对象,一般由两个重名变量的赋值时会使用到,如在构造函数中,参数名和私有变量名相同都为name,就要使用this.name=name;
  5. 题目所给的类图很重要,从中可以查看类之间的关系以及类中的方法。
  • JAVA题总结:
    1. 抽象类、接口相关,继承、实现关键字,抽象类中有抽象方法和普通方法,抽象方法加abstract,接口中方法都是抽象方法,因此反而不需要加abstract。
    2. 类的成员变量、类的方法中参数很重要,若参数是类的对象,则一般会在实现中使用此对象调用类的方法:另外赋值中要注意this的使用,当参数名和变量名相同时使用this。
    3. 结合代码的上下文,明确类之间的关系,结合方法实现的功能,方法中的参数,以及类的成员变量,去解决问题。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值