package com.example.test1;
import java.util.Scanner;
public class class1{
public static String methodOne(String name){
String studentName = name + " is his name";
return (studentName);
}
public static void main(String[] args) {
methodOne("John");
}
}
如何获得打印姓名+“他的名字”的方法?当我运行它时它什么也没显示。我也无法在字符串studentName中添加System.out.println。我很抱歉。编辑:我想以某种方式将打印功能输入到方法中,而不是键入System.out.println来打印出methodOne,这可能吗?
package com.example.test1;
import java.util.Scanner;
public class class1{
public static String methodOne(String name){
String studentName = name + " is his name";
return (studentName);
}
public static void main(String[] args) {
System.out.println(methodOne("John")); // Print string in this console
}
}
函数返回一个字符串值,所以当您这样称呼她时:
methodOne("John");
您没有使用字符串值,您没有说打印它或任何东西。
您可以这样使用返回值:
package com.example.test1;
import java.util.Scanner;
public class class1{
public static String methodOne(String name){
String studentName = name + " is his name";
return (studentName);
}
public static void main(String[] args) {
String nameStudent = methodOne("John"); // Saves the returned value in a variable
System.out.println(nameStudent ); // Prints the returned value stored in the variable
}
}
您也可以直接打印而无需存储变量,正如他们在这里所说的。
我想以某种方式将打印功能输入到方法中。
我有两种解释方式。
您可能只是想在methodOne
方法中进行打印。很简单:
public static String methodOne(String name){
String studentName = name + " is his name";
System.out.println(studentName);
return studentName;
}
评论:
如果您要以这种方式进行操作,则methodOne
不需要返回任何明显的原因。您可以将其声明为void
方法。
这样做可能是不好的设计。一般来说,一种方法应该做一件事。 (设计原理是关注点分离(SoC)。)但是,此修改后的方法可做两件事。它正在形成字符串,并正在打印它。并且由于将其打印到特定位置(标准输出),因此其实用程序受到限制。 (如果我想创建该字符串而不打印该怎么办?如果我想将其打印到另一个流该怎么办?)
第二种解释是,您字面上想要将println
方法传递给methodOne
方法...以便它可以调用它。这是您可以做到的方式:
public static String methodOne(String name,
java.util.function.Consumer<String> fn){
String studentName = name + " is his name";
fn(studentName);
return studentName;
}
并这样称呼它
methodOne("Fred", System.out::println);