12. 构造方法与this
不过有一点要注意,构造方法可以随意的调用普通方法,但是普通方法不能调用构造方法,构造方法调用构造方法要用到this。
如下
Student stu1=new Student("01","张三",18);//直接调用
stu1.sc();
Student stu2=new Student("02","李四",20);
stu2.sc();
}
}
class Student{
private String stuNo;
private String name;
private int age;
public Student(String s,String n,int a)//构造方法
{
stuNo=s;
name=n;
age=a;
}
public void sc()
{
System.out.println("学号:"+stuNo+" 姓名:"+name+" 年龄:"+age);
}
}
this
在java中,this有两种用法:
-
如果有两个同名不同类的变量(即其中一个被封装),那在封装的变量的类中,当必须同时使用两个变量时,在变量前加this,就代表此类中的变量。
-
在构造方法调用自己的重载方法时,要用this()代替方法名。
如下
练习题一:
1、定义一个飞机类,其域包括“长度”、“翼展”、“高度”、“飞行速度”和“飞行高度”;方法包括“获取长度”、“获取翼展”、“获取高度”、“获取飞行速度”、“获取飞行高度”、“修改飞行速度”和“修改飞行高度”。
2、在此基础上增加构造方法,为所有的域进行初始化。在主类中通过构造方法创建飞机对象,修改飞行高度和速度,并调用相应方法输出飞机参数。
fj a=new fj(100,200,300,400,500);
a.sc();
}
}
class fj{
private int cd;
private int yz;
private int gd;
private int fxsd;
private int fxgd;
public fj(int cd,int yz,int gd,int fxsd,int fxgd){//构造方法
this(fxsd,fxgd);//调用同名的方法名时用this代替,且必须为第一条执行语句
this.cd=cd;//即代表将cd赋值给此类中的cd。
this.yz=yz;
this.gd=gd;
}
public fj(int fxsd,int fxgd){
this.fxsd+=fxsd;
this.fxgd+=fxgd;
}
public void sc(){
System.out.print("长度:"+cd+" 翼展:"+yz+" 高度:"+gd+" 飞行速度:"+fxsd+" 飞行高度:"+fxgd);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix