1 / 15

06 – Java Packages

06 – Java Packages. Packages og ClassPath. Hvad er Packages ?. En package er en gruppering af relaterede typer. Packages giver mulighed for styring af tilgang (public, private…) og name spaces. Fordele ved packages. Det er let at se at klasser og interfaces hører sammen

konane
Download Presentation

06 – Java Packages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 06 – Java Packages Packages og ClassPath

  2. Hvad er Packages? En package er en gruppering af relaterede typer. Packages giver mulighed for styring af tilgang (public, private…) og namespaces

  3. Fordeleved packages Deter let at se at klasserog interfaces hørersammen F.eks hvilkenpakke med klasserog interfaces der giver mulighed for grafikprogrammering Navne på klasser og interfaces konflikter ikke med navne i andre pakker, fordi pakken er et ny namespace Der kan gives mulighed for at klasser i samme pakke kan se hinandens metoder og variable, mens klasser udenfor ikke kan.

  4. Opret en package Sæt packagekeyword med et navn ind først i filen Klasser, interfaces. enum , mv vil så tilhøre pakken Hvis der ikke angives en package, så vil typerne tilhøre en såkaldt unnamedpackage package SchoolClasses; public class StudentRecord { private String name; private String address; private int age; :

  5. Brug klasser fra andre pakker For at bruge en klasse eller interface i en anden pakke skal man: Importere klassen med import statement Importere hele pakken med import statement Referere til klassen med fuldt navn, dvspackagenavn.klassenavn Java importer default java.lang.* // Importing a class import java.util.Date; // Importing all classes in the java.utilpackage import java.util.*; // Fullqualifiedname java.util.Datex = new java.util.Date();

  6. Package & Directory struktur Pakker kan også indlejres. Men fysisk skal de ligge på samme måde. Dvs at et niveau svarer til en folder på disken package myowndir.myownsubdir.myownpackage; svarertil./myowndir/myownsubdir/myownpackage

  7. Håndteringaf source ogclassfiler En java-filRectangle.java: package graphics; public class Rectangle() { . . . } Gem source fileni et directory med sammenavnsompakken .....\graphics\Rectangle.java

  8. Directory struktur Filnavnskalværedetsammesom public class navn class filer lægges i en directory struktur, der svarer til pakken Eksempel: class name: graphics.Rectangle pathname to source file: graphics/Rectangle.java pathname to the class file: graphics/Rectangle.class

  9. Directory struktur java og classfilerbehøver ikke lægge sammen. Men under strukturen skal være den samme: <path_one>\sources\com\example\graphics\Rectangle.java <path_two>\classes\com\example\graphics\Rectangle.class .java og .class filer skalorganiseresså JVM kanfindedem

  10. Hvader et class path? Det er stien til de directories hvor .class filer er placeret Java runtime efter .class filer i den rækkefølge de specificereti class path

  11. Sæt CLASSPATH Antag at pakken schoolClasses ligger under C:\ Det er nødvendigt at sætte classpath til at pege på C:\ for at JVM kan finde .class filerne når programmet til at kører Hvis ikke ser det ud som på følgende side:

  12. SætCLASSPATH C:\schoolClasses>javac StudentRecord.java C:\schoolClasses>java StudentRecord Exception in thread "main" java.lang.NoClassDefFoundError: StudentRecord (wrong name: schoolClasses/StudentRecord) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source)

  13. Sæt CLASSPATH I Windows sættesclasspath med C:\schoolClasses> set classpath=%classpath%;C:\ antager at C:\ erderhvorpakkerneerplaceret, dvs. at klassenliggeripakkenschoolClassesis Efter at classpather sat kanprogrammetkøres med C:\schoolClasses> java schoolClasses.StudentRecord

  14. Sæt CLASSPATH I Unix baseredesystemer;Hvispakkenliggeri /usr/local/ skrives export classpath=/usr/local/

  15. SætCLASSPATH Hvis der specificeres mere end et directory adskilles med ; i Windows og : i Unix set classpath=C:\myClasses;D:\;E:\MyPrograms\Java exportclasspath=/usr/local/java:/usr/myClasses

More Related