日期:2014-05-20  浏览次数:20650 次

一些最基本的概念,适合刚接触java者
专家总结的,供大家参考一下,有意见请提出,大家一起分享!!


1。简述java中类和对象的概念以及它们之间的关系。
类是对一组相关对象相同特征的封装,类包含字段(数据)和称为方法的片断指定对象的行为,依据变量和方法实现数据类型的抽象,一个类包含着表示类型值的实例对象。类之间通过继承使新类的对象包容原有类对象的所有特征。对象具有信息隐藏的属性。一个类可以实例化多个对象。

2。什么是抽象,封装?
抽象是对类的多个对象相似行为及属性的组合概括,排除不必要的细节,概括地描述一个概念。封装是以类和方法对抽象出的对象属性和行为的包装,实现信息隐藏以提供给客户,客户只需知道类所提供的共有服务。是对一个对象的内部特征和结构的局部化和维护。

3。解释is-a   关系和has-a   关系的异同。
is-a关系代表继承,子类对象可以视为超类对象。has-a关系代表组合,表示某个类的对象包含其他类对象的引用。is-a关系中子类只能继承于一个超类,只有一个is-a关系;has-a关系中某类可以包含多个其他类的对象,即有多个has-a关系。

4。静态成员(类成员),非静态成员(对象成员)。  
静态成员只生成唯一副本,所有类的对象共享同一块数据。非静态成员被不同对象访问使用不同数据副本。另外,两者被调用语法不同,非静态成员以对象引用及点运算符为前缀调用,而静态成员只需以类名及点运算符为前缀。静态方法中不能访问非静态成员。

5。成员方法中出现的this,   super分别表示什么含义?   这些关键字可以出现在static   (静态)   方法中吗?   为什么?
当成员方法的局部变量与该类成员变量同名时使用关键字this可以在方法中访问被屏蔽的成员变量。当子类重定义超类方法时,使用super访问超类同名方法。静态方法不能使用this引用,因为静态方法独立于类的任何对象而存在,并与是否实例化该类对象无关。

6。什么是方法重载(overload),方法重定义(override)?可以仅通过采用不同的返回类型来重载方法吗?为什么?
方法重载是指在同一作用域中声明具有相同方法名不同参数列表的方法,以执行类似任务。参数列表的不同包括参数个数,类型及顺序。方法重定义指子类中对超类继承来的方法进行重写,改变行为的实现方式,重新定义和专门化其超类的一个相同类型的方法。重定义方法时必须使用与超类方法完全相同的声明方式。不可以通过不同返回类型来重载方法,便一起无法根据返回类型区分。
        
7。解释成员绑定(binding),静态绑定和动态绑定的含义。Java中是采用何种方式完成数据成员访问和成员方法的绑定的?
成员绑定:将程序中使用的名字和某个变量或者方法联系起来的行为。
动态绑定:运行时绑定,在实例化对象时据对象实际类型调用成员方法。
静态绑定:编译时绑定,据对象引用声明时类型调用数据成员和类方法。
         数据成员为静态绑定,成员方法为动态绑定
        
8。解释private,protected和public访问控制的异同。Java中除了这三种访问控制之外,还有其他形式的访问控制形式吗?如果有,请解释其使用形式及含义。
public变量和方法只要在有对所在类的引用时就可以访问;private变量和方法只能在所在类中声明的方法中可以直接访问,不能被继承。类的对象可以通过类的共有方法访问private变量;超类提供的protected成员保护级别介于public和private之间,超类成员,子类成员以及同一包内的类成员可以访问。此外有另一种包访问控制形式,当没有为声明方法和变量没有指定访问修饰符时,默认具有包访问能力,即该变量或方法可被同一包内其他类的对象访问。
        
9。解释final关键字用于修饰成员变量和成员方法时不同的含义。  
成员变量:表示声明一个不允许改变值的常量,且常量必须在声明时或在构造函数中被初始化。final常量名使用全大写拼写。
成员方法:子类不能重定义超类中声明的final成员方法,在调用final方法时以内联代码的形式编译。

http://www.javaresearch.org/faq/thread.jsp?column=723&thread=29572


------解决方案--------------------
没有几个经常用的。
------解决方案--------------------
这些是基础