构造方法 、重载、this

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;
    };

调用无参构造函数后 调用了有参

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值