Помощь в решении задачек javarush (до 10 уровня)

Аватара пользователя
Maksim Sergeevich
Администратор
Сообщения: 200
Зарегистрирован: 08 дек 2013, 21:19
Откуда: Гусев
Контактная информация:

Помощь в решении задачек javarush (до 10 уровня)

Сообщение Maksim Sergeevich » 03 ноя 2016, 16:06

Начиная с 10-го уровня сервис является платным. Поэтому будем публиковать задачки до 10-го уровня.
"Вы считаете, что учитель слишком требователен? Подождите, когда станете начальником вы." Уильям Генри Гейтс III

Anastasiya Fevraleva
Сообщения: 22
Зарегистрирован: 22 окт 2016, 21:51

Re: Помощь в решении задачек javarush (до 10 уровня)

Сообщение Anastasiya Fevraleva » 20 ноя 2016, 17:13

package com.javarush.test.level02.lesson08.task06;

/* Вывод текста на экран
Написать функцию, которая выводит переданную строку (слово) на экран три раза, но в одной строке.
Слова должны быть разделены пробелом и не должны сливаться в одно.
*/
public class Solution
{
public static void print3(String s)
{
//напишите тут ваш код

}
public static void main(String[] args)
{
print3("window");
print3("file");
}
}

Аватара пользователя
Maksim Sergeevich
Администратор
Сообщения: 200
Зарегистрирован: 08 дек 2013, 21:19
Откуда: Гусев
Контактная информация:

Re: Помощь в решении задачек javarush (до 10 уровня)

Сообщение Maksim Sergeevich » 21 ноя 2016, 21:40

ааа помню-помню эту странную задачку. Казалось бы чего проще? Есть метод main, который вызывает метод print3 и передаёт ему значение в переменную s типа String.

public class Test2 {
public static void print3(String s)
{
System.out.println(s + " " + s + " " + s);
}
public static void main(String[] args) {
print3("window");
print3("file");
}
}
"Вы считаете, что учитель слишком требователен? Подождите, когда станете начальником вы." Уильям Генри Гейтс III

Аватара пользователя
Maksim Sergeevich
Администратор
Сообщения: 200
Зарегистрирован: 08 дек 2013, 21:19
Откуда: Гусев
Контактная информация:

Re: Помощь в решении задачек javarush (до 10 уровня)

Сообщение Maksim Sergeevich » 21 ноя 2016, 21:43

Попробуй так:

public class Test2 {

public static void print3(String s)
{
System.out.println(s + " " + s + " " + s + "\n");
}

public static void main(String[] args) {

print3("window");
print3("file");

}

}

\n - это перенос строки.
"Вы считаете, что учитель слишком требователен? Подождите, когда станете начальником вы." Уильям Генри Гейтс III

Anastasiya Fevraleva
Сообщения: 22
Зарегистрирован: 22 окт 2016, 21:51

Re: Помощь в решении задачек javarush (до 10 уровня)

Сообщение Anastasiya Fevraleva » 21 ноя 2016, 22:17

Получилось.Только надо было заменить System.out.println(s + " " + s + " " + s + "\n"); на
System.out.print(s + " " + s + " " + s + "\n");

Аватара пользователя
Maksim Sergeevich
Администратор
Сообщения: 200
Зарегистрирован: 08 дек 2013, 21:19
Откуда: Гусев
Контактная информация:

Re: Помощь в решении задачек javarush (до 10 уровня)

Сообщение Maksim Sergeevich » 22 ноя 2016, 13:46

Точно! Действительно, зачем println, если мы и так делаем перенос строки? Недоглядел-с.
"Вы считаете, что учитель слишком требователен? Подождите, когда станете начальником вы." Уильям Генри Гейтс III

Anastasiya Fevraleva
Сообщения: 22
Зарегистрирован: 22 окт 2016, 21:51

Re: Помощь в решении задачек javarush (до 10 уровня)

Сообщение Anastasiya Fevraleva » 23 ноя 2016, 15:46

/* Реализовать метод setName
Реализовать метод setName, чтобы с его помощью можно было устанавливать значение переменной private String name равное переданному параметру String name.
*/

public class Cat {
private String name;

public void setName(String name) {
//напишите тут ваш код
}
}

Аватара пользователя
Maksim Sergeevich
Администратор
Сообщения: 200
Зарегистрирован: 08 дек 2013, 21:19
Откуда: Гусев
Контактная информация:

Re: Помощь в решении задачек javarush (до 10 уровня)

Сообщение Maksim Sergeevich » 23 ноя 2016, 21:53

Всё просто. Итак у нас есть поле name класса Cat с модификатором доступа private. Почему именно private? Чтобы нельзя было изменить поле из другого класса. Обычно делают как: новое значение передаётся в публичный метод (в нашем случае это метод SetName). В этом методе можно реализовать какую-либо логику, например, чтобы нельзя было передавать значение ниже 0 и так далее. Соответственно в метод setName мы передаём какое-то значение, типа String (имя) и приравниваем значение переменной name к значению переменной, которую мы передаём в метод setName.

Однако в название переменной в методе Setname такое же, как в поле класса (name). Как компилятор поймёт где какой name? А очень просто - мы будем использовать ключевое слово this для приватной переменной поля класса.

package test2;

public class Test2 {
private String name;

public void setName(String name) {

this.name = name;
System.out.println(this.name);

}

public static void main(String[] args) {

Test2 test2 = new Test2();

test2.setName("Мурчик");

}

}
"Вы считаете, что учитель слишком требователен? Подождите, когда станете начальником вы." Уильям Генри Гейтс III

Аватара пользователя
Maksim Sergeevich
Администратор
Сообщения: 200
Зарегистрирован: 08 дек 2013, 21:19
Откуда: Гусев
Контактная информация:

Re: Помощь в решении задачек javarush (до 10 уровня)

Сообщение Maksim Sergeevich » 23 ноя 2016, 21:54

Ну это сразу с проверкой написал, а вообще решение такое:

public class Cat {
private String name;

public void setName(String name) {
//напишите тут ваш код
this.name = name;

}
}
"Вы считаете, что учитель слишком требователен? Подождите, когда станете начальником вы." Уильям Генри Гейтс III

Anastasiya Fevraleva
Сообщения: 22
Зарегистрирован: 22 окт 2016, 21:51

Re: Помощь в решении задачек javarush (до 10 уровня)

Сообщение Anastasiya Fevraleva » 25 ноя 2016, 23:07

/* Ближайшее к 10
Реализовать метод closeToTen. Метод должен выводить на экран ближайшее к 10 из двух чисел, записанных в аргументах метода.
Например, среди чисел 8 и 11 ближайшее к десяти 11. Если оба числа на равной длине к 10, то вывести на экран любое из них.
Подсказка: используйте метод public static int abs(int a), который возвращает абсолютную величину числа.
*/

public class Solution
{
public static void main(String[] args)
{
closeToTen(8,11);
closeToTen(14,7);
}

public static void closeToTen(int a, int b)
{
//::CODE:

}

public static int abs(int a)
{
if (a < 0) {
return -a;
} else {
return a;
}
}
}

Ответить