Работа со строками — Public int length()

Я совершенно новичок в программировании, и мне трудно понять свое задание и то, как я его решаю.

Присваивание вводится словами: Класс String определяет метод доступа длины со следующим заголовком: public int length() Итак, ниже приведен пример его использования с переменной String fullName; полноеИмя.длина()

Затем задание просит меня добавить условные операторы в конструктор Student для вывода сообщения об ошибке, если длина параметра fullName меньше четырех символов или длина параметра studentId меньше трех символов. Однако конструктор должен по-прежнему использовать эти параметры для установки полей имени и идентификатора, даже если будет напечатано сообщение об ошибке.

В задании также предлагается использовать методы if и else.

Я читал обо всем до этого момента, но я просто не понимаю, как мне действовать - однако я понимаю, что это должно работать.

Не могли бы вы, ребята, указать мне путь или просто дать несколько советов о том, как мне начать это делать? Стоит отметить, что это закодировано в BlueJ и использует пример проекта «LabClass».


person JensJakob92    schedule 06.02.2014    source источник
comment
Лучший способ начать — прочитать учебник еще раз. Поищите в сети об этих методах и о том, как их использовать. Это поможет вам изучить синтаксис.   -  person Helios    schedule 06.02.2014
comment
Я действительно пытаюсь, поверьте мне. Я читал это много раз, и, кажется, я просто не понимаю. Я начал программировать (начал в своей школе) 1,5 недели назад, и, кажется, я просто не могу освоиться.   -  person JensJakob92    schedule 06.02.2014
comment
Пожалуйста, рассмотрите возможность чтения документации Oracle. Лучше всего изучать java. Например: String   -  person Helios    schedule 06.02.2014
comment
Пожалуйста, расскажите нам, что вы пытались (кроме чтения всего) решить это задание.   -  person Alexander Tobias Bockstaller    schedule 06.02.2014
comment
@AlexanderTobiasHeinrich Должен признать, что я еще не так много пробовал, потому что я использую пример класса из книги, поэтому боюсь, что что-то испорчу и просто застряну на чем-то, чего не понимаю. . Поэтому на данный момент я в основном пытаюсь прочитать и понять некоторые ответы, которые я получаю по своей проблеме. Я надеюсь получить его очень скоро все же.   -  person JensJakob92    schedule 06.02.2014


Ответы (2)


Давайте сначала инициализируем объект вашего класса Student, оставив в стороне проверку ошибок. Как вы сказали, вы обязаны установить эти два поля (fullName и studentId), несмотря ни на что. Итак, что у нас будет:

public class Student {

    private String studentId;
    private String fullName;

    public Student(String studentId, String fullName) {
        this.studentId = studentId;
        this.fullName = fullName;
    }

    public static void main(String[] args) {
        Student s = new Student("12", "John Doe");
    }
}

Вышеприведенный код делает то, что вам нужно в первую очередь. Надеюсь, вы понимаете, что там происходит? Если нет, то спросите.

Хорошо, теперь нам нужно добавить эту «проверку длины». Ключ в том, чтобы понять конструкцию «если». «Если» позволяет выполнить некоторый блок кода только при выполнении определенного условия. Условие может быть любым выражением, но оно должно оцениваться как «истина» или «ложь» (оно должно быть логическим). Конструкция «если» выглядит так:

if (expression) {
    System.out.println("Expression was true!");
}

Вы можете поставить вместо «выражения» ваше условие, и если оно окажется верным, код будет выполнен. Посмотри это:

if (3 > 2) {
    System.out.println("Three is greater than two");
}

Что ж, мы можем использовать эти знания для выполнения наших тестов длины:

if (fullName.length() < 4) {
    System.err.println("Name '" + fullName + "' is too short");
}

Используйте ту же конструкцию (но с другим условием) для проверки studentId. Я считаю, что вы должны иметь возможность изменить исходный код, чтобы проверить длину строки.

Что касается этого присваивания --- вам не нужна конструкция else в этом случае, но для полноты: вы можете использовать ее в сочетании с "if" для выполнения определенного кода, когда условие не встречал вот так:

if (fullName.length() < 4) {
    System.err.println("Too short!");
}
else {
    System.out.println("OK");
}

Надеюсь это поможет.

