Latest web development tutorials
×

Java หลักสูตร

Java หลักสูตร Java แนะนำโดยย่อ Java การกำหนดค่าการพัฒนาสภาพแวดล้อม Java พื้นฐานไวยากรณ์ Java วัตถุและการเรียน Java ชนิดข้อมูลพื้นฐาน Java ประเภทตัวแปร Java การปรับเปลี่ยน Java ผู้ประกอบการ Java โครงสร้างห่วง Java สาขาโครงสร้าง Java Number หมวดหมู่ Java Character หมวดหมู่ Java String หมวดหมู่ Java StringBuffer Java แถว Java วันที่เวลา Java นิพจน์ปกติ Java ทาง Java Stream,File,IO Java Scanner หมวดหมู่ Java การจัดการข้อยกเว้น

Java เชิงวัตถุ

Java สืบทอด Java Override/Overload Java polymorphism Java ระดับนามธรรม Java บรรจุภัณฑ์ Java อินเตอร์เฟซ Java บรรจุภัณฑ์

Java การสอนที่ทันสมัย

Java โครงสร้างข้อมูล Java คอลเลกชันกรอบ Java ยาชื่อสามัญ Java การทำให้เป็นอันดับ Java เขียนโปรแกรมเครือข่าย Java ส่ง Email Java การเขียนโปรแกรมแบบมัลติเธรด Java Appletรากฐาน Java เอกสารความคิดเห็น Java ตัวอย่าง Java 8 คุณสมบัติใหม่ Java MySQL สัมพันธ์

แพคเกจ Java (package)

เพื่อที่จะให้การจัดชั้นเรียน Java ให้กลไกการแพคเกจสำหรับความแตกต่างระหว่างชื่อชั้นของ namespace ที่

บทบาทของแพคเกจ

  • ฟังก์ชั่นที่คล้ายกันหรือองค์กรที่เกี่ยวข้องของชั้นเรียนหรืออินเตอร์เฟซในแพคเกจเดียวกันในการค้นหาและง่ายต่อการใช้คลาส
  • 2 เป็นโฟลเดอร์เดียวกันแพคเกจยังใช้ต้นไม้ไดเรกทอรีการจัดเก็บข้อมูล ชั้นเรียนในชื่อแพคเกจเดียวกันที่แตกต่างกันชื่อแพ็กเกจที่แตกต่างกันของชั้นเหมือนกันขณะเดียวกันเรียกร้องให้ทั้งสองประเภทที่แตกต่างกันของแพคเกจในชื่อชั้นเดียวกันชื่อแพคเกจควรจะเพิ่มความแตกต่าง ดังนั้นชื่อแพคเกจที่จะหลีกเลี่ยงความขัดแย้ง
  • 3 แพคเกจยังกำหนดสิทธิการเข้าถึงการเรียนมีการเข้าถึงแพคเกจในการเข้าถึงแพคเกจของการเรียน

Java ใช้แพคเกจ (package) กลไกนี้ถูกออกแบบมาเพื่อป้องกันไม่ให้เกิดความขัดแย้งการตั้งชื่อ, การควบคุมการเข้าถึงการให้บริการค้นหาและค้นหาชั้น (ชั้น), อินเตอร์เฟซ, enumerations (enumerations) และความคิดเห็น (บันทึกย่อ) และไม่ชอบ

แพคเกจไวยากรณ์คำสั่งคือ:

package pkg1[.pkg2[.pkg3…]];

ตัวอย่างเช่นไฟล์ Something.java เนื้อหา

package net.java.util
public class Something{
   ...
}

แล้วมันควรจะเป็นเส้นทางสุทธิ / java / util / Something.java ที่บันทึกไว้เพื่อให้ แพคเกจ (package) บทบาทในการจำแนกโปรแกรม Java ที่แตกต่างกันที่เก็บไว้ได้ง่ายขึ้นจะเรียกว่าโดยโปรแกรม Java อื่น ๆ

แพคเกจ (package) สามารถกำหนดเป็นชุดของประเภท (เรียนอินเตอร์เฟซ enumerations และคำอธิบายประกอบ) ที่เชื่อมต่อกันเพื่อให้การป้องกันการเข้าถึงและการจัดการ namespace ฟังก์ชั่นสำหรับประเภทนี้

