1. Paket

Program Jawa biasa nyakup kelas sing akeh banget. Wonten pinten? Ewon, puluhan ewu. Lan yen sampeyan uga nyatakake kasunyatan manawa program kasebut nggunakake macem-macem perpustakaan sing ngemot kelas sing ditulis dening programer liyane, mula jumlah kelas bisa diukur kanthi gampang jutaan!

Iku bakal kabeh nanging mokal kanggo teka munggah karo jeneng unik kanggo kabeh yuta iki, utawa malah mung ewu, saka kelas.

Mesthi, kita bisa mbayangno jeneng kaya A123lan B345, nanging yen kita ngomong babagan milih jeneng kelas sing apik, sing luwih gampang kanggo mangerteni kelas kasebut (kaya Stringkanggo strings, contone), banjur malah ngasilake sewu jeneng unik akeh banget. saka karya.

Pramila ing Jawa lumrahe ngelompokake kelas dadi paket nggunakake tembung kunci paket.

Kelas Java lan pakete meh padha karo file lan folder ing komputer.

Contone, yen sampeyan kudu nyimpen 10 dokumen ing komputer, sampeyan bisa uga mung nyimpen ing siji folder. Nanging kepiye yen sampeyan duwe ewonan dokumen (contone, gudang kabeh dokumen perusahaan)?

Kanthi ewonan dokumen sing bakal disimpen, siji solusi yaiku nggawe macem-macem level folder kanthi jeneng deskriptif sing apik. Banjur ing folder ing tingkat paling pungkasan, simpen dokumen sing ana hubungane karo folder kasebut. Jeneng deskriptif sing apik kanggo dokumen kasebut uga ora nglarani.

Nyatane, kabeh iki kita lakoni kanggo kelas ing basa Jawa.

File sing ngemot kelas disimpen ing direktori beda (folder), lan jeneng lengkap folder kelas karo kabeh subfolder iku jeneng paket. Tuladha:

Path menyang file Jeneng paket Jeneng kelas
\com\codegym\tasks\Solution.java
com.codegym.tasks
Solution
\com\io\FileInputStream.java
com.io
FileInputStream
\java\util\ArrayList.java
java.util
ArrayList

Ora kaya jeneng folder, jeneng paket nggunakake titik minangka pembatas. Ing tembung liya, folder kasebut \com\codegym\tasks\cocog karo com.codegym.taskspaket kasebut.


2. srcfolder

Ing Jawa, umume nyimpen kabeh kelas kanggo program ing siji folder (lan subfolder). Folder iki biasane diarani src(singkatan saka sumber ).

Folder iki diarani root proyek (utawa root sumber ), lan kabeh jalur paket ana hubungane karo. Tuladha:

Folder Jeneng paket
c:\projects\data\my\src\com\codegym\tasks\
com.codegym.tasks
d:\files\git\data\project\src\com\codegym\tasks\
com.codegym.tasks

Ing kahanan iki, programer ngomong kaya "kita duwe proyek sing jenenge my, sing ana ing c:\projects\datafolder" utawa "kita duwe proyek sing jenenge project, sing ana ing d:\files\git\datafolder kasebut"

