构造方法(无参数)
- 方法名必须和所在类名相同;
- 且没有返回值(记住了没有返回值如果你public void 就不是一个构造方法)
- 自动执行且优先级高于普通方法
class Student {
// 方法名必须和所在类名相同,
// 且没有返回值
// 且优先级高于其他方法还不用调用会
public Student() { // 构造方法
System.out.println("我会自己执行,因为我是构造函数!");
}
public void call() { // 普通方法
System.out.println("我是普通方法!");
}
}
public class MethodsThree {
public static void main(String[] args) {
Student s = new Student();
// 这里并没调用构造函数,但运行会先执行构造函数
s.call();
}
}
// 我会自己执行,因为我是构造函数!
// 我是普通方法!
构造方法(有参数)
- 参数定义了几个就得在创造实例时传几个参数且必须同类型
class Student {
String name;
char gender; // 性别
String face;
// 三个参数
public Student(String name, char gender, String face) {
name = name;
gender = gender;
face = face;
System.out.println("性别"+gender+",姓名"+name+",外貌" + face );
}
}
public class MethodsThree {
public static void main(String[] args) {
Student s = new Student("殿峰", '男' , "一言难尽"); // 三个参数类型统一
}
}
// 性别男,姓名殿峰,外貌一言难尽
方法的重载
- 相同名字,参数数量相同,但参数类型不同的方法称之为重载
class Student {
// 方法的重载
public void setHeight(float h) {
System.out.println("身高(float类型):" + h);
}
public void setHeight(double h) {
System.out.println("身高(double类型):" + h);
}
}
public class MethodsThree {
public static void main(String[] args) {
Student s = new Student();
// 传不同参数调用同一个方法名,但实际不同方法。
s.setHeight(155.4f);
s.setHeight(165.6);
}
}
// 身高(float类型):155.4
// 身高(double类型):165.6
构造方法的重载
class Student {
// 构造的方法的重载
public Student(String name, char gender, String face) {
System.out.println("性别"+gender+",姓名"+name+",外貌" + face );
}
public Student(char gender, String name ) {
System.out.println("性别和名字调换位置的构造方法" );
}
public Student() {
System.out.println("没得参数的构造方法" );
}
}
public class MethodsThree {
public static void main(String[] args) {
Student s = new Student("殿峰", '男' , "一言难尽");
Student zs = new Student();
Student ls = new Student('男', "李四");
// Student ls = new Student("李四", '男' ); // 报错!!!
}
}
// 性别男,姓名殿峰,外貌一言难尽
// 没得参数的构造方法
// 性别和名字调换位置的构造方法
网友评论