Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 4
1

Как передать входящее значение одного метода класса на возврат в другой метод того же класса?

25.10.2016, 21:42. Просмотров 3622. Ответов 6
Метки нет (Все метки)

Я самый новейший новичок. Помогите.Как передать входящее значение (количество еды) метода feed класса Cat на возврат(return) в метод getEatenFood того же класса? Без использования счётчиков. Как вариант с созданием дополнительного поля класса (но тогда как это поле описать), но лучше без доп.поля.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
public class Cat
{
    private Double originWeight;
    private Double weight;
 
    private Double minWeight;
    private Double maxWeight;
 
 
    public Cat()
    {
        weight = 1500.0 + 3000.0 * Math.random();
        originWeight = weight;
        minWeight = 1000.0;
        maxWeight = 9000.0;
 
    }
    public void meow()
    {
        weight = weight - 1;
        System.out.println("Meow");
    }
 
    public void feed(Double amount)
    {
        weight = weight + amount;
    }
 
    public void drink(Double amount)
    {
        weight = weight + amount;
    }
 
//    Кошка после покаканья худеет на 5%
    public void crap () {weight = weight*0.95;
        System.out.println("Ohhh...");}
 
    public Double getWeight()
    {
        return weight;
    }
//    как в методе getEatenFood сослаться именно на метод feed, чтобы данные о количестве съеденной еды брались оттуда?
    public Double getEatenFood() {return this.weight-originWeight;}
    public String getStatus()
    {
        if(weight < minWeight) {
            return "Dead";
        }
        else if(weight > maxWeight) {
            return "Exploded";
        }
        else if(weight > originWeight) {
            return "Sleeping";
        }
        else {
            return "Playing";
        }
    }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2016, 21:42
Ответы с готовыми решениями:

Как правильно описать метод внутри другого метода одного и того же класса?
Извияюсь за возможно глупый вопрос, но ООП тема для меня новая.Вот так выглядел метод класса в...

Как правильно передать метод делегата из одного класса в другой?
Добрый день! Я написал класс который рисует спираль Архимеда в pictureBox. За основу для для...

Как передать значение переменной из одного класса в другой
Всем привет.Имеется 2 класса, Class A и Сlass Form1 в классе А что то выполняется Public Class A...

Как в методе класса вызвать другой метод того же класса?
class mate { public: int AplusB(int A, int B) { return A+B; } int AplusBplusC(int A,...

6
2556 / 2210 / 669
Регистрация: 05.07.2013
Сообщений: 10,661
25.10.2016, 22:00 2
Java
1
2
3
4
5
public Double feed(Double amount)
{
weight = weight + amount;
return amount;
}
но как-то мне не вполне понятно зачем ты хочешь это сделать.
а еще погугли, чем double отличается от Double.
0
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 4
25.10.2016, 23:05  [ТС] 3
О, спасибо. Это работает конечно, но не совсем то,что я спрашивала.Задача и правда странная,зачем возвращать это значение,если я его сама и задала. Дело в том, что у меня есть задание "- Создать в классе Cat метод, который будет возвращать массу съеденной еды". Я думаю надо взять входящее из метода feed (к примеру покормили кошку на 100.4 грамма) и передать как-то (вот как раз не понимаю как!) это значение на возврат в метод getEatenFood, чтобы потом это значение просто распечатывать в консоли. Нужно,чтобы метод брал именно значение из feed, т.к. вес также изменяется при мяуканьи, если дать попить и если покакает (не понимаю как составить условие вычисления этого значения 100.4 в return метода getEatenFood)... Про double: я так понимаю, что double указывает тип переменной, а Double -это класс.
0
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 9
25.10.2016, 23:36 4
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
public class Cat
{
    private Double originWeight;
    private Double weight;
 
    private Double minWeight;
    private Double maxWeight;
 
 
    public Cat()
    {
        weight = 1500.0 + 3000.0 * Math.random();
        originWeight = weight;
        minWeight = 1000.0;
        maxWeight = 9000.0;
 
    }
    public void meow()
    {
        this.weight = weight - 1;
        System.out.println("Meow");
    }
 
    public void feed(Double amount)
    {
        weight = weight + amount;
    }
 
    public void drink(Double amount)
    {
        weight = weight + amount;
    }
 
//    Кошка после покаканья худеет на 5%
    public void crap () {weight = weight*0.95;
        System.out.println("Ohhh...");}
 
    public Double getWeight()
    {
        return weight;
    }
//    как в методе getEatenFood сослаться именно на метод feed, чтобы данные о количестве съеденной еды брались оттуда?
    public Double getEatenFood() {return this.weight-originWeight;}
    public String getStatus()
    {
        if(weight < minWeight) {
            return "Dead";
        }
        else if(weight > maxWeight) {
            return "Exploded";
        }
        else if(weight > originWeight) {
            return "Sleeping";
        }
        else {
            return "Playing";
        }
    }
 
[size="1"][color="grey"][I]Добавлено через 2 минуты[/I][/color][/size]
выше ошибся, не там написал this. this - это ссылка на поле внутри этого же класса
public class Cat
{
    private Double originWeight;
    private Double weight;
 
    private Double minWeight;
    private Double maxWeight;
 
 
    public Cat()
    {
        weight = 1500.0 + 3000.0 * Math.random();
        originWeight = weight;
        minWeight = 1000.0;
        maxWeight = 9000.0;
 
    }
    public void meow()
    {
        weight = weight - 1;
        System.out.println("Meow");
    }
 
    public void feed(Double amount)
    {
        this.weight = weight + amount;
    }
 
    public void drink(Double amount)
    {
        weight = weight + amount;
    }
 
//    Кошка после покаканья худеет на 5%
    public void crap () {weight = weight*0.95;
        System.out.println("Ohhh...");}
 
    public Double getWeight()
    {
        return weight;
    }
//    как в методе getEatenFood сослаться именно на метод feed, чтобы данные о количестве съеденной еды брались оттуда?
    public Double getEatenFood() {return this.weight-originWeight;}
    public String getStatus()
    {
        if(weight < minWeight) {
            return "Dead";
        }
        else if(weight > maxWeight) {
            return "Exploded";
        }
        else if(weight > originWeight) {
            return "Sleeping";
        }
        else {
            return "Playing";
        }
    }
0
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 4
26.10.2016, 09:08  [ТС] 5
Спасибо за ответ. Я попробовала ваш вариант, при распечатке я получаю не количество съеденной пищи, а разницу между изначальным весом и последним весом, а я ещё кошку поила, она мяукала и какала, поэтому условие {return this.weight-originWeight;} не даёт количества именно СЪЕДЕННОЙ пищи.
Javascript
1
2
3
4
5
    
    public void feed(Double amount)
    {
        this.weight = weight + amount;
    }
так и сделала, но не пойму зачем это.Скажите, а что даёт this в этом случае? Вобщем не помогло... Так и остаётся вопрос:как составить условие только для съеденной пищи, или каким образом передать это значение из метода feed в метод getEatenFood?
0
307 / 237 / 101
Регистрация: 14.06.2016
Сообщений: 491
26.10.2016, 09:23 6
Лучший ответ Сообщение было отмечено Сашка-Машка как решение

Решение

Java
1
private Double eatenFood = 0;
Java
1
2
3
4
5
    public void feed(Double amount)
    {  
        eatenFood += amount;
        weight = weight + amount;
    }
Java
1
public Double getEatenFood() {return eatenFood;}
1
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 4
26.10.2016, 20:52  [ТС] 7
vcrop, большое вам спасибо! Это как раз то,что нужно!!! Работает!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2016, 20:52

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Передать входящее значение. Передача метода в метод
Есть класс Driver. В нём я сделал метод, который свитчем, выбирает нужного мне водителя import...

Передать значение из одного класса в другой
помогите определить значение Есть код using System; using System.Collections.Generic;...

Передать значение из одного класса в другой
есть 2 класса public partial class MainPage : UserControl { void runer() ...

Передать значение переменной из одного класса в другой
Всем привет, подскажите как передать или же установить значение переменной класса из другого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.