person Cromax    schedule 06.02.2014
comment
Спасибо за ваш ответ - он как-то помог мне понять это немного больше. Однако у меня есть несколько вопросов к вашему ответу. В конструкторе вы ввели: public static void main(String[] args) { Student s = new Student(12, John Doe); которого я никогда раньше не видел, так что это меня сильно смущает. Кроме того, я, возможно, немного неправильно сформулировал назначение, на самом деле оно говорит, что я не должен использовать другое, я думаю. В нем говорится: Подсказка: используйте операторы if следующего вида (то есть не имеющие частей else) для вывода сообщений об ошибках. Также; реализовано ли логическое значение в if, или я ошибаюсь? - person JensJakob92; 06.02.2014
comment
Если вы внимательно изучите его, вы увидите, что он не помещен в конструктор. Конструктор начинается с общедоступного Student(String studentId, String fullName), и это называется объявлением, поскольку оно просто объявляет (говорит, что есть что-то подобное), и после этого у вас есть тело конструктора, которое начинается с '{' и заканчивается '}' (это в данном случае содержит две строки). Далее, главное — это метод, который вызывается java при запуске вашей программы (кстати, конструктор — это тоже метод). - person Cromax; 06.02.2014
comment
Просто мой конструктор почти идентичен вашему методу. И мне сказали, что заголовок конструктора всегда будет иметь то же имя, что и класс, поэтому я предполагаю, что это имя может быть только у конструктора, отсюда мой переход к выводу, что вы только что написали конструктор. - person JensJakob92; 06.02.2014
comment
Если main вас смущает, вы можете пока игнорировать его (просто удалите). Цель этого состояла в том, чтобы продемонстрировать использование вашего класса (если вы запустите его, вы должны увидеть некоторый результат) --- но это не имеет отношения к решению вашего задания. - person Cromax; 06.02.2014
comment
Да, у конструктора есть имя в качестве содержащего его класса, но технически это метод. Вы можете думать (пока) о методе как об именованном фрагменте кода, который вы можете выполнить. Например, length() также является методом класса String --- вы вызываете его, проверяя длину этой строки. Но класс может содержать много методов (много разных конструкторов и множество других именованных фрагментов кода). - person Cromax; 06.02.2014
comment
@user3279328 Ученик s=новый Ученик(12, Джон Доу); создает объект класса Student с идентификатором studentId 12 и полным именем John Doe. - person Wajahat; 06.02.2014
comment
@Wajahat Спасибо, что попытались прояснить смысл этого, но, честно говоря, это только еще больше меня запутало. Думайте обо мне как об обезьяне, пытающейся освоить ракетостроение; Я с трудом разбираюсь в программировании. - person JensJakob92; 06.02.2014
comment
Вам действительно не следует начинать с объектно-ориентированного программирования, если вы совершенно новичок в программировании. - person Wajahat; 06.02.2014
comment
@Wajahat Попробуй сказать это моему учителю. Если я хочу закончить учебу, мне просто нужно откусить кислое яблоко и висеть там.. - person JensJakob92; 06.02.2014
comment
@user3279328 Пожалуйста, прочтите это: agp.hx0.ru/oop/quarks.pdf Я уверен, что это поможет вам начать работу. - person Wajahat; 06.02.2014
comment
@Wajahat Спасибо, попробую посмотреть. - person JensJakob92; 06.02.2014

Я бы сказал, что лучшее, что вы можете сделать, это начать программировать и посмотреть, что произойдет. Вы упомянули, что боялись что-нибудь испортить. Вы не можете ничего сломать, совершая ошибки, на самом деле, делая ошибки, мы все учимся этому. Попробуйте что-нибудь, и если это не сработает, компьютер скажет вам, что с ним не так. Иногда то, что говорит вам компьютер, не имеет особого смысла, но, по крайней мере, дает вам отправную точку. Диалог между вами и компьютером — это то, как вы узнаете, что работает, а что нет.

Вы также беспокоитесь о том, что застряли в чем-то, чего не понимаете. Поначалу никто не понимает этих вещей, а поскольку всегда нужно узнать больше, чем может знать любой человек, всем программистам приходится сталкиваться с определенной путаницей. Вы должны верить, что если вы сядете и начнете работать над этим, путаница исчезнет. Лучший способ выучить новый язык — говорить на нем, а преимущество программирования в том, что компьютеры обладают бесконечным терпением к вашим ошибкам.

person David Stanley    schedule 06.02.2014
comment
Спасибо за мудрые слова. Я пытался и пытался. И теперь я попытался найти решение, просто кодируя что-то около 30 минут, что я считал правильным. Оказывается, я до сих пор не нашел решения, и это сводит меня с ума. - person JensJakob92; 06.02.2014