您的位置:首页 > 编程语言 > Java开发

java面向对象

2016-07-05 09:53 405 查看
Java被称为是一种更"纯粹"的面向对象程序设计语言。在java中几乎一切都是对象。

Alan Kay(艾伦凯):天才计算机大师阿伦凯,他是Smalltalk面向对象编程环境语言的发明人之一,

也是面向对象编程思想的创始人之一,他还是笔记本电脑最早的构想者和现代Windows GUI的最初尝试者。

Alan Kay(艾伦凯)总结了面向对象的程序设计五个基本特征:

1)万物皆对象。

2)程序是对象的集合,它们通过发送消息来告知彼此所要做的。

3)每个对象都有自己邮其他对象所构成的存储。

4)每个对象都拥有其类型。

5)某一特定类型的所有对象都可以接收同样的消息。

对象的创建和生命周期:Java内部采用动态内存分配方式,每当想要创建新对象是,就要使用new关键字来构建此对象的动态实例。

生命周期,通俗讲就是从生到死的过程,java内部提供了被称为垃圾回收机制,她可以自动发现对象何时不再被使用,并继续销毁它。

更重要的是垃圾回收器可以避免暗藏的内存泄漏问题。垃圾回收器知道对象何时不再被使用,并自动释放对象占用的内存。

1.java面向对象特征有哪些?

答:众所周知,Java中的面向对象的三大基本特征是:【封装】,【继承】,多态】

封装: 对象有一个明确的边界,对象各司其职,

1.1)属性(私有private,提供set,get方法)。

1.2)方法:公开或私有public、private。

1.3)方法声明(公开),方法实现(隐藏)。

继承:

1.1):子类继承父类的共性,例如:狗继承动物(dog extends animal{}),关键字extends.

1.2):在java中一个类最多最能有一个直接的父类,单继承(简单性,树状结构),c++中是单继承。

1.3):java中药实现多继承,需要通过接口来实现。

1.4):父类中所有的属性和方法都能继承给子类,私有方法除外。

多态:

1.1):父类的引用指向子类的实例,例如:Animal a = new Dog();

原则:对象类型不变,引用调用其类型中定义的方法。

2.接口和抽象类的区别是什么?

答:接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,

而抽象类是可以有私有方法或私有变量的,另外,实现接口的一定要实现接口里定义的所有方法,

而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,

然后是抽象类实现接口,最后才到具体类实现。还有,接口可以实现多重继承,而一个类只能继承一个超类,

但可以通过继承多个接口实现多重继承,

3.final,finally,finalize的区别?

答:

final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,

不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。

将变量或方法声明为final,可以保证它们在使用中不被改变。

被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。

被声明为final的方法也同样只能使用,不能重载。

finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。

这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,

因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。

finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: