Перейти к содержанию
Авторизация  
DenisPavlovich

This. Java. Не Относится К Л2

Рекомендуемые сообщения

И снова я со своим изучением java...

 

Вроде код рабочий, но что-то не так =\

Задание вверху кода.

 

 

Попытка №1

package com.javarush.test.level05.lesson05.task02;

/* Реализовать метод fight
Реализовать метод boolean fight(Cat anotherCat):
реализовать механизм драки котов в зависимости от их веса, возраста и силы.
Зависимость придумать самому. Метод должен определять, выиграли ли мы (this) бой или нет,
т.е. возвращать true, если выиграли и false - если нет.
Должно выполняться условие:
если cat1.fight(cat2) = true , то cat2.fight(cat1) = false
*/

public class Cat
{
public String name;
public int age;
public int weight;
public int strength;

public Cat(String name, int age, int weight, int strength) {

this.name = name;
this.age = age;
this.weight = weight;
this.strength = strength;

Cat cat1 = new Cat("Vaska", 2, 3, 4);
Cat cat2 = new Cat("Gena", 3, 4, 5);

cat1.fight(cat2);
}


public boolean fight (Cat anotherCat)
{
int agePlus = this.age > anotherCat.age ? 1 : 0;
int weightPlus = this.weight > anotherCat.weight ? 1 : 0;
int strengthPlus = this.strength > anotherCat.strength ? 1 : 0;

int score = agePlus + weightPlus + strengthPlus;
return score > 2 ? true : false;

}
}

 

 

Попытка №2

 

public class Cat
{
   public String name;
   public int age;
   public int weight;
   public int strength;

   public Cat()
   {
   }

   public boolean fight (Cat anotherCat)
   {
       this.age = 4;
       this.weight = 7;
       this.strength = 16;

       anotherCat.age = 5;
       anotherCat.weight = 11;
       anotherCat.strength = 7;

       return ((this.strength + this.age + this.weight) > (anotherCat.strength + anotherCat.weight + anotherCat.age));

   }
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

омг) вернись в начало и разбирайся если ты тут не понимаешь то дальше ещё хуже)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

омг) вернись в начало и разбирайся если ты тут не понимаешь то дальше ещё хуже)

 

Тк я и пытаюсь понять. Код ошибок не выдает. Теоретически же верно все, вроде...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тк я и пытаюсь понять. Код ошибок не выдает. Теоретически же верно все, вроде...

где метод main? покажи как ты объекты создаёшь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

где метод main? покажи как ты объекты создаёшь

 

тут не нужно main создавать. Тут суть такая, дается шаблон, и нужно вписать в него код. Проверяются именно методы тут.

 

А объекты я создал тут:

 

Cat cat1=new Cat();

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тут не нужно main создавать. Тут суть такая, дается шаблон, и нужно вписать в него код. Проверяются именно методы тут.

 

А объекты я создал тут:

 

Cat cat1=new Cat();

Можно полностью весь код как вы тестировали и по которому пришли к выводу, что он работает неправильно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно полностью весь код как вы тестировали и по которому пришли к выводу, что он работает неправильно?

 

весь код в самом первом посту.

К выводу пришел, птм что программа тестируется через сервер в автоматическом режиме, выдало что программа не прошла тест.

 

