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

มรดกเป็นรากฐานที่สำคัญของเทคโนโลยีการเขียนโปรแกรม Java object-oriented เพราะมันช่วยให้การสร้างการเรียนระดับลำดับชั้น มรดกสามารถเข้าใจได้เป็นวัตถุที่จะได้รับคุณสมบัติจากวัตถุของกระบวนการอื่น

หากผู้ปกครองชั้นเป็นระดับชั้น B, คลาส B และ C ชั้นเป็นระดับผู้ปกครองและเรายังโทร C เป็น subclass ของ A, Class C จากชั้นเรียนคือการสืบทอด ใน Java ชั้นมรดกมรดกเดียวที่เป็นคลาสย่อยสามารถมีได้เพียงหนึ่งระดับผู้ปกครอง

สองใช้กันมากที่สุดคำหลักที่เป็นมรดกและขยายการดำเนินการ

ทั้งในการใช้คำหลักและตรวจสอบว่าวัตถุเป็นวัตถุก็คือ-A (ก) ความสัมพันธ์

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

ทั้งหมดเรียน Java ได้รับมาโดยชั้น java.lang.Object ดังนั้นวัตถุชั้นเป็นบรรพบุรุษของคนทุกชนชั้นและในวัตถุนอกจากนี้ทุกชั้นจะต้องมีระดับผู้ปกครอง

โดยมากกว่าขยายคำหลักที่สามารถประกาศสืบทอดชั้นจากชั้นเรียนอีกรูปแบบทั่วไปเป็นดังนี้:

// A.java
public class A {
    private int i;
    protected int j;
 
    public void func() {
 
    }
}
 
// B.java
public class B extends A {
}

ดังกล่าวข้างต้นแสดงให้เห็นว่าข้อมูลโค้ดรหัส, B สืบทอดจาก A, B เป็น subclass ของ A. และ A เป็น subclass ของวัตถุที่มีอาจจะไม่ได้ประกาศอย่างชัดเจน

เป็นตัวอย่างซับคลาส B ของมีทั้งหมดตัวแปรสมาชิก แต่สำหรับสมาชิกของตัวแปร B ส่วนตัว แต่ไม่สามารถเข้าถึงซึ่งรับประกันการห่อหุ้มของ A


IS-ความสัมพันธ์

ที่เป็น-A: วัตถุคือการจัดหมวดหมู่วัตถุอื่น

นี่เป็นคำสำคัญขยายการดำเนินการรับมรดก

public class Animal{
}

public class Mammal extends Animal{
}

public class Reptile extends Animal{
}

public class Dog extends Mammal{
}

อ้างอิงจากตัวอย่างข้างต้นคำสั่งต่อไปนี้เป็นจริง:

  • ชั้นสัตว์เป็นผู้ปกครองระดับชั้นเลี้ยงลูกด้วยนม
  • ชั้นสัตว์เป็นผู้ปกครองระดับชั้นสัตว์เลื้อยคลาน
  • เลี้ยงลูกด้วยนมและสัตว์เลื้อยคลานระดับเป็น subclass ของชั้นสัตว์
  • ระดับสุนัขเป็นทั้ง subclass ของคลาสเลี้ยงลูกด้วยนมเป็น subclass ของชั้นสัตว์

วิเคราะห์ IS-ความสัมพันธ์ในตัวอย่างข้างต้นดังต่อไปนี้:

  • เลี้ยงลูกด้วยนม IS-สัตว์
  • สัตว์เลื้อยคลาน IS-สัตว์
  • สุนัข IS-เลี้ยงลูกด้วยนม

ดังนั้น: สุนัข IS-สัตว์

โดยใช้คำหลักขยาย subclasses สืบทอดทุกวิธีการเรียนผู้ปกครองและคุณสมบัติ แต่ไม่สามารถใช้วิธีการส่วนตัว (ส่วนตัว) และคุณสมบัติ

เราใช้ตัวดำเนินการ instanceof สามารถกำหนดเลี้ยงลูกด้วยนม IS-สัตว์

ตัวอย่าง

public class Dog extends Mammal{

   public static void main(String args[]){

      Animal a = new Animal();
      Mammal m = new Mammal();
      Dog d = new Dog();

      System.out.println(m instanceof Animal);
      System.out.println(d instanceof Mammal);
      System.out.println(d instanceof Animal);
   }
}

ตัวอย่างข้างต้นรวบรวมผลมีดังนี้

true
true
true

หลังจากที่แนะนำขยายคำหลักที่เราจะดูที่วิธีการใช้คำหลักที่ดำเนินการเพื่อระบุ IS-ความสัมพันธ์

คำหลักในการดำเนินการในกรณีของอินเตอร์เฟซชั้นมรดกสถานการณ์เช่นนี้ไม่สามารถใช้คำขยาย

ตัวอย่าง

public interface Animal {}

public class Mammal implements Animal{
}

public class Dog extends Mammal{
}

คำหลัก instanceof

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

interface Animal{}

class Mammal implements Animal{}

public class Dog extends Mammal{
   public static void main(String args[]){

      Mammal m = new Mammal();
      Dog d = new Dog();

      System.out.println(m instanceof Animal);
      System.out.println(d instanceof Mammal);
      System.out.println(d instanceof Animal);
   }
} 

ตัวอย่างข้างต้นรวบรวมผลมีดังนี้

true
true
true

HAS-ความสัมพันธ์

HAS-A ความร่วมมือในนามของชั้นเรียนและสมาชิก นี้จะช่วยให้เพื่อนำมาใช้รหัสและลดข้อผิดพลาดรหัส

ตัวอย่าง

public class Vehicle{}
public class Speed{}
public class Van extends Vehicle{
	private Speed sp;
} 

รถตู้ชั้นและชั้นความเร็วเป็น HAS-ความสัมพันธ์ (Van มีความเร็ว) ดังนั้นคุณจะไม่ได้มีโค้ดทั้งหมดจะถูกวางลงไปในระดับความเร็วรถตู้ในชั้นเรียนและระดับความเร็วอาจนำกลับมาใช้ในการใช้งานหลาย ๆ

ในลักษณะเชิงวัตถุผู้ใช้ไม่จำเป็นต้องกังวลเกี่ยวกับวิธีการเรียนภายใน

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

Java สนับสนุนเฉพาะมรดกเดียวหมายความว่าชั้นไม่สามารถสืบทอดหลายชั้นเรียน

การปฏิบัติดังต่อไปนี้ไม่ได้ตามกฎหมาย:

public class extends Animal, Mammal{} 

Java สนับสนุนเฉพาะมรดกเดียว (มรดกและชั้นฐานนามธรรม) แต่เราสามารถใช้อินเตอร์เฟซในการดำเนินการ (การเชื่อมต่อหลายมรดกเพื่อให้บรรลุ) โครงสร้างสคริปต์เช่น:

public class Apple extends Fruit implements Fruit1, Fruit2{}

โดยทั่วไปเราจะรับช่วงชั้นฐานและระดับนามธรรมกับขยายคำหลักที่ดำเนินการติดต่อกับมรดกการดำเนินการระดับคำหลัก