นี่คือบางส่วนของ Java ในแพคเกจ:

  • java.lang- บรรจุชั้นฐาน
  • ฟังก์ชั่น Java.io- มีฟังก์ชันอินพุตและเอาต์พุต

นักพัฒนาสามารถใส่ชุดของตัวเองเรียนและอินเตอร์เฟซที่บรรจุและกำหนดแพคเกจของคุณเอง และในการพัฒนาที่เกิดขึ้นจริงคือการได้รับการส่งเสริมให้ทำเช่นนั้นเมื่อคุณเสร็จสิ้นระดับการดำเนินการจัดกลุ่มการเรียนที่เกี่ยวข้องเพื่อให้การเขียนโปรแกรมอื่น ๆ ได้ง่ายขึ้นสามารถตรวจสอบที่ชั้นเรียนอินเตอร์เฟซ enumerations และความคิดเห็นที่เกี่ยวข้อง .

เนื่องจากแพ็กเกจสร้าง namespace ใหม่ (namespace) ดังนั้นการตั้งชื่อโดยไม่เกิดความขัดแย้งกับชื่อแพคเกจอื่น ๆ ใช้กลไกการแพคเกจนี้ง่ายต่อการใช้การควบคุมการเข้าถึงและให้หาระดับที่เกี่ยวข้องได้ง่ายขึ้น


สร้างแพคเกจ

สร้างแพคเกจที่คุณจำเป็นต้องใช้ชื่อที่เหมาะสมสำหรับแพคเกจนี้ แล้วถ้าไฟล์ต้นฉบับที่มีชั้นเรียนอื่น ๆ ที่นำเสนอแพคเกจอินเตอร์เฟซหรือคำอธิบายประกอบ enum ประเภทนี้แพคเกจการประกาศนี้จะต้องวางไว้ที่จุดเริ่มต้นของแฟ้มแหล่งที่มานี้

แพคเกจควรจะประกาศในบรรทัดแรกของไฟล์ที่มาสำหรับแฟ้มแหล่งที่มาแต่ละคนสามารถมีคำสั่งเพียงหนึ่งแพคเกจไฟล์แต่ละประเภทจะใช้กับมัน

หากคุณไม่ได้ใช้คำสั่งแพคเกจในแฟ้มแหล่งที่มาแล้วหนึ่งในชั้นเรียน, ฟังก์ชั่นการแจงนับความคิดเห็น ฯลฯ จะถูกวางไว้ในแพคเกจที่ไม่มีชื่อ (แพคเกจที่ไม่มีชื่อ) ใน

ตัวอย่าง

ลองดูตัวอย่างที่สร้างแพคเกจที่เรียกว่าสัตว์ที่ โดยทั่วไปใช้อักษรตัวพิมพ์เล็กเพื่อหลีกเลี่ยงการตั้งชื่อชั้นเรียนอินเตอร์เฟซและชื่อของความขัดแย้ง

เข้าร่วมกับสัตว์อินเตอร์เฟซแพคเกจ (Interface):

/* 文件名: Animal.java */
package animals;

interface Animal {
   public void eat();
   public void travel();
}

ถัดไปเพิ่มในแพ็กเกจเดิมที่ใช้อินเตอร์เฟซ:

package animals;

/* 文件名 : MammalInt.java */
public class MammalInt implements Animal{

   public void eat(){
      System.out.println("Mammal eats");
   }

   public void travel(){
      System.out.println("Mammal travels");
   } 

   public int noOfLegs(){
      return 0;
   }

   public static void main(String args[]){
      MammalInt m = new MammalInt();
      m.eat();
      m.travel();
   }
} 

จากนั้นรวบรวมทั้งสองไฟล์และใส่ไว้ในไดเรกทอรีย่อยชื่อสัตว์ ใช้คำสั่งต่อไปนี้ในการทำงาน:

$ mkdir animals
$ cp Animal.class  MammalInt.class animals
$ java animals/MammalInt
Mammal eats
Mammal travel

คำหลักที่นำเข้า

เพื่อให้สามารถใช้งานได้เป็นสมาชิกในแพคเกจที่เราต้องนำเข้าอย่างชัดเจนแพคเกจในโปรแกรม Java การใช้ "นำเข้า" คำสั่งให้ปฏิบัติหน้าที่นี้

