关于Java中构造方法的问题以及回答
程序员文章站
2022-03-28 20:05:16
构造方法 概念: 又叫 构造器,区分于传统的方法,是一个在创建对象时被系统自动调用的特殊方法 作用: 一:为对象进行初始化(成员变量)的工作 二:为对象在堆内存中开辟独立的内存空间 定义格式: 访问修饰符 方法名(){ } 用法: 只能通过new关键字进行调用 注意事项: 一:方法名必须和类名保持一 ......
构造方法
概念:
又叫 构造器,区分于传统的方法,是一个在创建对象时被系统自动调用的特殊方法
作用:
一:为对象进行初始化(成员变量)的工作
二:为对象在堆内存中开辟独立的内存空间
定义格式:
访问修饰符 方法名(){
}
用法:
只能通过new关键字进行调用
person{ public person(){ } } //代码测试 public static void main(string [] args){ person per = new person(); }
注意事项:
一:方法名必须和类名保持一致
二:当一个类中没有定义构造方法时,系统会自动加载一个无参的构造方法
//一:不写构造方法,系统默认加载构造方法 construction con = new construction(); con.eat(); 运行结果如下: 我是:null,今年:0岁,喜欢吃拉面
三:如果用户重新定义了一个构造方法,那么java提供的无参的构造方法会默认覆盖
/** * 构造方法: 重写构造方法,初始化成员变量 */ public construction(){ username = "鸣人"; garder = 19; } //一:重写构造方法,初始化成员变量 construction con = new construction(); con.eat(); 运行结果: 我是:鸣人,今年:19岁,喜欢吃拉面
四:返回值问题
构造方法又叫构造器,不能把它等同于普通方法去对比,什么意思呢?
就是,普通方法有返回值类型,有return语句,有访问修饰符,但是构造方法从本质上就不是普通方法
构造方法:没有返回值类型,void也不能加
没有返回值,但是有运行结果,运行结果就是创建一个对象,所以在构造方法内不能调用return。
访问修饰符,只能是public,不能是其他的访问修饰符。
五:构造方法之间可以使用 this() 相互调用 但是 this() 必须是构造方法内容的第一行 如果有参数 传入相应的参数
/** * 构造方法:无参 */ public construction(){ this("佐助",19); // username = "鸣人"; // garder = 18; } construction con = new construction(); con.eat(); 运行结果: 我是:佐助,今年:19岁,喜欢吃拉面
六:当参数列表的参数名和成员变量同名时 要使用this.区分成员变量和 局部变量
/** * 构造方法:有参 * @param username:用户姓名 * @param garder:用户年龄 */ public construction(string username,int garder){ this.username = username; this.garder = garder; } //一:重写构造方法,初始化成员变量 construction con = new construction("鸣人",19); con.eat(); 运行结果: 我是:鸣人,今年:19岁,喜欢吃拉面