Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer.

Lignende præsentationer


Præsentationer af emnet: "06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer."— Præsentationens transcript:

1 06 – Java Packages Packages og ClassPath

2 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer. Packages giver mulighed for styring af tilgang (public, private…) og name spaces

3 3 NOEA2009Java-kursus – Packages og class path Fordele ved packages Det er let at se at klasser og interfaces hører sammen F.eks hvilken pakke med klasser og interfaces der giver mulighed for grafik programmering 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 4 NOEA2009Java-kursus – Packages og class path Opret en package Sæt package keyword 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 unnamed package package SchoolClasses; public class StudentRecord { private String name; private String address; private intage; :

5 5 NOEA2009Java-kursus – Packages og class path 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, dvs packagenavn.klassenavn Java importer default java.lang.* // Importing a class import java.util.Date; // Importing all classes in the java.util package import java.util.*; // Full qualified name java.util.Date x = new java.util.Date();

6 6 NOEA2009Java-kursus – Packages og class path 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; svarer til./myowndir/myownsubdir/myownpackage

7 7 NOEA2009Java-kursus – Packages og class path Håndtering af source og classfiler En java-fil Rectangle.java: package graphics; public class Rectangle() {... } Gem source filen i et directory med samme navn som pakken .....\graphics\Rectangle.java

8 8 NOEA2009Java-kursus – Packages og class path Directory struktur Filnavn skal være det samme som 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 9 NOEA2009Java-kursus – Packages og class path Directory struktur java og class filerbehøver ikke lægge sammen. Men under strukturen skal være den samme: \sources\com\example\graphics\Rectangle.java \classes\com\example\graphics\Rectangle.class.java og.class filer skal organiseres så JVM kan finde dem

10 10 NOEA2009Java-kursus – Packages og class path Hvad er 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 specificeret i class path

11 11 NOEA2009Java-kursus – Packages og class path 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 12 NOEA2009Java-kursus – Packages og class path Sæt CLASSPATH 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 13 NOEA2009Java-kursus – Packages og class path Sæt CLASSPATH I Windows sættes classpath med C:\schoolClasses> set classpath=%classpath%;C:\  antager at C:\ er der hvor pakkerne er placeret, dvs. at klassen ligger i pakken schoolClassesis Efter at classpath er sat kan programmet køres med C:\schoolClasses> java schoolClasses.StudentRecord

14 14 NOEA2009Java-kursus – Packages og class path Sæt CLASSPATH I Unix baserede systemer; Hvis pakken ligger i /usr/local/ skrives export classpath=/usr/local/

15 15 NOEA2009Java-kursus – Packages og class path Sæt CLASSPATH Hvis der specificeres mere end et directory adskilles med ; i Windows og : i Unix set classpath=C:\myClasses;D:\;E:\MyPrograms\Java export classpath=/usr/local/java:/usr/myClasses


Download ppt "06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer."

Lignende præsentationer


Annoncer fra Google