Вопросы от начинающего [закрыт]

123
07 декабря 2020, 17:20
Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.

Закрыт 1 год назад.

Улучшить вопрос

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

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

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

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

Answer 1

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. Почитайте про наследование, полиморфизм, инкапсуляцию

Answer 2

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

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

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

READ ALSO
Java stream как задать условие?

Java stream как задать условие?

Есть лист Integer, я хочу сделать из него строку с помощью stream, но с условием, что если число больше 10 то добавлять к строке "> 10, ", а если меньше,...

199
NPE при добавлении кнопок на панель калькулятора

NPE при добавлении кнопок на панель калькулятора

Вы создаете панель после строк, в которых добавляете в нее кнопки

157
Java. gif to Image[]

Java. gif to Image[]

Есть ли способ на java разложить *gif на image[]

126
Использование Lombok

Использование Lombok

Пишу веб-приложение и при объявлении сущностей использую ломбокПриложение компилируется и работает исправно, но в коде, где происходит работа...

155