public class SphereTest
{
public static void main (String[] args)
{
System.out.println (“Number of object=” + Sphere.getCount());
Sphere myBall = new Sphere (4.0, 0.0, 0.0, 0.0);
System.out.println (“Number=” + myBall.getCount ());
Sphere globe = new Sphere (12.0, 1.0, 1.0, 1.0)
System.out.println (“Number=” + Sphere.getCount ());
System.out.println (“myBall volume=” + myBall. volume ());
System.out.println (“globe volume” + globe.volume ());
Добавим в Sphere второй конструктор по умолчанию: noArgs.
Sphere ()
{
xCenter = 0.0;
yCenter = 0.0;
zCenter = 0.0;
radius = 1.0;
++ count;
}
Теперь можно в SphereTest добавить:
Sphere addBall = new Sphere ();
System.out.println (“addBall volume=” +addBall.volume));
System.out.println (“Number=”+Sphere.getCount());
System.out.println (“Volume [R=2.0]=” +
newSphere (0.0, 0.0, 0.0, 2.0).volume());
Синтаксис: new myClass.f ().
Тема 6
Управление доступом
Спецификаторы доступа указывают, что доступно программисту – клиенту (пользователю класса), а что нет (public, protected, пакетный, private). Классы связываются в библиотеку с помощью пакета (package) и права доступа зависят от того, в одном или разных пакетах находятся классы.
Пакет как библиотечный модуль
Пакет – именованная совокупность классов.
Цель – разделить пространство имен.
|
|
Имена классов, которые находятся в пакете, содержат имя пакета.
Например, пакет java.util. В нем класс Array List. Его полное имя java.util.ArrayList
java.util.ArrayList list = new java.util.ArrayList ();
Можно указать класс в директиве import
import java.util.ArrayList;
Тогда new ArrayList();
Можно импортировать все классы пакета: import java.util.*;
Файл с исходным текстом (*.java).
В нем может быть один public – класс с тем же именем. После компиляции получаем файлы *.class. То есть рабочая программа – совокупность файлов *.class. Они объединяются в пакет и могут сжиматься в JAR -архив (*.jar).
Название пакета -может быть несколько слов через точку: access.mypackage;
Тогда package access.mypackage;
public class MyClass {}
Запуск java access.mypackage.Myclass
Тогда для использования MyClass нужно указать его полное имя или import
access.mypackage.MyClass m = new access.mypackage.MyClass();
или
import access.mypackage.*
…
MyClass m = new MyClass();