Java 如何在每次调用方法时递增变量
我只是在学习阶段&在这里我使用一些多态技术。代码如下:Java 如何在每次调用方法时递增变量,java,Java,我只是在学习阶段&在这里我使用一些多态技术。代码如下: package com.company; class Car{ private String name; private int cylinder; private boolean engine; private int wheels; public Car(String name, int cylinder) { this.name = name; this.cyl
package com.company;
class Car{
private String name;
private int cylinder;
private boolean engine;
private int wheels;
public Car(String name, int cylinder) {
this.name = name;
this.cylinder = cylinder;
this.engine = true;
this.wheels = 4;
}
public String startEngine(int fuel){
if(fuel>0){
return "Start button pressed";
} else{
return "First fill some fuel";
}
}
public String accelerate(int speed){
return "Car is accelerated with speed " + speed;
}
public String brake(int speed){
return "Brake is presses. Now speed is " + speed;
}
public String getName() {
return name;
}
public int getCylinder() {
return cylinder;
}
}
class Fortuner extends Car{
public Fortuner() {
super("Fortuner", 4);
}
@Override
public String accelerate(int speed) {
return "Fortuner is accelerated with speed " +speed;
}
@Override
public String brake(int speed) {
return "Now your Fortuner is moving with " + speed + " kph";
}
}
class Hondacity extends Car{
public Hondacity() {
super("Hinda City", 6);
}
@Override
public String accelerate(int speed) {
return "Honda City is accelerated with speed " +speed;
}
@Override
public String brake(int speed) {
return "Now your Honda City is moving with " + speed + " kph";
}
}
class Omni extends Car{
public Omni() {
super("Omni", 1);
}
@Override
public String accelerate(int speed) {
return "Omni is accelerated with speed " +speed;
}
@Override
public String brake(int speed) {
return "Now your Omni is moving with " + speed + " kph";
}
}
public class Main {
public static void main(String[] args) {
for(int j=0; j<3; j++){
Car car = speedup();
System.out.println(car.accelerate(50));
}
}
public static Car speedup() {
for(int i=0; i<3; i++){
switch(i){
case 0: return new Fortuner();
case 1: return new Hondacity();
case 2: return new Omni();
}
}
return null;
}
}
package.com公司;
班车{
私有字符串名称;
私人内特缸;
私有布尔引擎;
私家车;
公共汽车(字符串名称,内部气缸){
this.name=名称;
这个圆柱=圆柱;
这个引擎=真;
这是4个轮子;
}
公共字符串startEngine(内部燃料){
如果(燃油>0){
返回“按下启动按钮”;
}否则{
返回“先加油”;
}
}
公共字符串加速(整数速度){
返回“汽车加速”+速度;
}
公共串制动器(内部速度){
return“刹车是压下的,现在速度是”+速度;
}
公共字符串getName(){
返回名称;
}
公共int getCylinder(){
回程气缸;
}
}
富兰克林级轿车{
公共财富{
超级(《财富》,4);
}
@凌驾
公共字符串加速(整数速度){
返回“财富加速”+速度;
}
@凌驾
公共串制动器(内部速度){
return“现在你的幸运者正以“+速度+”kph”移动”;
}
}
洪都拉斯级轿车{
公共洪都拉斯(洪都拉斯){
超级(“印度城”,6);
}
@凌驾
公共字符串加速(整数速度){
返回“本田城以速度加速”+速度;
}
@凌驾
公共串制动器(内部速度){
return“现在您的本田城市正以“+速度+每小时”的速度移动”;
}
}
奥姆尼级轿车{
公共全方位{
超级(“全方位”,1);
}
@凌驾
公共字符串加速(整数速度){
返回“全向加速”+速度;
}
@凌驾
公共串制动器(内部速度){
return“现在您的泛光灯正以“+速度+”kph”移动”;
}
}
公共班机{
公共静态void main(字符串[]args){
对于(int j=0;j你的方法speedup()
总是返回一个Fortuner,因为它再也不会返回了。return
命令总是退出循环。因此,如果你想得到所有的类,你必须这样做:
public static void main(String[] args) {
for(int ID=0; ID<3; ID++){
Car car = speedup(ID);
System.out.println(car.accelerate(50));
}
}
public static Car speedup(int ID) {
switch(i){
case 0: return new Fortuner();
case 1: return new Hondacity();
case 2: return new Omni();
}
return null;
}
publicstaticvoidmain(字符串[]args){
对于(int ID=0;ID在您的方法speedup()中,每次j的值都是0。因此它总是返回Fortuner。我删除了这个方法来解决它
class Car {
private String name;
private int cylinder;
private boolean engine;
private int wheels;
public Car(String name, int cylinder) {
this.name = name;
this.cylinder = cylinder;
this.engine = true;
this.wheels = 4;
}
public Car() {
}
public String startEngine(int fuel){
if(fuel>0){
return "Start button pressed";
} else{
return "First fill some fuel";
}
}
public String accelerate(int speed){
return "Car is accelerated with speed " + speed;
}
public String brake(int speed){
return "Brake is presses. Now speed is " + speed;
}
public String getName() {
return name;
}
public int getCylinder() {
return cylinder;
}
}
class Fortuner extends Car{
public Fortuner() {
super("Fortuner", 4);
}
@Override
public String accelerate(int speed) {
return "Fortuner is accelerated with speed " +speed;
}
@Override
public String brake(int speed) {
return "Now your Fortuner is moving with " + speed + " kph";
}
}
class Hondacity extends Car{
public Hondacity() {
super("Hinda City", 6);
}
@Override
public String accelerate(int speed) {
return "Honda City is accelerated with speed " +speed;
}
@Override
public String brake(int speed) {
return "Now your Honda City is moving with " + speed + " kph";
}
}
class Omni extends Car{
public Omni() {
super("Omni", 1);
}
@Override
public String accelerate(int speed) {
return "Omni is accelerated with speed " +speed;
}
@Override
public String brake(int speed) {
return "Now your Omni is moving with " + speed + " kph";
}
}
public class Main {
public static void main(String[] args) {
for(int j=0; j<3; j++){
Car car = null;
switch (j) {
case 0: car = new Fortuner();
break;
case 1: car = new Hondacity();
break;
case 2: car = new Omni();
break;
}
System.out.println(car.accelerate(50));
}
}
}
等级车{
私有字符串名称;
私人内特缸;
私有布尔引擎;
私家车;
公共汽车(字符串名称,内部气缸){
this.name=名称;
这个圆柱=圆柱;
这个引擎=真;
这是4个轮子;
}
公共汽车{
}
公共字符串startEngine(内部燃料){
如果(燃油>0){
返回“按下启动按钮”;
}否则{
返回“先加油”;
}
}
公共字符串加速(整数速度){
返回“汽车加速”+速度;
}
公共串制动器(内部速度){
return“刹车是压下的,现在速度是”+速度;
}
公共字符串getName(){
返回名称;
}
公共int getCylinder(){
回程气缸;
}
}
富兰克林级轿车{
公共财富{
超级(《财富》,4);
}
@凌驾
公共字符串加速(整数速度){
返回“财富加速”+速度;
}
@凌驾
公共串制动器(内部速度){
return“现在你的幸运者正以“+速度+”kph”移动”;
}
}
洪都拉斯级轿车{
公共洪都拉斯(洪都拉斯){
超级(“印度城”,6);
}
@凌驾
公共字符串加速(整数速度){
返回“本田城以速度加速”+速度;
}
@凌驾
公共串制动器(内部速度){
return“现在您的本田城市正以“+速度+每小时”的速度移动”;
}
}
奥姆尼级轿车{
公共全方位{
超级(“全方位”,1);
}
@凌驾
公共字符串加速(整数速度){
返回“全向加速”+速度;
}
@凌驾
公共串制动器(内部速度){
return“现在您的泛光灯正以“+速度+”kph”移动”;
}
}
公共班机{
公共静态void main(字符串[]args){
对于(intj=0;jj欢迎使用堆栈溢出!您在问题中发布了许多代码,这使我们(以及未来的读者)不清楚问题的确切位置。请将您的问题代码减少到10行或更少。请参阅:和。谢谢杜克!您让问题变得非常简单。您能告诉我您如何开发算法吗?我的意思是如何改进它。@Brijesh Maurya我也在学习java。您将看到,java的工作原理有一些规则。一个例子是,return
始终完成当前的方法。您练习编程越多,学习的规则越多,每一条规则都会让您更好地理解程序中发生的事情。事实上,这是一种奇妙的感觉,所以请继续学习;)