-1

Я совершенно новичок и только недавно начал изучать программирование с Java. По ходу дела возникают скорее всего простейшие вопросы.

Скрин 1. Как сделать чтобы в методе "пробный метод" было несколько передаваемых параметров, не один икс, а еще какие нибудь? Вроде можно прописать в круглых скобках еще строку, например y, который будет приплюсовывать другую фразу, но как тогда направлять name на x, а sername на y? Или я подозреваю, что так делать совсем нельзя и нужно писать отдельный метод для y.

Скрин 2. Почему так нельзя сделать и в чем разница, если все мои переменные и т.п. написаны внутри класса, а не внутри метода main, прошу объяснить. То, что метод main - это входная точка каждой программы, я понял, и с него все начинается.

Вопрос 3. Посоветуйте, пожалуйста, литературу, которая действительно поможет начать. Вроде везде Философия Java советуют.

Скрин 1

введите сюда описание изображения

Kromster
  • 13,809

2 Answers2

0

1. Можно передать так до 65к+ аргуентов или использовать varargs для передачи неопределенного количества аргументов одного типа

public String method(String s1, String s2) {
    return s1 + s2;
}
  1. Выражения должны находится внутри методов, но определения переменных могут находит внутри классов и внутри методов.
    Если вы хотите указать начальное значение для переменной то укажите его при объявлении или присвойте значение в конструкторе класса.

Update

То что вы в методе probniyMethod присваиваете x новое значение, сделает его видимым только внутри метода. Похожий вопрос.
Если вам нужно изменить несколько аргументов функцией, оберните их в класс, реализуйте getters и setters.

class Main {
    public static void main(String args[]) {
        Data d = new Data("s1", "s2")

        System.out.println(d.getS1());
        System.out.println(d.getS2());

        changeData(d);

        System.out.println(d.getS1());
        System.out.println(d.getS2());
    }

    private static changeData(Data data) {
        data.setS1(data.getS1() + ", changed")
        data.setS2(data.getS2() + ", changed")
    }
}

class Data {
    private String s1;
    private String s2;

    public Data(String s1, String s2) {
        this.s1 = s1;
        this.s2 = s2;
    }

    public String getS1() {
        return s1;
    }

    public void setS1(String s) {
        s1 = s;
    }

    public String getS2() {
        return s2;
    }

    public void setS2(String s) {
        s2 = s;
    }
}

P.S. Почитайте про наследование, полиморфизм, инкапсуляцию

Bleser
  • 1,758
  • Аргументы передал, а как теперь направить одну строку на один аргумент, а вторую на другой? (т.е. sername на x, а name на новый аргумент y), как правильно это записать? – Pylyptiy Andrey May 09 '19 at 19:07
  • @jewbaka обновил ответ – Bleser May 10 '19 at 05:22
0

Почему так нельзя сделать и в чем разница, если все мои переменные и т.п. написаны внутри класса, а не внутри метода main, прошу объяснить.

В методе main переменные локальные для данного метода. В классе переменные относятся к классам. Когда вы создаете экземпляр класса, метод относится к экземпляру, объекту вашего класса.

Философию Java читайте после более простых книг. На начальном этапе обучения вам будет сложно понять те или иные концепции. Возьмите что-нибудь попроще. Не стоит сразу читать труды именитых ученых. Вам будет сложно понять их мысли. Если вы поймете, то вам трудно будет общаться с рекрутами, и техническим персоналом, которые этого не понимают.