JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/подскажите, почему выдает ошибку Ошибка в файле com/javar...
MaxYe
8 уровень
  • 09.08.2018
  • 1757просмотров
  • 3комментариев

подскажите, почему выдает ошибку Ошибка в файле com/javarush/task/task05/task0517/Cat.java в строке 33 constructor Cat(java.lang.String,int) is already defined in class com.javarush.task.task05.task0517.Cat

Вопрос по задаче Конструируем котиков
Java Syntax,  5 уровень,  9 лекция
Решен

Создать класс Cat (кот) с пятью конструкторами:
- Имя,
- Имя, вес, возраст
- Имя, возраст (вес стандартный)
- вес, цвет, (имя, адрес и возраст - неизвестные. Кот - бездомный)
- вес, цвет, адрес (чужой домашний кот)

Задача конструктора - сделать объект валидным.
Например, если вес не известен, то нужно указать какой-нибудь средний вес.
Кот не может ничего не весить.
То же касательно возраста. А вот имени может и не быть (null). То же касается адреса: null.

Требования:
  • У класса Cat должна быть переменная name с типом String.
  • У класса Cat должна быть переменная age с типом int.
  • У класса Cat должна быть переменная weight с типом int.
  • У класса Cat должна быть переменная address с типом String.
  • У класса Cat должна быть переменная color с типом String.
  • У класса должен быть конструктор, принимающий в качестве параметра имя, но инициализирующий все переменные класса, кроме адреса.
  • У класса должен быть конструктор, принимающий в качестве параметров имя, вес, возраст и инициализирующий все переменные класса, кроме адреса.
  • У класса должен быть конструктор, принимающий в качестве параметров имя, возраст и инициализирующий все переменные класса, кроме адреса.
  • У класса должен быть конструктор, принимающий в качестве параметров вес, цвет и инициализирующий все переменные класса, кроме имени и адреса.
  • У класса должен быть конструктор, принимающий в качестве параметров вес, цвет, адрес и инициализирующий все переменные класса, кроме имени.
package com.javarush.task.task05.task0517; /* Конструируем котиков */ public class Cat { //напишите тут ваш код private String name, address, color; private int age, weigt; public Cat(String name) { this.name = name; this.address = null; this.color = "grey"; this.age = 1; this.weigt = 1; } public Cat(String name, int age, int weigt) { this.name = name; this.address = null; this.color = "grey"; this.age = age; this.weigt = weigt; } public Cat(String name, int age) { this.name = name; this.address = null; this.color = "grey"; this.age = age; this.weigt = 1; } public Cat(String color, int weigt) { this.name = null; this.address = null; this.color = color; this.age = 1; this.weigt = weigt; } public Cat(String address, String color, int weigt) { this.name = null; this.address = address; this.color = color; this.age = 1; this.weigt = weigt; } public static void main(String[] args) { } }
0
Комментарии (3)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
klavdiym
Уровень 7
9 августа 2018, 17:06решение
Это нам видно что конструкторы разные - тот который с 26 строки и с 33, но компилятор разницы не видит. Для него они одинаковые т.к. берут одинаковый тип и в одинаковой последовательности.
+4
klavdiym
Уровень 7
9 августа 2018, 17:07полезный
Советую - https://vertex-academy.com/tutorials/ru/konstruktory-slovo-v-java/ http://developer.alexanderklimov.ru/android/java/constructor.php
+2
Oleg KharabarukSoftware Developer в NerdySoft
9 августа 2018, 17:05решение
Java-машина в момент компиляции видит сигнатуру методов и типы параметров, которые передаются в них. Тоесть имена параметров которые вы передаете - пропадают. В 33 строке вы создаете конструктор Cat(String, int), который уже был создан в 26 строке, cоответственно поэтому и выдает ошибку. К примеру если вы поменяете местами передаваемые параметры на Cat(int, String) все будет успешно компилироваться.
+6
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush