Как напечатать строковый метод, idk, как сформулировать это извините - PullRequest
0 голосов
/ 28 апреля 2020
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");
    }

}

Как я могу заставить этот метод распечатать имя + "его имя"? Это ничего не показывает, когда я запускаю это. Я также не могу добавить System.out.println в String studentName. Я новичок во всем этом извините. РЕДАКТИРОВАТЬ: я хочу каким-то образом ввести функцию печати в метод, а не печатать System.out.println для печати methodOne, это возможно?

Ответы [ 3 ]

0 голосов
/ 28 апреля 2020

Функция возвращает значение, которое является строкой, поэтому, когда вы называете ее так:

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
        }

    }

Вы также можете печатать прямо, не сохраняя переменную, как здесь уже сказано.

0 голосов
/ 28 апреля 2020

Я хочу каким-то образом ввести функцию печати в метод.

Есть два способа интерпретировать это.

Вы можете просто сказать, что хотите напечатать в рамках метода methodOne. Это просто:

public static String methodOne(String name){
    String studentName = name + " is his name";
    System.out.println(studentName);
    return studentName;
}

Комментарии:

  1. Если вы собираетесь сделать это таким образом, нет очевидной причины, почему methodOne нужно вернуть что-нибудь. Вы можете объявить его как void метод.

  2. Возможно, это плохой дизайн. Вообще говоря, метод должен делать одну вещь. (Принцип разработки - разделение интересов (поэтому C).) Но этот модифицированный метод делает две вещи. Он формирует строку и печатает ее. И поскольку он печатает его в определенном c месте (стандартный вывод), его полезность ограничена. (Что если я хочу создать эту строку, не печатая ее? Что если я хочу напечатать ее в другом потоке?)


Вторая интерпретация заключается в том, что вы буквально хочет передать метод 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);
0 голосов
/ 28 апреля 2020
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
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...