Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2009, 14:05   #1
Pti44ka
Пользователь
 
Аватар для Pti44ka
 
Регистрация: 02.09.2009
Сообщений: 56
По умолчанию Проблема с параметрами

Я пишу программу для вывода на экран меню и выбора действий,которые нужно совершить. Я создала 2 класса: MyClass и Main. В MyClass я занесла 3 метода: 1) для чтения символа; 2) меню;3) для исполнения операций. Но когда я создаю объект типа класса MyClаss и вызываю третий метод count у меня происходит ошибка. Никак не могу ее исправить.

Вот мой код:
MyClass.java
Код:
public class MyClass {
   private String [] a; 
   public int [] a1;
   private int s4, s5,s6,s7;
       MyClass(){
           a = new String[10];
           s4=0;
           s5=0;
           s6=1;
           s7=1;
          
       }
       public void ReadObj() throws IOException{
        System.out.println(" Enter two integer numbers");
        BufferedReader s = new BufferedReader(new InputStreamReader(System.in));
        BufferedReader s1 = new BufferedReader(new InputStreamReader(System.in));
        int s2 = Integer.valueOf(s1.readLine()).intValue();
     
        for(int i=0;i<2;i++){
        a[i] = s.readLine(); 
        a1[i] = Integer.valueOf(a[i]).intValue();
            }
        }
       public void menu(){
           System.out.println(" Choose the number of operation");
           System.out.println("1) A + B");
           System.out.println("2) A - B");
           System.out.println("3) A * B");
           System.out.println("4) A / B");
           
       }
        public void count(int s2, int a1[]){
            try{
                for(int i=0;i<2;i++)
                switch(s2){
                    case 1:
                     s4 = s4+a1[i];
                     System.out.println(s4);
                    break;
                    case 2:
                        s5 = a1[i]-s5;
                        System.out.println(s5);
                    break;
                    case 3:
                        s6 = s6*a1[i];
                        System.out.println(s6);
                    break;
                    case 4:
                        s7 = a1[i]/s7;
                        System.out.println(s7);
                    break;
                }
            }
                catch( Exception e){
                    System.out.println("There are no operation of this number. Enter 1,2,3 or 4");
            }
       } 
}
а вот Main.java
Код:
package variant4;

import java.io.IOException;


public class Main {

    
    public static void main(String[] args) throws IOException {

        MyClass obj = new MyClass();
        obj.ReadObj();
        obj.menu();
        obj.count(s2, a1);// - ошибка
        
    }

}

Последний раз редактировалось alexinspir; 03.10.2009 в 18:34. Причина: Тег [code]!
Pti44ka вне форума Ответить с цитированием
Старый 19.09.2009, 14:29   #2
androidvsu
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 39
По умолчанию

Вроде надо создать объекты s2 и a1, а потом вызывать метод count
Приведи пример входных данных
androidvsu вне форума Ответить с цитированием
Старый 19.09.2009, 14:43   #3
Pti44ka
Пользователь
 
Аватар для Pti44ka
 
Регистрация: 02.09.2009
Сообщений: 56
По умолчанию

Цитата:
Сообщение от androidvsu Посмотреть сообщение
Вроде надо создать объекты s2 и a1, а потом вызывать метод count
Приведи пример входных данных
я в метод count передаю два параметра s2 - это то,что вводит пользователь приведенное к типу int. - для выбора номера в меню и массив a1 - это наши 2 числа А и В с которым дальше будут выполняться операции. Создаю объект типа MyClass и вызываю метод. но у меня ничего не получается.

Ты предлагаешь сделать так?
Integer a1[] = new Integer[10];
int s2;
Integer s3 = new Integer (s2);
и программа будет работать??
просто я еще не очень понимаю работу с параметрами...

Последний раз редактировалось Pti44ka; 19.09.2009 в 14:51.
Pti44ka вне форума Ответить с цитированием
Старый 19.09.2009, 14:57   #4
androidvsu
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 39
По умолчанию

что-то типа того, если бы был пример входных данных сказал бы че-нить насчет кода и в принципе помести в main код
int s2;
int [] a1;
а потом вызови count(s2, a1)! Должно откомпилироваться!!!!!
androidvsu вне форума Ответить с цитированием
Старый 03.10.2009, 20:51   #5
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Цитата:
Сообщение от Pti44ka Посмотреть сообщение
Код:
public class MyClass {
   private String [] a; 
   public int [] a1;
   private int s4, s5,s6,s7;
       MyClass(){
           a = new String[10];
           s4=0;
           s5=0;
           s6=1;
           s7=1;
          
       }
       public void ReadObj() throws IOException{
        System.out.println(" Enter two integer numbers");
        BufferedReader s = new BufferedReader(new InputStreamReader(System.in));
        BufferedReader s1 = new BufferedReader(new InputStreamReader(System.in));
        int s2 = Integer.valueOf(s1.readLine()).intValue();
     
        for(int i=0;i<2;i++){
        a[i] = s.readLine(); 
        a1[i] = Integer.valueOf(a[i]).intValue();
            }
        }
       public void menu(){
           System.out.println(" Choose the number of operation");
           System.out.println("1) A + B");
           System.out.println("2) A - B");
           System.out.println("3) A * B");
           System.out.println("4) A / B");
           
       }
        public void count(int s2, int a1[]){
            try{
                for(int i=0;i<2;i++)
                switch(s2){
                    case 1:
                     s4 = s4+a1[i];
                     System.out.println(s4);
                    break;
                    case 2:
                        s5 = a1[i]-s5;
                        System.out.println(s5);
                    break;
                    case 3:
                        s6 = s6*a1[i];
                        System.out.println(s6);
                    break;
                    case 4:
                        s7 = a1[i]/s7;
                        System.out.println(s7);
                    break;
                }
            }
                catch( Exception e){
                    System.out.println("There are no operation of this number. Enter 1,2,3 or 4");
            }
       } 
}
Код:
package variant4;

import java.io.IOException;


public class Main {

    
    public static void main(String[] args) throws IOException {

        MyClass obj = new MyClass();
        obj.ReadObj();
        obj.menu();
        obj.count(s2, a1);// - ошибка
        
    }

}
Настоятельно рекомендую изучить теорию ООП - видимость классовых и блоковых переменных.
Также очень убого использование try{}catch{} где исключение в принципе выброшено быть не может(разве что только будут переданны null-параметры).
Также рекомендую ознакомится с синтаксисом switch, а именно default блоком.

Что еще могу сказать - код ужасен.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UPDATE с параметрами QQmb SQL, базы данных 11 06.05.2009 15:20
Запуск с параметрами Xatr Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 12 05.05.2009 17:40
ActiveX с параметрами Chainic Общие вопросы Delphi 2 28.05.2008 16:25
Проблема с параметрами при работе С ADO А. Долматов БД в Delphi 22 30.11.2007 08:47
Приложение с параметрами RoadTrain Общие вопросы Delphi 3 08.05.2007 15:37