Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekcii_RSOI.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
400 Кб
Скачать
☆

1.3.1Именованные константы

static final int MAX = 50;

1.3.2Классы и объекты

Создание объектов – отличие:

  1. объекты создаются только в динамической памяти – в куче

  2. new

  3. доступ посредством ссылок. Выделяется ячейка памяти под ссылку и с ней мы можем работать и писать туда разные значения. Если ссылка не назначена (показывает) – null.

  4. Передавая объект – передается ссылка, а не копия объекта.

  1. class Point { public double x, y; } Point LT = new Point(); Point BR = new Point(); LT.x = 0.0;

При объявлении выделяется место для массива ссылок на объект. У массив есть номер… Исполнительная среда контролирует вход за пределы массива. Если создать объект типа String, его можно только читать.

1.3.3Комментарии

/*..*/ - C – style

//.. – C++ - style

/** ..*/ - for javadoc tool

Лекция 21.09.04

  • equals

  • public int hashCode()

protected Object cline() throws CloneNotSupportedException

public final class getClass();

protected void finalize throws Throwabble

1.3.4Класс Object

public String toString(); - дает строковое представление объекта

1.3.5Класс Class

В runtime JRE осуществляет проверку типов объектов  класса.

getClass() возвращает экземпляр типа Class

Emp e; e = new Emp();

Class cl = e.getClass();

getName();

forName()

Class cl = Class.forName(className);

if (e.getClass() = Emp.class)

newInstance

Object m = Class.forName(S).newInstance();

Object.clone()

  1. Обеспечивает простое клонирование путем копирования всех компонентов объекта

  2. поддержка клонирования – Clonable clone – не должен предусматривать испоключения

  3. Составные части тоже допускают клонирование.

public clad IntStack implements

{

private int[] buffer;

// еще есть хитрый непонятный наворот с внутренними классами.

public Object clone{

IntStack nObj = (IntStack) super.cloe();

nObj.buffer = (int []) buffer.clone();

return nObj;

}

}

1.3.6Проверка типов

instanceOf

if(i instanceOf int)

final – класс, нельзя осуществить производные методы, нельзя переписать.

abstract – если предполагается, что метод будет определяться в производных классах, то можно поставить этот тмодификатор.

1.3.7Идентификаторы

public interface X{…

class newClass implements X {…}

1.3.8Обратный вызов

class TmerPrinter

1.3.9Вложенные классы и интерфейсы

  1. Класс может быть добавлен в объявление  класса внутри блока

  2. Вложенный тип является частью вышестоящего типа

  3. Внешние и вложенные типы находятся во взаимном доверии друг к другу с т. з. области видимости.

  4. Вложенные классы могут быть именованными и неименованными.

Объекты внутренних классов неявно несут и ссылку на внешний класс.

1.3.10Исключения

try – catch finally(вызывается после основного обработчика)

class BadDataSetException extends Exception {}

class my{

public double[] g DataSet(String qname) throws BadDataSetException

{

String file = …

try {

} catch (IOException e) {throw BadDatSetException();}

finally {

try {

if (m = null)…

1.3.11Многопоточность

Определение 1.1 Процесс – программа, которая выполняется на одном из процессоров виртуальной системы.

        1. Блокировки

Объекты используют признаки блокировки.

  1. Создание потоков контролируется объект класса ‘поток’ Thread t = new Thread

  2. start – порожден новый поток автоматически JVM вызывает метод, который делает поток активным

  3. рассмотрен Thread, Runnable

  4. Создание объектов public class PingPing extends Thread { private String word; private int delay; public PingPong (String whatToSay, int Delay) { word = whatToSay; delay = Delay; } public void run(){ try { for (;;) { System.out.print(word); Thread.Sleep(delay); } catch (IOException e) { return } } public static void main (String [] args) { new PingPong(“ping1”, 33).start(); new PingPong(“ping2”, 100).start(); } }

Интерфейс Runable с единственным методом oublic void Run().

Куча примеров…

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]