/////////////////////////2016-11-7//////////////////////////
int test(){
1.请说明一个JAVA类中主要包含哪几个元素?并说明每种元素的作用。
JAVA类中主要包含属性、方法、构造方法、块以及内部类。属性用来定义对象的数据;方法用来定义对象的行为;构造方法可以用来创建对象;块能够用来在类加载时执行操作或者在每次实例化前执行通用操作;内部类作为类的一个成员存在,能够访问外部类的属性和方法。
2.请说明构造方法的作用和特征
构造方法的作用是用来创建对象,使用new关键字调用。构造方法的名字必须与类的名字相同,并且大小写敏感,同时构造方法不能声明返回值类型,可以使用任意一种访问修饰符,但是不能使用其他修饰符进行修饰,如static、final、abstract等修饰符都不可以修饰构造方法。
3.请列举Java语言中的权限访问修饰符,并说明每种权限的含义。
下表为Java访问控制符的含义和使用情况
类内部 本包内 类 外部包
public √ √ √ √
protected √ √ √ ×
default(默认) √ √ × ×
private √ × × ×
4.什么叫引用类型,引用类型和基本数据类型有什么区别?
Java语言中除了基本数据类型之外的类型,都称为引用类型。引用类型就是类的类型,所有的对象都是引用类型,包括数组对象。引用类型必须使用new调用构造方法进行赋值,引用类型的变量拥有自己的属性和方法,可以使用圆点调用自己的属性和方法。基本数据类型直接使用=号进行赋值,且没有自己的属性和方法,往往都在声明属性或方法时使用。
5.请说明Java语言中的值传递规则。
基本数据类型传递的是值,引用类型传递的是引用,即虚地址。
6.使用static修饰属性或方法后,属性和方法有什么特征?
static修饰属性或方法后,属性和方法不在属于某个特定的对象,而是所有共享,也可以说是static成员不依赖某个对象,在类加载时就被初始化。Static修饰的属性或方法,可以直接使用类名调用,而不用先实例化对象再调用。
7.使用final修饰属性后,属性有什么特征?
fianl修饰属性后,属性就成为一个常量。常量只要被赋值,就不能被改变。
8.继承有什么作用,Java语言中的继承有什么特点?
继承主要为了能够重复使用父类中的成员。Java语言中的继承是单继承,也就是说一个类最多只能继承一个父类。
9.什么是方法覆盖(override)?并说明方法覆盖与方法重载(overload)的区别。
覆盖是发生在继承关系的子类中,当子类要修改从父类继承的某个方法的方法体时,就可以在子类中声明一个与父类同名、同参数并且同返回值类型的方法,这就是方法覆盖。而重载与继承没有关系,指的是在一个类中可以同时声明多个同名但不同参数的方法,称为重载。
10.请说明什么是抽象类?抽象类有什么作用?
抽象类是不能实例化的类,使用abstract修饰。抽象类往往用来做父类使用,定义一些子类的共同属性或行为。
11.请说明抽象方法的含义,并说明抽象类与抽象方法的关系。
抽象方法是没有方法体的方法,使用abstract修饰。抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类。
12.说明super关键字的两种用法。
super():表示调用父类中的构造方法:又如super(10);表示调用父类中的具有一个整型参数的构造方法。第二种用法是在子类中调用父类中的成员,如super.f();意思是调用父类中的f()方法。
13.说明什么情况下使用this关键词?
第一种情况是当我们想要调用当前对象的属性或者方法时候,可以通过this关键字来调用;第二种情况是当我们想调用当前对象的其它构造函数的时候,可以使用this关键字
14.final类与final方法有什么作用?
final类是不能够被继承的类,称为终极类,如String类就是final类,不能有子类。final修饰方法后,是终极方法,不能被子类覆盖,但是可以被子类继承使用。
15.简要说明Object类有什么特点?
Object类是所有类的直接或间接的父类。
16.Object类中的toString方法有什么用?
toString方法可以把对象作为字符串返回。
17.简要说明Object类中的equals方法和hashCode方法。
Object类中的equals方法用来比较两个引用值,hashCode用来返回引用的内地址的十六进制数值。在Set以及Map集合中,判断两个元素是否重复时,往往需要使用这两个方法。这两个方法往往被子类覆盖,覆盖的规则是:如果存在x和y两个对象,调用x.equals(y)返回true时,那么调用hashCode方法的返回值也该相同;如果x.equals(y)返回false时,那么调用hashCode方法返回的值可能相同,也可能不同。
18.接口有什么特点,与抽象类有什么区别?
接口的特点是不能定义变量,而且所有方法都是抽象方法。而抽象类中可以有变量,也不强制必须有抽象方法。
19.类继承父类与类实现接口,有什么区别?
类继承父类只是单继承,也就是一个子类最多只有一个父类;而类实现接口可以多实现,
就是一个子类可以同时实现多个接口,并覆盖所有接口中的所有抽象方法。
20.组合和继承各有什么特点?什么情况下使用组合,什么情况下使用继承?
继承,父类与子类之间存在is-a的关系,子类可以调用父类的方法,创建子类时,无需再创建父类;组合体现的是整体与部分,拥有关系,即has-a的关系,是通过对现有的对象进行拼装(组合)产生新的、复杂的功能.因为组合更加安全、灵活、高效,所以在同等情况下,推荐使用组合。
21.说出至少3中Java面向对象的设计原则
1.单一职责原则
2.里氏替换原则
2.依赖倒置原则
4.接口隔离原则
5.迪米特法则
6.开闭原则
7.组合/聚合复用原则
22.说出3个你了解的设计模式,并用一两句话描述模式的应用场景
1.工厂方法模式:创建一个工厂类,对实现了同一接口的一些类进行实例的创建。
2.单例模式:保证一个对象在整个程序中只有一个实例存在。
3.适配器模式:将某一个类的接口转换成客户端期望的另一个接口表示,目的是消除兼容问题。
4.代理模式:创建一个代理类,替原对象进行一些操作。
5.观察者模式:当一个对象发生变化时,其它依赖该对象的对象会接收到通知。
6.迭代子模式:顺序访问聚集中的对象。
7.命令模式:使命令的发出者和执行者之间解藕,实现请求和执行分开。
}