Delphi | Сети | ПК | Маршрутизаторы | Моделирование | Протоколы | Экспертные системы | Удаленный доступ | Доменные имена
Аплеты | SQL | Надежность | Задачи | Информационные процессы | JAVA | Отказы изделия | Расчет надежности показателей | Инфсис

Объектно-ориентированное программирование в Java

Заметим, что глобальных переменных в Java нет, все переменные локальные в пределах функции или класса. Исключением можно считать статические члены класса, к которым можно обратиться из любого места. Массивы В языке Java, как и в C, можно использовать массивы. Объявляются они следующим образом

Отношения "быть частью" и "являться"

Теперь у нас появились две различные иерархии классов. Одну иерархию образует наследование классов, другую — вложенность классов.

Определив, какие классы будут написаны в вашей программе, и сколько их будет, подумайте, как спроектировать взаимодействие классов? Вырастить пышное генеалогическое дерево классов-наследников или расписать матрешку вложенных классов?

Теория ООП советует прежде всего выяснить, в каком отношении находятся ваши классы р и Q — в отношении "класс Q является экземпляром класса р" ("a class Q is a class р") или в отношении "класс Q — часть класса р" ("a class Q has a class P").

Например: "Собака является животным" или "Собака — часть животного"? Ясно, что верно первое отношение "is-a", поэтому мы и определили класс Dog как расширение класса Pet.

Отношение "is-a" — это отношение "обобщение-детализация", отношение большей или меньшей абстракции, и ему соответствует наследование классов.

Отношение "has-a" — это отношение "целое-часть", ему соответствует вложение.

Вы уже знаете, что для размещения апплета на HTML-странице используется контейнер <applet></applet>. Кроме того, в апплет можно передать параметры, например:

<APPLET CODE=Star WIDTH=220 HEIGHT=220>
<PARAM name=x value='100'>
</APPLET>

Каждый параметр должен иметь имя - name (регистр в имени не учитывается) и значение - value.
В данном примере из HTML-документа в апплет Star.class могут передаваться разные значения параметра color:

<html><head></head>
<body bgcolor=Black bottommargin=0 leftmargin=0
topmargin=0 rightmargin=0>
<APPLET CODE=Star WIDTH=220 HEIGHT=220>
<PARAM name=color value='red on black'></APPLET>
</body></html>

Апплет получает параметры с помощью функции getParameter, обычно ее вызов размещают в функции инициализации:

import java.applet.*;
import java.awt.*;

public class Star extends Applet
{
String col;
public void init()
{
col=getParameter("color");
}
public void paint(Graphics g)
{
if (col.equals("black on red"))
{
g.setColor(Color.black);
setBackground(Color.red);
}
else if (col.equals("red on black"))
{
g.setColor(Color.red);
setBackground(Color.black);
}
else
{
g.setColor(Color.blue);
}
int pointX[]={100, 180, 10, 190, 30};
int pointY[]={10, 180, 30, 70, 190};

g.fillPolygon(pointX, pointY, pointX.length);
}
}

Запомните, что функция getParameter возвращает значение типа String. Если нужно получить числовые значения, придется выполнить преобразование, как в следующем примере.
В следующем примере из HTML-страницы в апплет Star2.class передаются 3 целых числа - интенсивность красной, зеленой и синей компонент цвета (от 0 до 255)

<html><head></head>
<body bgcolor=Black bottommargin=0 leftmargin=0 topmargin=0 rightmargin=0>
<APPLET CODE=Star2 WIDTH=220 HEIGHT=220>
<PARAM name=red value=0>
<PARAM name=green value=200>
<PARAM name=blue value=150></APPLET>
</body></html>

Сам апплет выглядит следующим образом:

import java.applet.*;
import java.awt.*;

public class Star2 extends Applet
{
int r,g,b;
public void init()
{
r=Integer.parseInt(getParameter("red"));
g=Integer.parseInt(getParameter("green"));
b=Integer.parseInt(getParameter("blue"));
}
public void paint(Graphics gr)
{
gr.setColor(new Color(r,g,b));

int pointX[]={100, 180, 10, 190, 30};
int pointY[]={10, 180, 30, 70, 190};

gr.fillPolygon(pointX, pointY, pointX.length);
}
}

Обратите внимание, что строковые значения параметров с помощью статической функции parseInt класса Integer преобразуются в целые числа.
Еще более громоздко выглядит преобразование параметра в число с плавающей точкой. Предположим, мы имеем переменную xmin типа double и параметр xMin.

 

Математический анализ, лекции по физике Компьютерные сети