Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Blood Red Rose
1 / 1 / 1
Регистрация: 02.04.2016
Сообщений: 104
#1

В одном классе не "читается" переменная из другого

24.01.2017, 17:17. Просмотров 738. Ответов 4
Метки нет (Все метки)

Подскажите пожалуйста, почему возникает проблема с isTurned? То есть функция checker() не выполняется. Я пробовал инициализировал boolean переменную в начале, присваивал ей internet.isTurned() и на этом месте мне выдает ошибку NullPointerException, как и в первой же функции checker(interner.isTurned). Сам Eclipse ошибок при построении не показывает. Ниже коды.
C++
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
public class Abonent {
    
    private boolean Off_by_nonpay = false; 
    private int ID; 
    private String Name; 
    private int Age; 
    private String Passport; 
    private String Number; 
    public Internet internet; 
    public SMS sms; 
    public Calls calls; 
    
    
    public String checker(boolean Turned){
        if(Turned) return "Да"; 
            else return "Нет";
    }
    
    public void ShowInf(){
        System.out.println("ID: \t" + ID);
        System.out.println("ФИО: \t" + Name);
        System.out.println("Возраст: \t" + Age);
        System.out.println("Паспортные данные: \t" + Passport);
        System.out.println("Номер телефона: \t" + Number);
        System.out.println("Отключен за неуплату: \t" + checker(Off_by_nonpay));
        
        System.out.println("Интернет: \t" + checker(internet.isTurned()));
        System.out.println("СМС: \t" + checker(sms.isTurned()));
        System.out.println("Звонки: \t" + checker(calls.isTurned()));
        System.out.println();
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Internet {
    
    private boolean Turned = true;  
        private String Discription; 
    private int Traffic; 
    private double Price = 50;
    
    public Internet(){
        Discription = Price + " руб.";
        Traffic = 0;
    }
    
    public boolean isTurned() {
        return Turned;
    }
 
 
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2017, 17:17
Ответы с готовыми решениями:

Переменная не "читается" методом
Здравствуйте! Я пишу программу, работающую с bmp. В программе есть несколько...

Почему переменная CLASSPATH не может иметь значения "."?
Друзья! Исследуя поведение компилятора, наткнулся на такой вот преинтереснейший...

Ошибка: "Переменная ххх могла быть не инициализирована."
Я пытаюсь создать строку: public void tracking(String goal, String fileData,...

По моему,циклы тут никак не связанны,и переменная "y" не используется как надо
Это проблема многих задач в книге К.Сьера,Б.Бейтс, возможно дело в переводе,не...

Создать 3 объекта типа Dog (собака) и присвоить им имена "Max", "Bella", "Jack"
Создать 3 объекта типа Dog (собака) и присвоить им имена "Max", "Bella",...

4
evgeniybal
1 / 1 / 1
Регистрация: 20.07.2014
Сообщений: 21
24.01.2017, 17:28 #2
Пожалуйста кидайте код целиком, ибо непонятно что внутри классов SMS и Calls.
в функцию checker вы передают переменную булевого типа которая никак не относиться к переменной Turned из класса Internet. Более того как как переменная turned в класса internet private, то напрямую к ней обратиться у вас бы итак не получилось.

И еще небольшой совет на будущее для облегчения читаемости кода. Все переменные (кроме финальных, они обычно целиком большими написанны) обычно пишут с маленькой буквы.
0
Blood Red Rose
1 / 1 / 1
Регистрация: 02.04.2016
Сообщений: 104
24.01.2017, 17:36  [ТС] #3
Цитата Сообщение от evgeniybal Посмотреть сообщение
Пожалуйста кидайте код целиком, ибо непонятно что внутри классов SMS и Calls.
Там все до символа идентично с internet
Цитата Сообщение от evgeniybal Посмотреть сообщение
в функцию checker вы передают переменную булевого типа которая никак не относиться к переменной Turned из класса Internet. Более того как как переменная turned в класса internet private, то напрямую к ней обратиться у вас бы итак не получилось.
я обращаюсь к ней через функцию isTurned(), а не напрямую. Так у меня была бы явна ошибка. А так все чистенько, а программа не работает
0
evgeniybal
1 / 1 / 1
Регистрация: 20.07.2014
Сообщений: 21
24.01.2017, 17:37 #4
Лучший ответ Сообщение было отмечено Blood Red Rose как решение

Решение

Цитата Сообщение от Blood Red Rose Посмотреть сообщение
Я пробовал инициализировал boolean переменную в начале, присваивал ей internet.isTurned() и на этом месте мне выдает ошибку NullPointerException, как и в первой же функции checker(interner.isTurned).
В данном случае NLP появился из за того что вы создали экземпляр класса, но не созадли на него ссылку. Проще говоря
Java
1
Internet internet = new Internet();
1
Blood Red Rose
1 / 1 / 1
Регистрация: 02.04.2016
Сообщений: 104
24.01.2017, 17:44  [ТС] #5
Цитата Сообщение от evgeniybal Посмотреть сообщение
В данном случае NLP появился из за того что вы создали экземпляр класса, но не созадли на него ссылку. Проще говоря
Точно! А слона то я и не заметил, короче. Благодарю за помощь.
0
24.01.2017, 17:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2017, 17:44

Не инициализированная переменная "k" в цикле
import java.util.Scanner; class Powermy4{ public static void main(String...

Описать класс "многочлен", реализовать методы "произведение многочленов", "сравнение на равенство"
описать класс "многочлен".реализовать методы "произведение многочленов",...

Класс "Строка", реализовать через агрегирование, с использованием классов "Слово" и "Символ"
Создать объект класса "Строка", используя классы "Слово", "Символ".Реализовать...


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

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

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