ใน java งบนำเข้าแฟ้มแหล่งที่มาควรจะอยู่หลังจากคำสั่งแพคเกจเรียนที่กำหนดไว้ก่อนหน้านี้ทั้งหมดคุณไม่สามารถคุณยังสามารถมีหลายไวยากรณ์ที่เป็น:

import package1[.package2…].(classname|*);

ถ้าแพคเกจระดับที่คุณต้องการใช้แพคเกจนี้ในชั้นเรียนอื่นแล้วชื่อแพคเกจสามารถละเว้น

ตัวอย่าง

แพคเกจเงินเดือนต่อไปแล้วมีระดับของพนักงานแล้วเพิ่มระดับให้กับแพคเกจเงินเดือนบอส เมื่อเจ้านายของพนักงานระดับชั้นการอ้างอิงไม่สามารถใช้คำนำหน้ากรณีเงินเดือนระดับบอสดังต่อไปนี้

package payroll;

public class Boss
{
   public void payEmployee(Employee e)
   {
      e.mailCheck();
   }
}

เกิดอะไรขึ้นถ้าชั้นไม่ได้เป็นแพคเกจเงินเดือนบอสจะ? ระดับบอสต้องใช้วิธีใดวิธีหนึ่งดังต่อไปนี้เพื่ออ้างอิงชั้นเรียนอื่น ๆ ในแพคเกจ

ใช้ชื่อเต็มของคำอธิบายชั้นเรียนเช่น:

payroll.Employee

ด้วยการแนะนำของคำหลักที่นำเข้าให้ใช้สัญลักษณ์ "*"

import payroll.*;

ใช้คำแนะนำนำเข้าระดับพนักงาน

import payroll.Employee;

หมายเหตุ:

แฟ้มคลาสามารถมีจำนวนของการประกาศนำเข้าใด ๆ ประกาศนำเข้าจะต้องเป็นหลังจากคำสั่งแพคเกจก่อนการประกาศคลาส


โครงสร้างไดเรกทอรีแพคเกจ

ชั้นบนแพคเกจมีผลหลักที่สอง:

  • ชื่อแพคเกจจะกลายเป็นส่วนหนึ่งของชื่อชั้นที่เรากล่าวก่อนหน้านี้
  • ชื่อแพคเกจจะต้องตรงกับรหัสไบต์ที่สอดคล้องกันในการแข่งขันโครงสร้างไดเรกทอรีเดียวกัน

นี่เป็นวิธีที่ง่ายในการจัดการไฟล์ของคุณใน java:

เรียนอินเตอร์เฟซและประเภทอื่น ๆ ของรหัสที่มาในข้อความชื่อของไฟล์นี้เป็นชื่อของประเภทและขยาย .java ตัวอย่างเช่น:

// 文件名 :  Car.java

package vehicle;

public class Car {
   // 类实现  
}

ถัดไปไฟล์ที่มาในไดเรกทอรีชื่อไดเรกทอรีไปยังระดับที่สอดคล้องกันของแพคเกจของตัวเอง

....\vehicle\Car.java

ตอนนี้ชื่อชั้นที่ถูกต้องและเส้นทางจะมีลักษณะดังต่อไปนี้:

  • ชื่อคลาส -> vehicle.Car

  • ชื่อพา ธ -> รถ \ Car.java (ใน Windows)

โดยปกติแล้ว บริษัท จะใช้แบบฟอร์มกลับของชื่อโดเมนอินเทอร์เน็ตเป็นชื่อแพคเกจของตนตัวอย่างเช่น: โดเมนอินเทอร์เน็ตเป็น apple.com ทั้งหมดชื่อแพคเกจอยู่ในจุดเริ่มต้น com.apple ชื่อแต่ละแพคเกจที่สอดคล้องกับการเป็นส่วนหนึ่งของไดเรกทอรีย่อยที่

ตัวอย่างเช่น บริษัท มี com.apple.computers แพคเกจซึ่งมีแฟ้มแหล่งที่มารู้จักกัน Dell.java ที่สอดคล้องกันควรเป็นเช่นชุดต่อไปของไดเรกทอรีย่อย:

....\com\apple\computers\Dell.java

รวบรวมเวลาคอมไพเลอร์จะสร้างไฟล์ที่ส่งออกที่แตกต่างกันชื่อไฟล์ที่ส่งออกเป็นชื่อของประเภทนี้ถูกกำหนดไว้ในประเภทแพคเกจของแต่ละระดับอินเตอร์เฟซและเพิ่มเป็นคำต่อท้ายนามสกุล .class ตัวอย่างเช่น:

