- 方法签名
许多程序语言(C和C++)用函数这个术语来描述子程序,而在java中却常用方法这个词来表示“做某些事情的方式”。方法的基本的组成部分包括:名称、参数列表、返回值和方法体。形式如下:
权限修饰词 返回类型 方法名 (参数列表){
方法体;
}
public String getName(int i){
if(i>0){
return "张三";
}
return "李四";
}
返回类型表示调用方法之后返回数值的类型;
参数列表给出了要传给方法的信息的类型和名称。
方法名和参数列表合称为“方法签名”,这是一个方法唯一的标识。
一个类中,不可以有两个方法的签名完全相同(方法名和参数列表完全相同)
- 方法的重载
在一个类中,定义方法名称相同,参数列表不相同,这样的方法称为方法的重载。调用方法时,输入不同的参数会调用不同的方法。
System.out.println();其中的println()就是典型的方法的重载例子。
我们可以不给println()传参数,那么运行结果将会打印“\n”换行指令;
我们可以给他传递String型,如println(“ABC”);毫无疑问,运行后控制台会打印"ABC\n",输出String的值加换行。我们调用的是相同的方法名,参数列表不同就会调用不同的重载方法,运行成不同的结果。
那么方法重载的意义何在,接着,我们介绍构造方法。 - 构造方法
构造方法的作用就是初始化类,我们都知道类是new出来的,
如:A a = new A(); 这里的A()就是类A的构造方法。
构造方法就是方法名与类名完全一致的方法,用于类的初始化。
我们的疑问在于,类A并又没定义方法A(),为何能够直接调用?这是java语言的特性之一,当我们建立一个类,没有定义任何的构造方法时,编译器会默认给一个没有参数的构造器供你使用,这也就是无参构造器(默认构造器)。
当然,无参构造器完全可以自己定义,这样就可以手动加入方法体。
当我们手工定义构造器时(无参或有参),编译器将不会提供无参构造器。
如有个类Tree我们只定义了一个构造器Tree(int), 则系统不会允许你使用其他方法来构造Tree。
构造器特点如下:
1)给成员变量赋初值
2)与类同名,无返回值类型
3)在创建(new)对象的时候自动调用构造方法
4)若自己不写构造,则编译器默认给一个无参数的构造方法,
如果自己写了,则编译器调用构造方法,不在默认无参构造方法;
5)构造方法可以重载
如:
public class teacher{
public teacher(){}
public teacher(String name){
System.out.println(name);
}
private teacher(int i){}
}
在上面的例子中,我们可以用teacher();和teacher(“张三”);来构造类teacher。但是不能够用teacher(1);(因为这个构造器是private私有的)以及其他的方式。