@java入门基础
构造方法
实例化一个对象后,要为这个对象中的属性赋值,可以通过调用构造方法来实现;构造方法是类的一个特殊成员,会在类实例化对象是被自动调用;
1.构造方法的定义
*定义构造方法的条件:
- 方法名与类名相同
- 在方法名的前边没有返回值类型的声明
- 在方法中不能使用return语句返回一个值
定义一个构造方法
Example1:
class Student(){
//下面是类的构造方法
public Student(){
System.out.println("无参的构造方法被调用了");
}
}
public class Example1t{
public static void main(String[] args){
Student p = new Student();//实例化Person对象并自动调用构造方法Student()
}
}
定义一个有参的构造方法可以实现对属性的赋值
Example2
class Student{
int age;
public Student(int a) {
age = a;//为age属性赋值
}
public void speak() {
System.out.println("我今年"+age+"岁");
}
}
public class Example2 {
public static void main(String[] args) {
Student s = new Student(20);//实例化Student对象并赋值,自动调用有参的构造方法
s.speak();
}
}
**2.构造方法的重载
在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可;
Example3:
class Student{
String name;
int age;
public Student(String name,int age){
this.name = name;
this.age = age;
}
public Student(String name) {
this.name = name;
}
public void speak() {
System.out.println("大家好,我叫"+name+",我今年"+age+"岁了");
}
}
public class Example3{
public static void main(String[] args){
Student s1 = new Student("张三");
Student s2 = new Student("张三",18);
//s1,s2根据输入参数的不同分别调用不同的构造方法
s1.speak();
s2.speak();
}
}
注意:
- 在Java中的每个类都至少有一个构造方法,如果在一个类中没有定义构造方法,系统会自动为这个类创建一个默认的无参构造方法;
- 一旦为该类定义了构造方法,系统就不再提供默认的构造方法了;
- 为了方便实例化对象,构造方法通常会使用public来修饰;
- 方法不可以嵌套,在一个方法内部,不允许在定义方法;