名词解释:面向对象编程 (OOP)、  面向对象分析(OOA) 、面向对象设计(OOD)

 


1、什么是面向对象思想?

      在一个问题域里面,我们首先考虑的是:

     第一步:在这个问题域里有那些个对象

     第二步:有那些类

     第三步:类之间的关系


     

2、什么是对象、类以及类之间的关系?

  1. 在现实生活中,我们在周边看到的一个个事物。比如:狗、熊猫、电脑、桌子、杯子....等等.。

  2. 在java程序设计当中,对象就是东西,即一切事物既对象。

  3. 类是描述某一类事物相同特征的集合,是对象的模板。比如:动物、人、电脑、车子。

  4. 我们在实际开发中,有许多类,那它们之间的关系有那些呢?

    关联关系:一个类是另外一个类的成员变量,需要另外一个类共同完成

                      class A { public B b }                       class B{}

    继承关系:( is a):只要说得通xx是xx,比如:狗是动物、笔记本是电脑、老师是人

                      class A{}                                           class B extends A{ }

    依赖关系:一个类的方法和另外一个类相关

                      class A{ public void say(B b )}       class B{}

    类中可以声明:属性、方法、构造器;属性(变量)分为:成员变量和局部变量

    成员变量用来定义类的结构,在创建对象的时候就在内存堆中分配空间,成员变量有默认值(基础数据类整数为0,引用类型默认为null),不初始化就可以参与运算。

       局部变量定义在方法中,在运行时候在栈中分配内存空间,必须初始化,才能运算(先赋值,再运算)

 


   

3、this和super关键字的区别?

  1. this:在程序运行期,那个对象在调用this所在的方法,this就代表那个对象,隐含指当前对象

  2. super:指在子类构造第一行使用super调用父类有参构造器,如果没有则是默认存在super();



4、构造器(Constructor)?

   用于创建对象并初始化对象属性的方法叫"构造方法",构造器在类中定义

  1.  构造器名称必须与类名相同,大小写一样

  2. 构造器没有返回值,不能写void,也不写return;

  3. 构造器的参数,一般是初始化对象的前提条件

  4. 类一定有构造器,如果类中没有声明任何构造器,则java编译器会自动插入默认构造器,如果有有参数构造器,则就调用有参构造器,如果没写出无参构造器,但却调用了无参的构造方法,则会报错.

  5. 使用new调用,且对象建立,构造器就运行且运行一次,其中的方法可以调用多次

  6. 构造器不能重写,因为它不能继承,但可以重载




5、访问控制符

  

控制符
自身类
同包
子类
任何地方
public
  √  √  √  √
protected
  √  √  √
默认
  √  √

private
  √


public 任何地位置都可见,可以修饰:类、成员属性、方法、跨包访问(需要导入包)

protected:当前包中可见、子类中可见。可修饰成员变量方法、内部类只能在类体中使用,不能修饰类

默认的:当前包内可见,就是没有任何修饰词,可以修饰类、成员变量、方法、内部类,不能在其它包中访问

private:仅仅在类内部可见,可修饰成员变量成员方法、内部类(只能在类体中使用,不修饰类)



6、对象的创建过程?

7、面向对象的三大特征?

       1)封装

         

       2)继承

       3)多态

       

8、抽象

9、接口

10、内部类

11、向上转型、向下转型

12、单实例

13、反射机制?