Даже если добавить метод main, так вот:

 

 public static void main(String[] args){

Cat cat1 = new Cat("Vaska", 2, 3, 4);
Cat cat2 = new Cat("Gena", 3, 4, 5);
cat1.fight(cat2);

 

То программа все-равно не проходит тест. =(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

весь код в самом первом посту.

К выводу пришел, птм что программа тестируется через сервер в автоматическом режиме, выдало что программа не прошла тест.

 

Даже если добавить метод main, так вот:

 

 public static void main(String[] args){

Cat cat1 = new Cat("Vaska", 2, 3, 4);
Cat cat2 = new Cat("Gena", 3, 4, 5);
cat1.fight(cat2);

 

То программа все-равно не проходит тест. =(

Вы хоть перед тем как сдавать на проверку компилируйте и сами тестируйте, .т.к. никакого толку от такого обучения методом тыка нет

Попробуйте следующий код:

public class Cat
{
public String name;
public int age;
public int weight;
public int strength;

public Cat(String nme, int ag, int wght, int str)
{

name = name;
age = ag;
weight = wght;
strength = str;
}


public boolean fight (Cat anotherCat)
{
int agePlus = age > anotherCat.age ? 1 : 0;
int weightPlus = weight > anotherCat.weight ? 1 : 0;
int strengthPlus = strength > anotherCat.strength ? 1 : 0;

int score = agePlus + weightPlus + strengthPlus;
return score > 2 ? true : false;

}

public static void main(String[] args)
{

Cat cat1 = new Cat("Vaska", 2, 3, 4);
Cat cat2 = new Cat("Gena", 3, 4, 5);
System.out.println("frist cat win: "+cat1.fight(cat2));
}
}

А это:

public Cat(String name, int age, int weight, int strength) {

this.name = name;
this.age = age;
this.weight = weight;
this.strength = strength;

[b]Cat cat1 = new Cat("Vaska", 2, 3, 4);[/b]
Cat cat2 = new Cat("Gena", 3, 4, 5);

cat1.fight(cat2);
}

вообще рекурсию пораждает. Вам необходимо больше практики

Изменено пользователем Yokus

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужно именно с помощью "this" реализовать.

В данном случае:

name = nme;
age = ag;
weight = wght;
strenght = str;

и

this.name = nme;
this.age = ag;
this.weight = wght;
this.strenght = str;

одно и то же

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В данном случае:

name = nme;
age = ag;
weight = wght;
strenght = str;

и

this.name = nme;
this.age = ag;
this.weight = wght;
this.strenght = str;

одно и то же

 

Все-равно тест не прошел =(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не советую учиться на этом сайте. Он уже вам вдалбливает свою логику.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не советую учиться на этом сайте. Он уже вам вдалбливает свою логику.

 

Посоветуй тогда, с чего начать-то?

Я уже раза 4 начинал, сначала все ясно и прозрачно, а потом внезапно какая-нибудь штука, про которую не рассказывали вообще, и приходиться или на форум лезть, или гуглить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посоветуй тогда, с чего начать-то?

Я уже раза 4 начинал, сначала все ясно и прозрачно, а потом внезапно какая-нибудь штука, про которую не рассказывали вообще, и приходиться или на форум лезть, или гуглить.

А разве это не есть обучение? оО. Кажется я именно так и учился программировать: натыкался на проблемы и пытался её решить теми или иными способами. Попробуйте видеоуроки, там хоть если автор натыкается на проблему, то её решат и говорит как

Изменено пользователем Yokus

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А разве это не есть обучение? оО. Кажется я именно так и учился программировать: натыкался на проблемы и пытался её решить теми или иными способами

 

Да все бы было именно так, если бы сначала объяснялась тема, а потом давались по ней задания. А тут получается что "this" вообще не объясняли, но дали задание, я помню его только когда по книге учил еще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нужен this, получите

 

public class Example
{
private int a;
private int b;
private int c;

public Example(int a)
{
this(a, 0);
}

public Example(int a, int 
{
this(a, b, 0);
}

public Example(int a, int b, int c)
{
this.a = a;
this.b = b;
this.c = c;
}
}
}

 

this - ключевое слово необходимое для обращения к полям данного класса или класса родителя, так же в яве оно может использоватся для вызова конструктора с другими параметрами.

Изменено пользователем Mifesto

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нужен this, получите

 

public class Example
{
private int a;
private int b;
private int c;

public Example(int a)
{
this(a, 0);
}

public Example(int a, int 
{
this(a, b, 0);
}

public Example(int a, int b, int c)
{
this.a = a;
this.b = b;
this.c = c;
}
}
}

 

Ну в принципе у меня так и сделано. Вот только не проходит он у меня проверку =(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...