12. 构造方法与this

构造方法

构造方法是一个与类同名的一个方法,因此在new一个对象时即可直接去触发他,同时他一样可以与普通的方法一样可以重载。

不过有一点要注意,构造方法可以随意的调用普通方法,但是普通方法不能调用构造方法,构造方法调用构造方法要用到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有两种用法:

  1. 如果有两个同名不同类的变量(即其中一个被封装),那在封装的变量的类中,当必须同时使用两个变量时,在变量前加this,就代表此类中的变量。

  2. 在构造方法调用自己的重载方法时,要用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);
}
}

 

posted @   始墨......至隐  阅读(281)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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
点击右上角即可分享
微信分享提示