最近遇到几道类似的笔试题: 1.请实现一个单例模式的类,要求线程安全。 2.用C++设计一个不能被继承的类。 3.如何定义一个只能在堆上(栈上)生成对象的类? 这些题目本质上都跟单例模式相关。单例模式 单例模式就是保证一个类只有一个实例,并提供一个访问它的全局访问点。首先,需要保证一个...
分类:
编程语言 时间:
2015-09-04 15:34:49
阅读次数:
228
1.什么是不能被继承的?private,static,synchronized,final(可被继承,但不可被覆盖)2.关于成员变量被private 修饰,就是不能在子类被继承,但是为什么 例如setter/getter 之类和成员变量直接关联的方法依然可以在子类中使用呢?
分类:
编程语言 时间:
2015-09-01 16:57:12
阅读次数:
196
只能在堆上定义的对象可以通过声明构造函数是私有的,然后提供两个静态的方法,一个方法用来获取堆上的对象,一个用来释放堆上的对象。C++中定义一个不能被继承的类中第二种方法就是通过这种方式声明了一个不能被继承的类,但是这个类的对象就只能位于堆中了。
那么如何一定一个只能在栈上构造的对象?
这个就涉及到了C++中new这个操作符,它包含两步:
调用一个全局的operator new函数...
分类:
其他好文 时间:
2015-08-31 17:25:37
阅读次数:
153
一种错误的解法
最开始是从构造函数开始着手(先声明这种方法不能定义一个不能被继承的类,这是一种错误的方法,但是很容易往这方面想),假设存在下面的继承体系:
现在假设B是一个不能被继承的类,那么如果存在B的子类C,那么C的构造过程应该会报错,那么如何能够让B能正常构造而C不能正常构造呢?首先A,B,C的构造函数和析构函数都假设是public的,最开始想的是让B私有继承自A,根据priva...
分类:
编程语言 时间:
2015-08-31 11:55:42
阅读次数:
256
如果用dos来编译java文件,可能会无法使用javac来编译,究其原因还是配置path环境时,要用jdk绝对路径而不能用相对路径
当然在IDE里用相对路径就可以了
final申明的类不能被继承,方法不能被重写,修饰的变量变成常量,不可被修改
MVC
该注释不会显示在客户端,
该注释会显示客户端
JSP内置对象之get和post的...
分类:
编程语言 时间:
2015-08-29 00:55:52
阅读次数:
201
final顾名思义就是“最终的,最后的”。
final修饰方法可以得到“最后的方法”,即不能被子类重写的方法。
class NbaPlayer{
final public function eat($food){
echo "food is ".$food;
}
}
final修饰类可以得到“最后的类”,即不能被继承的类。
final cla...
分类:
Web程序 时间:
2015-08-25 23:50:25
阅读次数:
196
final,finally和finalize的区别: final:最终的意思,可以修饰类,成员变量,成员方法 修饰类,类不能被继承 修饰变量,变量是常量 修饰方法,方法不能被重写 finally:是异常处理的一部分,用于释放资源 ...
分类:
编程语言 时间:
2015-08-15 16:16:47
阅读次数:
126
1、父类私有的成员不能被继承2、父类的构造函数不能被继承3、创建子类对象的时候会默认先调用父类的无参的构造函数。(为什么要调用父类的构造方法?答案:初始化从父类继承下去的属性的!)注意:调用和继承直接没有关系3创建子类对象的时候会默认先调用父类的无参的构造函数..
分类:
编程语言 时间:
2015-08-14 19:44:08
阅读次数:
153
final、finally、finalize差异1.final修饰符它代表了一类是完美的类,它不能被继承,因此。一个类不能既被标记为final类别。同一时间被标记为abstract。将变量或者函数申明为为final,表示该变量和函数在使用中不能被改动。一个函数一旦被声明为final就在子类中不能被重...
分类:
其他好文 时间:
2015-08-14 15:31:40
阅读次数:
161
/*** private:私有的 外部不能直接访问的 但是可以通过一定手段* 被private修饰的变量和方法都不能被继承*/代码 : public class private_1{ public static void main(String[] args){ Zhi z = new Zhi();...
分类:
其他好文 时间:
2015-08-10 21:43:39
阅读次数:
97