构造方法
1.构造方法的相关概念
* Java的类都要求有构造方法,如果没有定义构造方法,Java编译器会为我们提供一个默认的构造方法,默认构造方法就是指不带参数的构造方法
* 如果类中有一个自己编写的构造方法时,编译器就不会为我们再提供那个默认构造方法。如果此时又希望还可以用默认构造方法来创建类的实例时,那就必须在类中明确添加这个默认构造方法。自定义的、默认的(无参的)跟默认2者只能存其一
* 构造方法的名字和类名相同,并且没有返回值,并且不要加void
* 抽象类存在构造方法,因为子类需要实例化父类
>UserTow类
//不是构造方法,这是普通成员方法
void UserTwo(String username){
}
* 实例化对象时候,其本质,就是调用构造方法,调用构造方法,跟调用普通方法一样
>UserTwo类
UserTwo user = new UserTwo();
user.username = "yaoming";
user.password = "123";
//等价
UserTwo user = new UserTwo("yaoming", "123");
* 构造方法的作用在于构造并初始化对象
* **[访问修饰符] 注意:没有[static final]修饰符**
2.构造方法可以重载
>Person 类
public Person(){}
public Person(String name, boolean sex, int age){
this.name = name;
this.sex = sex;
this.age = age;
}
3.为啥要有带参数的构造方法:
* 为了初始化对象一些属性
* 创建方便,减少量
4.构造方法使用技巧:
* 如果属性非常多,把必要,使用频率高的属性当做构造方法的属性
* this调用构造函数
5.this+构造方法:
* 如果某个构造方法的第一条语句具有形式this(...),那么这个构造方法将调用本类中的其他构造方法。
* this(xxxx); 构造函数的调用, 注意点:this(xxx) 必须是第一行
>person类
//Person类的构造方法1
public Person(String name, boolean sex, int age){
this.name = name;
this.sex = sex;
this.age = age;
}
//构造方法2-调用构造方法1
public Person(){
this("张三","男",18);
}
6.继承+构造函数
* 子类初始化(创建对象)时,首先调用父类的构造器,生成父类对象,然后在进行子类初始化
* 子类new 对象的时候,必须调用父类构造函数
* 如果父类无法提供子类所需要的构造函数
* 这时会报错:父类自定义带参数的构造函数,而子类使用默认的构造函数(无参数的)
* 最佳的解法:自定义类时,自定义一个空参数的构造函数(养成习惯)
* 可以通过,super进行调用父类的构造函数,进行初始化父类属性
* 构造函数不能被子类继承
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现