栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

什么是构造方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么是构造方法

1.构造方法:

构造函数、构造器、构建器--------复用给成员变量赋初值的代码
1.1.作用:给成员变量赋初值
1.2.与类同名,没有返回值类型(连void都没有)
1.3.在创建对象时被自动调用
1.4.若自己不写构造方法,编译器会默认提供一个无参的构造方法,若自己写了构造方法,则不提供默认方法
1.5.构造方法可以重载

2.this:

指代了当前对象,哪个对象调用了方法就指代哪个对象
    关键字,只能用在方法中,方法中访问成员变量之前默认有个this.
    this的用法:this.成员变量名---------访问成员变量
    成员变量与局部变量重名时,若想访问成员变量,则this不能省
    this.方法名()-------调用方法(一般不用)

public class Student {
    String name; //成员变量
    int age;
    String address;
    Student(){
        this("无名氏",1,"不知道"); //调用三个参数的构造方法
    }

    Student( String name,int age,String address){ //局部变量,当前方法中使用
        int a;
        this.name =name; //this访问的就是成员变量,无this表示的是就近,也就是局部的变量
        this.age = age;
        this.address = address;
    }

    void  sayHi(){
        System.out.println("大家好,我叫"+this.name+",今年"+this.age+"岁了,家住"+this.address);
    }

    java规定成员变量和局部变量是可以同名的,使用的时候采用默认原则,若想访问成员变量,则this不能省
    构造方法到底要不要参数,要看对象的数据能不能写死,如果对象的数据都一样,意味着可以写死,不需要传参,如果对象的数据不一样,意味着不能写死,那就需要传参

super:

指代当前对象的父类
     super的用法:
       super.成员变量名---------访问超类的成员变量
       super.方法名-----------访问父类的方法------------
       super()--------------调用父类的构造方法

class Coo{
    void show(){}
    double test(){return 0.0;}
    //Student say(){return null;}
    Person sayHi(){return null;}
}

class Doo extends Coo{
    //int show(){return 1;} //编译错误,void时必须相等
    //int test(){return 0;} //编译错误,基本类型时必须相等
    //Person say(){return null;} //编译错误,引用类型时必须小于或等于
    Student sayHi(){return null;} //正确,student小于person
}
   报错:

null和NullPointerException:
    null只是相对于引用类型而言,他与基本类型之间一点关系都没有
    null:表示空,没有指向任何对象,若引用的值为null,则盖印用的不能进行任何操作,若进行操作则会发生NullPointerException空指针异常

3.1.内存管理:

由JVM来管理
堆:new出来的对象(包括成员变量)
栈:局部变量(包括方法的参数)
方法区:之后再讲

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1027833.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号