本文统一使用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));
}
}