1.相比之下少了返回值类型
2.方法名与类名相同
class 类名{
类名(形参列表){
构造方法体;
}
}
class Person {
Person(){
}
}
一、通过构造方法进行成员初始化
public class person {
String name;
int age;
person(String s,int i){
System.out.println("调用了构造方法");
name = s;
age = i;
}
void show(){
System.out.println(name+age);
}
public static void main(String[] args) {
person p1 = new person("关羽",35);
p1.show();
}
}
二、构造方法可以多个 如果需要可以再写一个无参构造
重载
一、方法重载格式
void show(){
System.out.println("show1");
}
void show(int i){//个数不同
System.out.println("show2");
}
void show(int i,double d){//体现在方法参数不同
System.out.println("show3");
}
void show(int i,int j){//体现在参数类型不同
System.out.println("show4");
}
void show(double d, int i){//顺序不同可以
System.out.println("show5");
}
void show(double c,int c){//不能重载 主要是实参过来因为分不清
System.out.println();
}
int show(double c,int c){//主要是实参过来能不能分清
}
建议返回值相同
因为统一的返回值处理类型
不用考虑不同返回值类型 有无返回值对应不同的处理方式
二、方法重载的实际意义
1.调用者只需要记住方法名 通过传参数不同 来调用不同的版本 实现不同的功能 比如打印 打印方法就是重载
this
public class ThisTest {
ThisTest(){
System.out.println("构造方法this ="+this);
}
void show(){
System.out.println("成员方法this ="+this);
}
public static void main(String[] args) {
ThisTest tt = new ThisTest();
tt.show();
}
}
输出结果一直 即 this代表当前正在 / 当前 的对象
当前类的一个引用变量
无论是在 成员方法里还是构造方法里
在直接使用变量时 默认this已经隐藏 编译器会帮加
this.p = p1.p = p
使用一:构造方法里指定成员参数
构造方法里
实参和形参相同时 错误
尽量一致 是为了提高代码的可读性
用this来解决的是就近原创(懒人原则):形参赋给形参
由p调用构造方法 this在构造方法中就是p
person(String name,int age){
System.out.println("调用了构造方法");
this.name = name;
this.age = age;
}
使用二:调用成员方法
void show(){
this.grow();
System.out.println(name+age);
}
使用三:作为方法的返回值(在源码中较多)
person getPerson(){
return this;
}
使用四:在构造方法的第一行 可以使用this调用本类中的其他方法
(抽空了解其应用)
Boy(){this("无名")};
Boy(String name){
this.name = name;
};
调用无参构造函数后 调用了有参