1.面向对象的软件开发有哪些优点?
面向对象设计是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在“对象”概念基础上的方法学。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。
从面向过程到面向对象是程序设计技术的一个飞跃。人们之所以要采用面向对象的程序设计技术,其目的在于:按照与人类习惯思维方法一致的原则开发系统;提高代码的可重用性(或者称为复用性);提升程序的开发与运行效率;提高程序的可靠性与可维护性;提高程序的可扩展性;增强程序的可控制性。总之,面向对象的程序设计,能够有效分解、降低问题的难度与复杂性,提高整个求解过程的可控制性、可监视性和可维护性,从而获得较高的开发效率与可靠效果。
2.什么叫对象?什么叫类?类和对象有什么关系。
对象(Object)是一个应用系统中用来描述客观事物的实体,是具有特定属性(数据)和行为(方法)的基本运行单位,是类的一个特定状态下的实例。对象是一件事、一个实体、一个名词、一个可以想象为有自己的标识的任何东西。对象是类的实例化。概括来说:万物皆对象。对象具有状态,一个对象用数据值来描述它的状态。
类(Class)是Java代码的基本组织模块,是用以描述一组具有共同属性和行为的对象的基本原型,是对这组对象的概括、归纳与抽象表达。类是对象的模板,它定义了本类对象所应拥有的状态属性集及操作这组属性的行为方法集。是对一组有相同数据和相同操作的对象的定义,一个类所包含的方法和数据描述一组对象的共同属性和行为。
类和对象之间的关系是抽象和具体的关系:类就是一种模板,表达的是一种抽象的概念,它描述了该类对象的共同特征,类是在对象之上的抽象,对象则是类的具体化,是类的实例。对象是模板的实例化,是个性的产物,是一个具体的个体;类必须通过对象才能使用,而对象中的属性和行为都必须在类中定义;类由属性和行为(方法)组成。
3.什么是包?把一个类放在包里有什么作用?
Java中的包(Package) 是一种松散的类的集合,是用来组织与管理类与接口的容器。包的作用主要是把需要协同工作的不同的类组织在一起,使得程序功能清楚、结构分明。
4.作用域public、private、protected以及不写时(default)有什么区别?
当用一个类创建了一个对象之后,该对象可以通过“.”运算符访问自己的变量,并使用类中的方法。但访问自己的变量和使用类中的方法是有一定限制的。通过修饰符private、default、protected和public来说明类成员的使用权限。
private(私有的):类中限定为private的成员只能在这个类中被访问,在类外不可见。
default(无修饰符,缺省的):如果没有访问控制符,则该类成员可以被该类所在包中的所有其它类访问。
protected(受保护的):用该关键字修饰的类成员可以被同一类、被该类所在包中的所有其它类或其子类(可以不在同一包中)的实例对象访问。
public:用public修饰的类成员可以被其他任何类访问,前提是对类成员所在的类有访问权限。
类成员访问控制符与访问能力之间的关系
同一个类 同一个包 不同包的子类 不同包非子类
private *
default * *
protected * * *
public * * * *
5.什么是方法?方法的结构是怎样的?设计方法应考虑哪些因素?
方法是Java类的一个组成部分,通过类的方法改变对象的状态。
方法的结构:[方法修饰符] 返回值类型 方法名([形参列表])[throws异常列表]
{
方法体;
}
设计方法应考虑因素有:
(1) 方法名是Java中任意的标识符,按照命名的约定,方法名应该是有意义的动词或动词短语,它的第一个字母一般要小写,其他有意义的单词的首字母要大写,其余字母小写。
(2) 返回值类型可以是任意的Java类型,甚至可以是定义此方法的类。如果方法没有返回值,则用void表示。
(3) 形式参数列表是可选的。如果方法没有形式参数,就用一对小括号“()”表示。形式参数列表的形式如下: (类型 形参名,类型 形参名,……)
(4) throws异常列表规定了在方法执行中可能导致的异常。