Java面向对象的几个原则/语言设计的分类和特点

面向对象的几个原则

所谓面向抽象编程,是指设计一个类时,不让该类面向具体的类,而是面向抽象类或接口,即所设计类中的重要变量是抽象类或接口声明的变量,而不是具体类声明的变量。

public abstract class Window {    //抽象类
    abstract void getMaterial();
}
public class Building {
    Window window;	//抽象类
   Building(){
   }
    public void setWindow(Window window) {
       this.window = window;
    }

    public void showWindow() {
       window.getMaterial();
    }

    public static void main(String[] args) {
        Building building = new Building();
        building.setWindow(new WoodWindow());
        building.showWindow();
        building.setWindow(new AluminiumWindow());
        building.showWindow();
    }
}

“开-闭”原则(open-closed principle)就是让设计的系统应当对扩展开放,对修改关闭,“开-闭”原则的本质是指当系统中增加新的模块时,不需要修改现有的模块。在设计系统时,应当首先考虑到用户需求的变化,将应对用户变化的部分设计为对扩展开放,而设计的核心部分是经过精心考虑之后确定下来的基本结构,这部分应当是对修改关闭的,即不能因为用户的需求变化而再发生变化,因为这部分不是用来应对需求变化的。

如果系统设计遵守了“开-闭”原则,那么这个系统一定是易维护的。设计某些系统时,要面向抽象来考虑系统的总体设计,这样就容易设计出满足“开-闭”原则的系统,在程序设计好后,首先对abstract类的修改关闭,否则,一旦修改abstract类,将可能导致它的所有子类都需要做出修改;应当对增加abstract类的子类开放,即再增加新子类时,不需要修改其他面向抽象类而设计的重要类。

public class WoodWindow extends Window {	//增加子类
    @Override
    void getMaterial() {
        System.out.println("木质材料");
    }
}
public class AluminiumWindow extends Window {	//增加子类
    @Override
    void getMaterial() {
        System.out.println("铝材料");
    }
}

相关知识点2

如果一个对象a组合了对象b,那么对象a就可以委托对象b调用其方法,即对象a以组合的方式复用对象b的方法。通过组合对象来复用方法的优点是:通过组合对象来复用方法也称“黑盒”复用,因为当前对象只能委托所包含的对象调用其方法,这样一来,当前对象所包含的对象的方法的细节对当前对象是不可见的。另外,对象与所包含的对象属于弱耦合关系,因为如果修改当前对象所包含的对象的类的代码,不必修改当前对象的类的代码

public class Judge {//一个裁判
    public double getArea(double a, double b) {
        return (a + b) / 2;
    }
}
public class Compete {
    double scoreA;
    double scoreB;
    Judge judge;    //
    Compete(double A,double B){
        scoreA = A;
        scoreB = B;
        judge= new Judge();
    }
    public double getScore(){
        return judge.getArea(scoreA,scoreB);//委托对象调用方法
    }

    public static void main(String[] args) {
        Compete compete = new Compete(12.2,13.4);
        double score = compete.getScore();
        System.out.println("最终的得分: "+ score);
    }
}

指导

一个类的成员变量可以是Java允许的任何数据类型,因此,一个类可以把对象作为自己的成员变量,如果用这样的类创建对象,那么该类中就会有其他对象,也就是说该对象将其他对象作为自己的组成部分(也就是人们所说的has-A),或者说该对象是由几个对象组合而成的

语言设计的分类和特点

程序设计语言是用来编写计算机程序的语言,是对计算任务的处理对象和处理规则的描述,可以分为机器语言汇编语言和高级语言三类。根据程序设计的方法大致把程序语言分为命令式程序设计语言面向对象程序设计语言函数式程序设计语言逻辑型程序设计语言等。命令式程序设计语言有Fortran、Pascal和C语言;面向对象程序设计语青有C++、Javg和Smaltalk等;函数式语言有Lisp;逻辑型程序设计语言有Prolog

CET4P212

  • pollute
  • persist
  • principle
  • reputation
  • notify
  • spill
  • wealth
  • overall
  • ending
  • character
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值