// 文件名: Dell.java

package com.apple.computers;
public class Dell{
      
}
class Ups{
      
}

ตอนนี้เราใช้ตัวเลือก -d เพื่อรวบรวมไฟล์ดังต่อไปนี้:

$javac -d . Dell.java

นี้จะสถานที่เช่นนี้เพื่อรวบรวมไฟล์:

.\com\apple\computers\Dell.class.\com\apple\computers\Ups.class

คุณสามารถชอบที่จะนำเข้าทั้งหมด \ COM \ Apple \ คอมพิวเตอร์ \ ระดับที่กำหนดไว้ในอินเตอร์เฟซ:

import com.apple.computers.*;

.class ไฟล์รวบรวมหลังและควรไฟล์ที่มา .java พวกเขาจะอยู่ในไดเรกทอรีควรสอดคล้องกับชื่อของแพคเกจ แต่เส้นทางที่ไม่จำเป็นต้องใช้ไฟล์ .class มีเส้นทางที่สอดคล้องเดียวกัน .java คุณสามารถจัดเรียงแหล่งที่มาและแยกชั้นไดเรกทอรี

<path-one>\sources\com\apple\computers\Dell.java
<path-two>\classes\com\apple\computers\Dell.class

ด้วยวิธีนี้คุณสามารถแบ่งปันไดเรกทอรีชั้นเรียนของคุณในการเขียนโปรแกรมอื่น ๆ มากกว่าการเปิดเผยแหล่งที่มาของพวกเขา ด้วยวิธีนี้ในการจัดการแหล่งที่มาและไฟล์ระดับสามารถให้คอมไพเลอร์และ Java เครื่องเสมือน (JVM) คุณสามารถค้นหาทุกประเภทที่ใช้ในโปรแกรม

แอบโซลูทคลาสเส้นทางไดเรกทอรีที่เรียกว่าเส้นทางการเรียน ตั้งอยู่ในระบบ CLASSPATH ตัวแปร คอมไพเลอร์และ Java เครื่องเสมือนโดยใช้ชื่อแพคเกจเพื่อเส้นทางการเรียนในภายหลังเส้นทางก่อสร้าง .class ไฟล์

<Path- สอง> \ Classes เป็นเส้นทางชั้นชื่อแพคเกจเป็น com.apple.computers และคอมไพเลอร์และ JVM จะอยู่ใน <เส้นทางสอง> \ Classes \ COM \ Apple \ compters พบไฟล์ .class

เส้นทางระดับอาจมีหลายเส้นทาง มีหลายเส้นทางที่ควรจะแยกออกจากตัวคั่น โดยค่าเริ่มต้นคอมไพเลอร์และ JVM พบไดเรกทอรีปัจจุบัน JAR ไฟล์ที่มีแพลตฟอร์ม Java ตามระดับที่เกี่ยวข้องเพื่อให้พวกเขาเริ่มต้นในไดเรกทอรีในเส้นทางชั้นเรียน


การตั้งค่าตัวแปรระบบ CLASSPATH

ใช้คำสั่งต่อไปนี้เพื่อแสดงตัวแปร CLASSPATH ปัจจุบัน:

  • แพลตฟอร์ม Windows (บรรทัดคำสั่ง DOS) -> C: \> ตั้ง CLASSPATH
  • ระบบปฏิบัติการยูนิกซ์ (บอร์นเปลือกใต้) ->% echo $ CLASSPATH
ลบเนื้อหาตัวแปร CLASSPATH ปัจจุบัน:
  • แพลตฟอร์ม Windows (บรรทัดคำสั่ง DOS) -> C: \> ตั้ง CLASSPATH =
  • ระบบปฏิบัติการยูนิกซ์ (บอร์นเปลือกใต้) ->% CLASSPATH ล้าง; CLASSPATH การส่งออก

การตั้งค่าตัวแปร CLASSPATH:

  • แพลตฟอร์ม Windows (บรรทัดคำสั่ง DOS) -> ชุด CLASSPATH = C: \ Users \ แจ็ค \ Java \ Classes
  • ระบบปฏิบัติการยูนิกซ์ (บอร์นเปลือกใต้) -> = / home / แจ็ค / java / คลาส% CLASSPATH; CLASSPATH การส่งออก