Записки программиста Программирование и не только

8Окт/120

[Java] Методы. Статические и нет. Вызов методов.

Итак, в предыдущей статье я написал пример реализации сортировки. Но написал я её в виде функции.

Теперь разберу как её использовать.

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

Пример с классом:

class Sort {
    void gnom_sort(int[] mas) {
        int p = 2;
        int i = 1;
        for (; i < mas.length; ) {
            if (mas[i - 1] <= mas[i]) {
                p++;
                i = p;
            } else {
                int a = mas[i];
                mas[i] = mas[i - 1];
                mas[i - 1] = a;
                i--;
                if (i == 0) {
                    p++;
                    i = p;
                }
            }
        }
    }
}

public class Hello {
	public static void main(String args[]) {
	int mas[] = {5, 5, 9, 8, 0, -5, 9, 10};
	Sort s1 = new Sort();
	s1.gnom_sort(mas);
}

Пример со статической функцией:

class Sort {
    static void gnom_sort(int[] mas) {
        int p = 2;
        int i = 1;
        for (; i < mas.length; ) {
            if (mas[i - 1] <= mas[i]) {
                p++;
                i = p;
            } else {
                int a = mas[i];
                mas[i] = mas[i - 1];
                mas[i - 1] = a;
                i--;
                if (i == 0) {
                    p++;
                    i = p;
                }
            }
        }
    }
}

public class Hello {
	public static void main(String args[]) {
	int mas[] = {5, 5, 9, 8, 0, -5, 9, 10};
	Sort.gnom_sort(mas);	//Не нужно создавать объект
}

Также, можно поместить функцию и внутрь основного класса и сделать её статической. Тогда можно вызывать её просто по имени:

public class Hello {
    static void gnom_sort(int[] mas) {
        int p = 2;
        int i = 1;
        for (; i < mas.length; ) {
            if (mas[i - 1] <= mas[i]) {
                p++;
                i = p;
            } else {
                int a = mas[i];
                mas[i] = mas[i - 1];
                mas[i - 1] = a;
                i--;
                if (i == 0) {
                    p++;
                    i = p;
                }
            }
        }
    }

    public static void main(String args[]) {
        int mas[] = {5, 5, 9, 8, 0, -5, 9, 10};
        gnom_sort(mas);	//Просто вызываем
}
Комментарии (0) Пинги (0)

Пока нет комментариев.


Leave a comment

Нет обратных ссылок на эту запись.