java面向对象的基本特征

时间:2022-08-04 19:52:18

1.调用栈:简单说就是一个用于维护程序中方法调用,越先执行的方法越靠近调用栈的底部,当一个方法被执行完后就会从调用栈的顶部移除。

   如果一个java程序是多线程的应用程序,那么它可能拥有多个调用栈。


2.方法调用后可能的三种情况:

  (1) 方法返回一个值,基本数据类型或引用类型。

  (2) 没有返回值。

  (3) 抛出一个异常给函数的调用者,例如,NullPointerException(空指针异常)、ArrayIndexOutOfBoundsException(数组下标越界异常)。

  注意:Java中的方法只能出现在类当中,然后没有main方法的java类不是一个程序。


3.方法签名:方法签名指的是方法{ }之前的所有内容。一个方法方法签名有以下几部分组成:

  (1) 访问修饰符:

    a. public 公开访问级别,允许访问的对象包括:本类的对象、同包不同类的对象、不同包的对象、子类对象;

    b. protected 受访问保护级别,允许访问的对象包括:本类的对象、同包不同类的对象、子类对象;

    c. default(不写) 默认范文级别,允许访问的对象包括:本类的对象、同包不同类的对象;

    d. private 私有访问级别,允许访问的对象只有:本类的对象;

  (2) 可选修饰符:

    static(静态的)、final(最终的)、abstract(抽象的)、native(本地的)、synchronized(同步的)。

    其中static修饰的成员为静态成员,为类的所有成员共享。

    在静态方法中,只能直接调用静态成员,不能直接调用非静态成员。需要调用时用:类名.成员名

    在成员方法中(即不是用static修饰的方法),可直接调用任何成员。

  (3) 返回值类型:

      包括,基本数据类型、引用数据类型、或者是没有返回值为void。

  (4) 方法名:

      可使用任何有效的java表示符。

  (5) 形式参数列表:

      方法名后用括号括起来,用于方法调用时传递数据参数,java中传递参数的方法只有值传递。

  (6) 抛出异常列表:

      使用throws关键字,在方法中出现一个方法本身不能或者不想解决的问题时,抛出一个异常,可抛出多个异常,用逗号隔开。

 

4.方法重载:在同一个类当中有两个或多个相同方法名,但有不同的参数列表的方法时,就叫方法的重载。

 

5.构造器(构造方法):

  (1). 是一个不声明返回值类型,并且方法名必须和类名相同,用于初始化对象中成员变量的一个特殊方法。该方法在实例化对象时被调用。

  (2). 当在类中没有添加构造器时,编译器会自动添加一个无参的构造器,如果我们自己添加了构造器,编译器就不在添加默认构造器。

  (3). 在构造器中,可以使用this()来调用同一个类中其他的构造器,但需注意的是,调用构造器的this语句必须是本构造器中的第一条可执行语句。

 

6.数组:

  (1). 声明一个数组:  数据类型 []  变量名;

    (2). 分配空间:       变量名  =  new  数据类型[长度];  分配空间后数组就会有默认值。

  (3). 声明的同时分配空间:  数据类型 []  变量名 =  new  数据类型[长度];

  (4). 初始化数组:  数据类型 []  变量名 =  new  数据类型[]{};   或   数据类型 []  变量名 = {};

  (5). 数组的长度是固定,一但声明就不能增长或者缩小。然后数组的长度可用    数组名.length  获取。

  (6). foreach (用于数组或集合的遍历) 语法:for(类型   变量名  :    数组或集合名) {}

 

7.继承:

  (1). 在面向对象编程中,可以扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类。

  (2). 已有的类称为父类或基类、超类,子类也可以称为派生类。

  (3). JAVA不支持多重继承,单继承使JAVA的继承关系很简单,一个类只能有一个父类,易于管理程序,同时一个类可以实现多个接口,从而克服单继承的缺点。

  (4). 继承关系是传递的。若类C继承类B,类B继承类A,则类C既有从类B那里继承下来的属性方法,也有从类A那里继承下来的属性方法,还可以有自己新定义的属性方法。