1、普通方法:
语法:
[修饰符] 返回值类型 方法名(参数){
方法体;
}
返回值类型:
- void无返回值
- 还有基本数据类型
例:
public void test(String name){
System.out.println(name);
}
2、构造方法:
语法:
[修饰符] 构造器(参数或者无参数){
}
无返回值类型,
例:
public Test(参数){}
区别:1、构造方法中构造器的名字必须与类名相同;
2、构造方法中无返回值类型的声明;
3、没有指定构造方法时,系统会自动创建;
4、构造方法创建对象时,需要调用new, 例:
Student s = new Student();
作用:构造方法主要用来实例化对象!并且可以通过实例化对象为成员变量赋值;
分析:
- 构造方法是一个与类同名的方法,在Java类中必须存在一个构造方法。
- 如果在代码中没有显示的体现构造方法的话,那么编译器在编译的时候会自动添加一个没有形式参数的构造方法。这个构造
- 方法跟普通的成员方法还是有很多不同的地方。如构造方法一律是没有返回值的,而且也不用void关键字来说明这个构造方法没有返回值。
- 而普通的方法可以有返回值、也可以没有返回值,程序员可以根据自己的需要来定义。不过如果普通的方法没有返回值的话,那么一定要在方法定义的时候采用void关键字来进行说明。
- 其次构造方法的名字有严格的要求,即必须与类的名字相同。
- 也就是说,Java编译器发现有个方法与类的名字相同才把其当作构造方法来对待。
- 而对于普通方法的话,则要求不能够与类的名字相同,而且多个成员方法不能够采用相同的名字。
- 在一个类中可以存在多个构造方法,这些构造方法都采用相同的名字,只是形式参数不同。
Java语言就凭形式参数不同来判断调用那个构造方法。 在下面这段代码中,定义了两个构造方法,一个带参数,另一个没有带参数。构造方法都不会有返回值,不过由于构造方法的特殊性,为此不必要在构造方法定义时带上void关键字来说明这个问题。
//定义一个类,类的名字为student。
public class Student {
//定义一个方法,名字与类相同故为构造方法
public Student() {
this(“Hello!”);
}
//定义一个带形式参数的构造方法
public Student(String name) {
}
}
下面代码不是完整的示例:
Public class Person{
String name;
Sting sex;
double weight;
double heigh;
//无参的构造方法
public Person(){
System.out.print(“这是一个人的构造方法”);
}
//有参的构造方法
public Person(String name,String sex){
this.name=name;
this.sex=sex;
weight = 0.0;
heigh= 0.0;
}
public Person(String name,String sex, double weight,double heigh){
this.name=name;
this.sex=sex;
this.weight=weight;
this.heigh=heigh;
weight = 0.0;
heigh= 0.0;
}
}
//构造方法的使用
public class TestPerson{
public static void main(String []args){
//通过无参构造方法构造对象
Person per = new Person();
//通过有两个String类型参数的构造方法实例化对象
Person per1 =new Person(“周润发”,”男”);
//通过四个参数的构造方法实例化对象
Person per2 =new Person(“张译”,”男”,30,174);
}
}