java - Java - 不同的参数导致不同的输出
问题描述
我想实现以下目标:
如果我使用参数 a 或 b 调用方法 v2.horn(),它应该输出 a 或 b。但不知何故,我不知道该怎么做。
代码如下:
public class Vehicle {
int maxSpeed;
int wheels;
String color;
double fuelCapacity;
void horn(a,b) {
String a = "Beep!";
String b = "Boop!";
System.out.println(a);
System.out.println(b);
}
void blink() {
System.out.println("I'm blinking!");
}
}
class MyClass {
public static void main(String[ ] args) {
Vehicle v1 = new Vehicle();
Vehicle v2 = new Vehicle();
v1.color = "red";
v2.horn(a);
v1.blink();
}
}
解决方案
我认为你想要实现的是,当你用一些参数调用你的方法“喇叭”时,它必须要么使用“哔!” 或“嘘!”。
首先:
void horn(a,b)
在 Java 中不是有效的函数签名,在 java 函数中,您始终必须指定您提供的输入是什么类型。
在您的函数中,您必须像这样定义 a 和 b 是 String :
void horn(String a, String b)
如果您希望您的代码以您现在编写的方式运行,您必须稍微移动您的代码,您最终会得到以下结果:
public class Vehicle {
int maxSpeed;
int wheels;
String color;
double fuelCapacity;
void horn(String in) {
System.out.println(in);
}
void blink() {
System.out.println("I'm blinking!");
}
}
class MyClass {
public static void main(String[ ] args) {
String a = "Beep!";
String b = "Boop!";
Vehicle v1 = new Vehicle();
Vehicle v2 = new Vehicle();
v1.color = "red";
v2.horn(a);
v1.blink();
}
}
实现您正在寻找的功能的另一种方法:您也可以只使用布尔值。
void horn(boolean a) {
if (a)
{
System.out.println("Beep!");
}
else
{
System.out.println("Boop!");
}
}
然后为了做你想做的事,你必须像这样调用方法:
// Use either true or false.
v2.horn(true);
v2.horn(false);
推荐阅读
- c++ - 如何在 QT 5 中显示特殊字符?
- java - 来自 jQuery 的远程 AJAX 调用验证检查电子邮件有效性不起作用
- scapy - ImportError:无法从“scapy.layers”导入名称“http”
- sqlite - 是否可以使用 SQLlite 将我的表转换为不同的格式?
- android - 使用 AsyncTask 显示 Lottie 的加载
- vue.js - Bootstrap Vue 动画下拉菜单
- php - 在 laravel 项目中自动推送到 github
- json - 显示来自作为 JSON 数组响应检索的 URL 的 GIF 图像
- javascript - 模型不是由 AJAX 创建的
- visual-studio - Easy Repro UI Automatid 测试失败。出现错误 LoginPage' 引发了“System.MissingMethodException”类型的异常