Jelenlegi hely

17. Csomagok

A típusok könnyebb megtalálásához és használatához, névütközések elkerüléséhez és az elérés szabályozásához a programozók egybe csomagolhatják az összetartozó típusaikat csomagokká.

Definíció: A csomag összetartozó típusok gyűjteménye.

A Java platform típusai funkciók szerint különböző csomagokba vannak szervezve: az alapvető osztályok a java.lang csomagban, az I/O osztályok a java.io-ban, és így tovább. Ezen kívül a saját típusainkat is tehetjük csomagokba.

A következő osztályokat megvizsgálva látszik, hogy közös csomagba érdemes őket sorolni, mivel grafikus objektumok csoportjába tartoznak a körök, téglalapok, vonalak és pontok. Ha írunk egy Draggable interfészt, az azt megvalósító osztályok lehetővé teszik a vonszolást is.

//in the Graphic.java file
public abstract class Graphic {
    . . .
}
//in the Circle.java file
public class Circle extends Graphic implements Draggable {
    . . .
}
//in the Rectangle.java file
public class Rectangle extends Graphic implements Draggable {
    . . .
}
//in the Draggable.java file
public interface Draggable {
    . . .
}

A következő okok miatt érdemes az osztályokat és interfészeket közös csomagba helyezni:

  • Más programozók számára is látszik, hogy kapcsolódó típusokról van szó.
  • Más programozók is láthatják, hol kell keresni a grafikához kapcsolódó osztályokat.
  • A típusaink nevei nem kerülnek összeütközésbe más csomagok neveivel, mert a csomagok önálló névtereket hoznak létre.
  • A típusaink korlátlanul láthatják egymást, de egyéb típusok csak korlátozottan férhetnek a
    típusokhoz.