Помогите новичку

Ответить
VmgRembo
Сообщения: 2
Зарегистрирован: 03 май 2015, 14:54

Помогите новичку

Сообщение VmgRembo » 03 май 2015, 15:02

Почему не выводит рез-тат ? Не заходит в класс HighArrayapp ? Помогите , объясните :?:

Код: Выделить всё

package com.vmg.p_009_02;

import java.sql.SQLOutput;

/**
 * Created by Admin on 02.05.2015.
 */
public class main {
    public static void main (String[] args) {

        class HighArray
        {
            private long[] a;             // Ссылка на массив
            private int nElems;           // Количество элементов в массиве
            //-----------------------------------------
            public HighArray (int max)   // Конструктор
            {
                a = new long[max];       // Создание массива
                nElems = 0;              // Пока нет ни одного элемента
            }
            //----------------------------------------------
            public boolean find(long searchkey)
            {
                int j;
                for (j=0;j<nElems;j++)
                    if (a[j]== searchkey){   // Да , значение найдено
                        break;
                    }
                if (j==nElems) {
                    return false;           // Достигнут последний элемент
                } else {
                    return true;
                }
            }
            //----------------------------------------------------
            public void insert(long value){
                a[nElems] = value ;
                nElems ++;
            }
            //-----------------------------------------------------
            public boolean delete(long value){
                int j;
                for (j=0;j<nElems;j++){
                    if (value==a[j]) {
                        break;
                    }
                }
                if (j==nElems){
                    return false;
                } else {
                    for (int k=j;k<nElems;k++){
                        a[k]=a[k+1];
                    }
                    nElems--;
                    return true;
                }
            }
            //---------------------------------------------------------
            public void display () {
                int j;
                for (j=0;j<nElems;j++){
                    System.out.println(a[j]+" ");
                    System.out.println(" ");
                }
            }
            //-------------------------------------------------------
        }   // КОНЕЦ КЛАССА HighArray
        ///////////////////////////////////////////////////////////////

        class HighArrayApp
        {
            public void main(String[] args) {
                int maxSize = 100 ;
                HighArray arr;
                arr = new HighArray(maxSize);

                arr.insert(11);
                arr.insert(17);
                arr.insert(21);
                arr.insert(34);
                arr.insert(6);
                arr.insert(107);
                arr.insert(1337);
                arr.insert(89);
                arr.insert(75);
                arr.insert(99);

                arr.display();

                int searchKey = 107 ;
                if (arr.find(searchKey)) {
                    System.out.println("Found "+searchKey);
                } else {
                    System.out.println("Can't find "+searchKey);
                }

                arr.delete(107);
                arr.delete(89);
                arr.delete(100);
                arr.display();

            }
        }


      }
}

VmgRembo
Сообщения: 2
Зарегистрирован: 03 май 2015, 14:54

Re: Помогите новичку

Сообщение VmgRembo » 03 май 2015, 15:04

Кому интересно код взят из книги Роберта Лафоре "Структуры данных и алгоритмы Java"

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Помогите новичку

Сообщение doter.ua » 03 май 2015, 15:16

метод мейн - точка входа в программу (например запускание ярлыка вызовет мейн). Другие методы\классы просто так вызываться не будут. Нужно явно создать экземпляр класса и вызвать у него нужный метод.

Код: Выделить всё

class HighArrayApp 
        { 
            public void myMain() { 
                int maxSize = 100 ; 
                HighArray arr; 
                arr = new HighArray(maxSize); 
 
                arr.insert(11); 
                arr.insert(17); 
                arr.insert(21); 
                arr.insert(34); 
                arr.insert(6); 
                arr.insert(107); 
                arr.insert(1337); 
                arr.insert(89); 
                arr.insert(75); 
                arr.insert(99); 
 
                arr.display(); 
 
                int searchKey = 107 ; 
                if (arr.find(searchKey)) { 
                    System.out.println("Found "+searchKey); 
                } else { 
                    System.out.println("Can't find "+searchKey); 
                } 
 
                arr.delete(107); 
                arr.delete(89); 
                arr.delete(100); 
                arr.display(); 
 
            } 
        } 
В главном методе добавь:
HighArrayapp myClass = new HighArrayapp();
myClass.myMain();
П.С. Создавать классы нужно в отдельных файлах ( ПКМ new class).
Кароче почитай про общую структуру кода:
1 класс - 1 файл.
в 1 классе - может быть много методов.
для запуска класса в другом классе создается его экземпляр. оператор new
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Ответить