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

12Сен/120

[Java] Урок 5. Классы. Введение

  • Схема класса
  • Оператор new
  • Методы
    • Вызов метода
  • Конструкторы


Класс — это шаблон для создания объекта. Класс определяет структуру объекта и его методы, образующие функциональный интерфейс. В процессе выполнения Java-программы система использует определения классов для создания объектов.

Классы в Java не обязательно должны содержать метод main. Единственное назначение этого метода — указать интерпретатору Java, откуда надо начинать выполнение программы.
Имя исходного файла Java должно соответствовать имени хранящегося в нем общедоступного (public) класса. Регистр букв важен и в имени класса, и в имени файла.

Для создания класса достаточно написать ключевое слово class, и вслед за ним — допустимый идентификатор и пару фигурных скобок для его тела.
Схема класса:

class <имя класса> [extends <имя суперкласса>] {
	// переменные
	[type <переменная объекта>;]
	...
	//методы
	[type <имя метода> ([<список параметров>]) { 
		<тело метода>;
	}]
}

Ключевое слово extends указывает на то, что данный класс — это подкласс суперкласса. Таким образом в Java реализуется наследование. Другими словами, после extends указывается родитель текущего класса. Наследование будет рассмотрено в следующем уроке.

Оператор new
Оператор new создает экземпляр указанного класса и возвращает ссылку на вновь созданный объект.

MyClass d = new MyClass();

В связи с тем, что в Java отказались от глобальных методов и переменных, то функция main, которая находится внутри класса и выполняется, даже если не создан экземпляр класса, вызывает у меня некоторый диссонанс. Поэтому я пока буду использовать "главный" класс просто как оболочку для main функции

Пример:

class Point {
    int х, y;
}

public class Hello {
    public static void main(String args[]) {
        Point p = new Point();
        p.х = 10;
        p.y = 20;
        System.out.println("x =  " + p.х + " у = " + p.y);
    }
}

Методы
Метод - подпрограмма, принадлежащая определённому классу. Каждый метод имеет тип возвращаемого значение. Тип может быть любым, в том числе и void - тогда метод может ничего не возвращать. Метод может иметь список параметров (аргументов) - пар "тип - имя переменной". Если параметров нет, то должны оставаться пустые скобки.

Java разрешает использовать одинаковые имена переменных одновременно и в теле класса и в списке аргументов. Но в итоге получается полная хрень. Если хочется чтобы хрень не получалась, но аргументы и переменные назывались одинаково, необходимо перед переменными дописывать ключевое слово this - this.x = x;. Я так делать не рекомендую и не буду.

Вызов метода
Метод, описанный в классе вызывается при помощи конструкции <имя класса>.<имя метода>(<значения аргументов>)

class Point {
    int х, y;
    void init(int aX, int y) {
        x = aX;
        this.y = y;
    }
}

public class Hello {
    public static void main(String args[]) {
        Point p = new Point();
        p.init(10, 20);
        System.out.println("x =  " + p.х + " у = " + p.y);
    }
}

В Java отсутствует возможность передачи параметров по ссылке на примитивный тип. В Java все параметры примитивных типов передаются по значению, а это означает, что у метода нет доступа к исходной переменной, использованной в качестве параметра. При этом все объекты передаются по ссылке, т.е. можно изменять содержимое объекта, на который ссылается данная переменная.

Конструкторы
Для инициализации класса применяются специальные методы, называемые конструкторами.
Конструктор не возвращает никаких значений (даже void) и его название точно совпадает с именем класса.
Вызов конструктора происходит сразу при создании объекта.

class Point {
    int х, y;
    Point(int aX, int y) {
        x = aX;
        this.y = y;
    }
}

public class Hello {
    public static void main(String args[]) {
        Point p = new Point(10, 20);
        System.out.println("x =  " + p.х + " у = " + p.y);
    }
}
Комментарии (0) Пинги (0)

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


Leave a comment

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