文章列表
1.java提供实现接口+继承抽象类两种方式可以用来定义允许多个实现的类型,也就是被扩展。
·采用继承抽象类的方式
缺点:会破坏类的层次结构。单继承所导致
优点:
1)可以提供使用者(子类)实现上的帮助。我的理解 ...
create or replace type string_sum_obj as object (
--聚合函数的实质就是一个对象
sum_string varchar2(4000),
static function ODCIAggregateInitialize(v_self in out string_sum_obj) return number,
--对象初始化
member function ODCIAggregateIterate(self in out string_sum_obj, value in varchar2) ...
软件的可维护性与可复用性
- 博客分类:
- 软件架构
系统的维护性(可扩展性)是由:“开-闭”原则、里氏代换原则、依赖倒转原则、组合/聚合复用原则所保证的。
系统的灵活性是由:“开-闭”原则、迪米特法则、接口隔离原则所保证的。
系统的复用性(可插入性)是由:“开-闭”原则、里氏代换原则、依赖倒转原则、组合/聚合复用原则所保证的。
“重载(overload)”: 1、overload时,方法的参数类型、个数至少有一个不相同; 2、overload不检查:方法的返回类型、方法的访问权限、方法所抛异常
3、两个func完全是不同的函数。只是恰好函数名相同。这两个func在虚函数指针表占用了两个不同的Entry. vtable Entry 1: void func(Number) Entry 2: void func(String)
4、overload是编译期就决定了调用哪个函数; 编译器根据方法参数类型、个数的不同,产生了不同的调用函数地址(不同的Entry)的jvm指令5、overl ...
public class nhn {
public static int f(int x){
if(x==0)
return 0;
else
return 2 * f(x - 1) + x*x;
}
public static int f1(int x){
if(x==0)
return 0;
else{
int sum = 0;
for(int i=0;i<=x;i++){
sum = sum * 2 + i*i;
}
return sum;
}
}
pu ...