Java 构造方法

 本文统一使用J1作为文件名

构造方法的建立

一  Vehicle 类创建构造方法给成员变量赋值

class Vehicle {
    double speed;             //变量声明部分,刻画速度
    int power;                //变量声明部分,刻画功率
    Vehicle(double speed,int power){
        this.speed = speed;
        this.power = power;
    }//创建构造方法给成员变量赋值
    void speedUp(int s) {      //方法定义,刻画加速功能
        speed=speed+s;
    }
    void speedDown(int d) {   //方法定义,刻画减速功能
        speed=speed-d;
    }
    void setPower(int p) {
        power=p;
    }
    int getPower() {
        return power;
    }
    double getSpeed() {
        return speed;
    }
}
public class J1{
    public static void main(String args[]) {
        Vehicle  car1= new Vehicle(55,30);
        System.out.println("car1的速度:"+car1.getSpeed());
        System.out.println("car1的速度:"+car1.getPower());
    }
}

二  构造方法重载:修改程序1再定义一个无参的构造方法为成员变量赋默认值:

class Vehicle  {
    double speed;             //变量声明部分,刻画速度
    int power;                //变量声明部分,刻画功率
     public Vehicle() {
         speed = 60;
         power = 10;
     }
    //创建构造方法给成员变量赋值
    void speedUp(int s) {      //方法定义,刻画加速功能
        speed=speed+s;
    }
    void speedDown(int d) {   //方法定义,刻画减速功能
        speed=speed-d;
    }
    void setPower(int p) {
        power=p;
    }
    int getPower() {
        return power;
    }
    double getSpeed() {
        return speed;
    }
}
public class J1 {
    public static void main(String args[]) {
        Vehicle  car1=new Vehicle();
        Vehicle  car2=new Vehicle();//【代码4】调用无参构造方法
        System.out.println("car1的速度:"+car1.getSpeed());
        System.out.println("car1的速度:"+car1.getPower());
        System.out.println("car1的速度:"+car2.getSpeed());
        System.out.println("car1的速度:"+car2.getPower());
    }

}

修改程序2无参构造方法调用有参构造方法给成员变量赋值:

class Vehicle {
    double speed;             //变量声明部分,刻画速度
    int power;                //变量声明部分,刻画功率
    public Vehicle(double speed1, int power1) {
        speed = speed1;
        this.power = power1;
    }
    public Vehicle() {
        this(50,3);
        speed = 60;
        power = 10;
    }

    //创建构造方法给成员变量赋值
    void speedUp(int s) {      //方法定义,刻画加速功能
        speed=speed+s;
    }
    void speedDown(int d) {   //方法定义,刻画减速功能
        speed=speed-d;
    }
    void setPower(int p) {
        power=p;
    }
    int getPower() {
        return power;
    }
    double getSpeed() {
        return speed;
    }
}
public class J1{
    public static void main(String args[]) {
        Vehicle  car1=new Vehicle(40,10);
        Vehicle  car2=new Vehicle(30,15);
        car1.getPower(); //【代码4】调用无参构造方法
        System.out.println("car1的速度:"+car1.getSpeed());
}
}
构造方法特点:
  • 方法名和类名相同
  • 无返回值类型的声明
  • 在用new创建对象时调用。

用this(参数)在一个构造方法里调用另一个构造方法,且必须时第一条语句。

给一个构造方法前面加上返回值类型的声明 如void,观察程序的变化,该如何调用它

class Vehicle {
    double speed;
    int power;
    public Vehicle(double speed1, int power1) {
        speed = speed1;
        this.power = power1;
    }
    public void Vehicle() {
        speed = 60;
        power = 10;
        System.out.println("我不是构造方法");
    }
}
public class j1 {
    public static void main(String[] args) {
        Vehicle  car1= new Vehicle(50,10);
        car1.Vehicle();
    }
}

Compute类中的add方法实现方法重载

class Compute {
    int add(int a,int b) {
        return a+b;
    }
    double add(int x,double y) {//【代码1】是否正确
        return x+y;
    }
    double add(double x,double y) {//【代码1】是否正确
        return x+y;
    }//【代码2】//定义对两个实型数据求和的方法
    String add(String x,String y) {//【代码1】是否正确
        return x+y;
    }//【代码3】//定义对两个字符串数据连接的方法
}
public class j1
{
    public static void main(String args[]) {
        Compute  tom = new Compute ();
        System.out.println(tom.add(10,20));
        System.out.println(tom.add("124325","aasdfg"));
        System.out.println(tom.add(10.0,2.26));
    }
}
注:方法重载不能通过返回值来区分,只能通过参数来区分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值