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那里继承下来的属性方法,还可以有自己新定义的属性方法。