Iku paling apik kanggo tansah sijine kelas ing paket lan ora langsung ing folder ROOT ( src. Yen sampeyan duwe mung sawetara kelas, iki ora masalah. Nanging nalika ana akeh kelas, iku gampang banget kanggo bingung. Dadi. , tansah nggawe kelas mung ing paket.

Ing Jawa, wis biasa menehi jeneng sing migunani kanggo kelas lan paket. Akeh perusahaan ngeculake perpustakaan dhewe (sakumpulan kelas) lan, supaya ora kebingungan, dheweke nggabungake jeneng perusahaan / situs web / proyek menyang jeneng paket kasebut:

Jeneng paket Jeneng perusahaan/proyek
org.apache.common
org.apache.tomcat
org.apache.util
Proyek Apache
com.oracle.jdbc
perusahaan Oracle
java.io
javax.servlet
Perusahaan Oracle, proyek Java
com.ibm.websphere
Perusahaan IBM, proyek WebSphere
com.jboss
proyek JBoss

3. Isi berkas

Miturut standar basa Jawa, informasi babagan jeneng kelas lan jeneng paket kasebut kudu dilebokake ing file kanthi kode kasebut. Bentuk umum ditampilake ing ngisor iki:

package package-name;

public class ClassName
{

}

Jeneng paket kudu cocog karo jeneng folder, lan jeneng berkas kudu cocog karo jeneng kelas umum.

Yen sampeyan duwe file, mula kudu ngemot iki:...\src\com\project\Service.java

package com.project;

public class Service
{

}

4. ngimpor kelas

Jeneng kelas lan jeneng paket mbentuk apa sing diarani jeneng kelas sing mumpuni .

Tuladha:

Jeneng kanthi lengkap Jeneng paket Jeneng kelas
java.io.FileInputStream
java.io
FileInputStream
java.lang.String
java.lang
String
java.util.ArrayList
java.util
ArrayList
org.apache.tomcat.Servlet
org.apache.tomcat
Servlet
Cat
ora ana
Cat

Kabar apik:

Jeneng kelas sing nduweni kualifikasi tansah unik ing sawijining proyek. Sawise kabeh, sampeyan ora bisa nggawe rong file kanthi jeneng sing padha ing folder siji.

Kabar ala:

Jeneng kelas sing mumpuni biasane dawa utawa dawa banget. Lan nulis metu jeneng dawa (contone java.util.ArrayList) saben-saben ing kode super nyenengake.

Mulane Jawa nambahake kemampuan kanggo ngimpor kelas .

Sampeyan bisa nggunakake jeneng singkat kelas ing kode, nanging sampeyan kudu menehi ngerti compiler pisanan jeneng kelas qualified sing cocog karo jeneng singkat . Apa yen sampeyan saiki akeh kelas kanthi jeneng sing padha ing proyek sampeyan? Utawa sampeyan asline duwe siji, nanging banjur ditambahake 15 liyane ...

Kanggo nggunakake jeneng kelas cendhak ing kode sampeyan, sampeyan kudu nambah konstruksi ing ngisor iki:

import fully-qualified-class-name;

Pranyatan iki kudu ditambahake ing wiwitan kelas, langsung sawise packagedeklarasi.

Tuladha:

package com.codegym.tasks.task01;

import java.util.Scanner;
import com.test.helper.special.ArrayList;

public class Solution
{
   public static void main(String[] args)
   {
     Scanner console = new Scanner(System.in);
     ArrayList list = new ArrayList();
   }
}

Kita ngimpor rong kelas ( java.util.Scannerlan com.test.helper.special.ArrayList), supaya kita bisa nggunakake jeneng singkat ing kode kita. Lan compiler bakal ngerti kelas sing digunakake.

Lan iki bakal katon kaya kode sing padha yen ora digunakake import:

package com.codegym.tasks.task01;

public class Solution
{
   public static void main(String[] args)
   {
     java.util.Scanner console = new java.util.Scanner(System.in);
     com.test.helper.special.ArrayList list = new com.test.helper.special.ArrayList();
   }
}

Contone, yen proyek sampeyan duwe rong kelas sing jenenge Scanner, sampeyan ora bakal bisa ngimpor loro-lorone menyang file sing padha: sampeyan kudu nggunakake jeneng sing dawa kanggo salah sijine.

Ayo dadi ngomong sampeyan duwe Jen ing tim. Ora ana masalah komunikasi, amarga kabeh wong ngerti sapa dheweke. Nanging yen ana telung Jens, banjur jeneng sing mumpuni kudu digunakake kanggo mbedakake.

Cathetan 1

Oalah, yen sampeyan kesed nambahake akeh pernyataan impor menyang kelas sampeyan, sampeyan bisa nggunakake versi kesed: tinimbang jeneng kelas tartamtu, wenehana tanda bintang:

import package-name.*;

Sing bakal ngidini sampeyan nggunakake jeneng singkat kabeh kelas ing paket kasebut.

Cathetan 2

Kabeh kelas ing java.langpaket diimpor kanthi otomatis, dadi sampeyan ora perlu nulis importstatement kanggo wong-wong mau. Sampeyan mesthi wis ngerti salah siji saka kelas iki: java.lang.String. Pancen bener. Iki minangka Stringkelas sing wis digunakake kanggo nggarap senar.