Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
answers_1.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
912.38 Кб
Скачать
  1. Язык java. Пакеты и организация пространства имен.

http://ru.wikipedia.org/wiki/Package_%28Java%29

http://en.wikipedia.org/wiki/Java_package

http://ru.wikipedia.org/wiki/Пространство_имён_(программирование)#Java

http://www.codenet.ru/webmast/java/08.php

Package — механизм, позволяющий управлять пространством имен Java-программы.

Java packages can be stored in compressed files called JAR files, allowing classes to download faster as a group rather than one at a time. Programmers also typically use packages to organize classes belonging to the same category or providing similar functionality.

  • A package provides a unique namespace for the types it contains.

  • Classes in the same package can access each other's package-access members.

Классы, определенные без явно заданных модификаторов доступа (public, protected, private), видимы только внутри пакета. Допустимы вложенные пакеты.

  • Class

    Package

    Subclass

    World

    private

    Y

     —

     —

    (без)

    Y

    Y

     —

    protected

    Y

    Y

    Y

    public

    Y

    Y

    Y

    Y

    private — доступ только внутри класса (наиболее рекомендуемый)
  • (без модификатора) — только внутри пакета (по умолчанию)

  • protected — межпакетный доступ только для sub-class

  • public — межпакетный доступ (наименее рекомендуемый)

Core packages in Java SE 6

java.lang

— basic language functionality and fundamental types

java.util

— collection data structure classes

java.io

— file operations

java.math

— multiprecision arithmetics

java.nio

— the New I/O framework for Java

java.net

— networking operations, sockets, DNS lookups, ...

java.security

— key generation, encryption and decryption

java.sql

— Java Database Connectivity (JDBC) to access databases

java.awt

— basic hierarchy of packages for native GUI components

javax.swing

— hierarchy of packages for platform-independent rich GUI components

java.applet

— classes for creating and implementing applets

Идея пространств имён воплощена в Java-пакетах. Весь код определён внутри пакета, причём этот пакет не нуждается в явно заданном имени. Код из других пакетов доступен при префиксном указании имени пакета перед соответствующим идентификатором, например class String в package java.lang может быть вызван как java.lang.String (данный способ известен как полное имя класса). Как и в C++, Java предлагает конструкцию, делающую необязательным указание имя пакета (import). Тем не менее, некоторые особенности (как, например, отражение (рефлексия, самомодифицирующаяся программа)) требуют от программиста использования полного имени.

В отличие от C++, пространства имён в Java не являются иерархически упорядоченными из-за синтаксиса самого языка. Тем не менее, пакеты именуются в иерархическом стиле. Например, все пакеты, начинающиеся с java, являются частью платформы Java — пакет java.lang содержит базовые классы языка, а java.lang.reflect содержит базовые классы, специфичные для отражения (рефлексии).

В языке Java (также как и в Ада, C# и других языках) пространства имён/пакеты отражают семантические категории кода. Например, в C# namespace System содержит код, реализуемой системой (платформа .NET). Как именно определяются эти категории и какова глубина иерархии — зависит от самого языка.

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