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

ในบทแรก ๆ เรามักจะใช้ในการ System.out.println () แล้วมันคืออะไร?

println () เป็นวิธีการ (Method) และระบบจะเป็นชั้นของระบบ (Class) ออกเป็นวัตถุออกมาตรฐาน (Object) การใช้คำสั่งนี้คือการเรียกระบบการเรียนระบบมาตรฐานการส่งออกวัตถุออกวิธี println ()

ดังนั้นสิ่งที่เป็นวิธีที่จะทำเช่นนั้น?

วิธี Java เป็นชุดของงบซึ่งร่วมกันดำเนินการฟังก์ชั่น

  • วิธีการคือการรวมกันที่ได้รับคำสั่งให้แก้ปัญหาการเรียนของขั้นตอนปัญหา
  • วิธีการรวมอยู่ในชั้นเรียนหรือวัตถุ
  • วิธีการที่ถูกสร้างขึ้นในโปรแกรมอื่น ๆ ที่อ้างถึง

วิธีการที่กำหนดไว้

โดยทั่วไปแล้วความหมายของวิธีการที่ประกอบไปด้วยไวยากรณ์ต่อไปนี้:

修饰符 返回值类型 方法名 (参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}

วิธีการรวมถึงส่วนหัวของวิธีการและวิธีการที่ร่างกาย นี่เป็นส่วนหนึ่งของกระบวนการ:

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

เช่น:

public static int age(int birthday){...}

คุณสามารถมีมากกว่าหนึ่งพารามิเตอร์:

static float interest(float principal, int year){...}

หมายเหตุ: ในภาษาอื่น ๆ บางวิธีหมายถึงกระบวนการและฟังก์ชั่น ประเภทผลตอบแทนที่ไม่เป็นโมฆะของค่าตอบแทนของฟังก์ชั่นเรียกว่าวิธีนั้นวิธีการส่งกลับค่าที่ส่งกลับจากประเภทที่เรียกว่ากระบวนการเป็นโมฆะ

ตัวอย่าง

วิธีการต่อไปนี้ประกอบด้วยสองตัวแปร num1 และ num2 ก็จะส่งกลับค่าสูงสุดของทั้งสองพารามิเตอร์เหล่านี้

/** 返回两个整型变量数据的较大值 */
public static int max(int num1, int num2) {
   int result;
   if (num1 > num2)
      result = num1;
   else
      result = num2;

   return result; 
}

วิธีการภาวนา

Java สนับสนุนทั้งสองวิธีที่จะเรียกวิธีการตามวิธีการว่าค่าผลตอบแทนในการเลือก

เมื่อโปรแกรมเรียกวิธีการโปรแกรมเพื่อควบคุมวิธีการที่เรียกว่า เมื่อคำสั่งกลับที่เรียกว่าวิธีการที่จะดำเนินการหรือจนกว่าร่างกายของวิธีการที่เมื่อปิดการควบคุมวงเล็บกลับไปยังโปรแกรม

เมื่อวิธีการส่งกลับค่าภาวนาวิธีการได้รับการปฏิบัติโดยทั่วไปเป็นค่า ตัวอย่างเช่น:

int larger = max(30, 40);

ถ้าค่าวิธีการส่งกลับเป็นโมฆะวิธีการเรียกจะต้องเป็นคำสั่ง ตัวอย่างเช่นวิธีการ println ผลตอบแทนที่เป็นโมฆะ สายต่อไปนี้เป็นคำสั่ง:

System.out.println("Welcome to Java!");

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการกำหนดวิธีการและวิธีการที่จะเรียกมันว่า:

public class TestMax {
   /** 主方法 */
   public static void main(String[] args) {
      int i = 5;
      int j = 2;
      int k = max(i, j);
      System.out.println("The maximum between " + i +
                    " and " + j + " is " + k);
   }

   /** 返回两个整数变量较大的值 */
   public static int max(int num1, int num2) {
      int result;
      if (num1 > num2)
         result = num1;
      else
         result = num2;

      return result; 
   }
}

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

The maximum between 5 and 2 is 5

โปรแกรมนี้มีวิธีการหลักและวิธีการสูงสุด วิธี JVM หลักถูกเรียกในนอกจากนี้หลักและวิธีการอื่น ๆ ไม่แตกต่างกัน

หัววิธีการหลักเป็นเช่นเดียวกับตัวอย่างที่แสดงมีการปรับเปลี่ยนของประชาชนและคงคุณค่าของชนิดกลับเป็นโมฆะชื่อเป็นวิธีการหลักในนอกจากมีสตริง [] พารามิเตอร์ชนิด String [] ที่อาร์กิวเมนต์เป็นอาร์เรย์ของสตริง


คีย์เวิร์ด void

ส่วนนี้จะอธิบายวิธีการประกาศและเรียกวิธีการเป็นโมฆะ

ตัวอย่างต่อไปนี้บอกวิธีการตั้งชื่อ printGrade และเรียกมันว่าการพิมพ์คะแนนที่ได้รับ

ตัวอย่าง

public class TestVoidMethod {

   public static void main(String[] args) {
      printGrade(78.5);
   }

   public static void printGrade(double score) {
      if (score >= 90.0) {
         System.out.println('A');
      }
      else if (score >= 80.0) {
         System.out.println('B');
      }
      else if (score >= 70.0) {
         System.out.println('C');
      }
      else if (score >= 60.0) {
         System.out.println('D');
      }
      else {
         System.out.println('F');
      }
   }
}

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

C

นี่คือวิธีการ printGrade เป็นวิธีการของประเภทเป็นโมฆะก็ไม่ได้ส่งกลับค่า

เรียกวิธีโมฆะจะต้องเป็นคำสั่ง ดังนั้นจึงเป็นวิธีการหลักของสายสามสายในรูปแบบของคำสั่ง เช่นเดียวกับคำสั่งใด ๆ ที่จบลงด้วยอัฒภาคเช่น


ผ่านพารามิเตอร์โดยค่า

เรียกวิธีการเมื่อคุณจำเป็นต้องให้พารามิเตอร์ที่คุณจะต้องให้รายการพารามิเตอร์ตามคำสั่งที่ระบุไว้

ยกตัวอย่างเช่นวิธีการต่อไปอย่างต่อเนื่องครั้ง N พิมพ์ข้อความ:

public static void nPrintln(String message, int n) {
  for (int i = 0; i < n; i++)
    System.out.println(message);
}

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงผลกระทบที่ผ่านค่า

โปรแกรมสร้างวิธีการที่จะใช้ในการแลกเปลี่ยนสองตัวแปร

public class TestPassByValue {

   public static void main(String[] args) {
      int num1 = 1;
      int num2 = 2;

      System.out.println("Before swap method, num1 is " +
                          num1 + " and num2 is " + num2);

      // 调用swap方法
      swap(num1, num2);
      System.out.println("After swap method, num1 is " +
                         num1 + " and num2 is " + num2);
   }
   /** 交换两个变量的方法 */
   public static void swap(int n1, int n2) {
      System.out.println("\tInside the swap method");
      System.out.println("\t\tBefore swapping n1 is " + n1
                           + " n2 is " + n2);
      // 交换 n1 与 n2的值
      int temp = n1;
      n1 = n2;
      n2 = temp;

      System.out.println("\t\tAfter swapping n1 is " + n1
                           + " n2 is " + n2);
   }
}

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

Before swap method, num1 is 1 and num2 is 2
        Inside the swap method
                Before swapping n1 is 1 n2 is 2
                After swapping n1 is 2 n2 is 1
After swap method, num1 is 1 and num2 is 2

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


วิธีการมากเกินไป

วิธีการใช้สูงสุดดังกล่าวข้างต้นจะใช้กับชนิดข้อมูล int แต่ถ้าคุณต้องการที่จะได้รับค่าสูงสุดของทั้งสองข้อมูลจุดลอยตัวพิมพ์มันได้หรือไม่

การแก้ปัญหาคือการสร้างพารามิเตอร์อื่นที่มีชื่อเดียวกัน แต่วิธีการที่แตกต่างกันดังแสดงในรหัสต่อไปนี้:

public static double max(double num1, double num2) {
  if (num1 > num2)
    return num1;
  else
    return num2;
}

ถ้าคุณเรียกวิธีการสูงสุดจะถูกส่งผ่านพารามิเตอร์ int วิธีการสูงสุดของตัวแปร int จะเรียก;

ถ้าผ่านพารามิเตอร์ชนิดสองประเภทของวิธีการประสบการณ์แม็กซ์คู่ที่เรียกว่านี้เรียกว่าวิธีการบรรทุกเกินพิกัด;

ว่าทั้งสองวิธีการเรียนมีชื่อเดียวกัน แต่มีรายการพารามิเตอร์ที่แตกต่างกัน

คอมไพเลอร์ Java ตามลายเซ็นวิธีในการกำหนดวิธีการที่ควรจะเรียกว่า

วิธีการบรรทุกเกินพิกัดสามารถทำให้โปรแกรมอ่านได้ชัดเจนมากขึ้น วิธีการดำเนินการอย่างใกล้ชิดเป็นงานที่เกี่ยวข้องควรใช้ชื่อเดียวกัน

วิธีการมากเกินไปจะต้องมีรายการพารามิเตอร์ที่แตกต่างกัน คุณก็ไม่สามารถตามประเภทที่แตกต่างกันของการปรับเปลี่ยนหรือกลับไปที่วิธีการมากเกินไป


ขอบเขตตัวแปร

ตัวแปรช่วงเป็นส่วนหนึ่งของโปรแกรมที่ตัวแปรสามารถอ้างอิง

ตัวแปรที่อยู่ในความหมายวิธีการที่เรียกว่าตัวแปรท้องถิ่น

ขอบเขตของการประกาศตัวแปรท้องถิ่นตั้งแต่เริ่มต้นจนถึงจุดสิ้นสุดของบล็อกที่มีมัน

ตัวแปรท้องถิ่นจะต้องประกาศก่อนที่พวกเขาสามารถนำมาใช้

วิธีการที่ครอบคลุมทั้งช่วงของวิธีการพารามิเตอร์ พารามิเตอร์เป็นจริงตัวแปรท้องถิ่น

ส่วนตัวแปรเริ่มต้นของคำสั่งห่วงขอบเขตของบทบาทในวงจร

แต่คำร่างกายห่วงตัวแปรเป็นคำสั่งของขอบเขตของมันจากไปยังจุดสิ้นสุดของวงที่ มันมีตัวแปรประกาศดังต่อไปนี้:

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

โดยใช้พารามิเตอร์บรรทัดคำสั่ง

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

อาร์กิวเมนต์บรรทัดคำสั่งตามด้วยข้อมูลเกี่ยวกับเวลาดำเนินการหลังจากที่ชื่อโปรแกรม

ตัวอย่าง

โปรแกรมต่อไปนี้พิมพ์อาร์กิวเมนต์บรรทัดคำสั่งทั้งหมด:

public class CommandLine {

   public static void main(String args[]){ 
      for(int i=0; i<args.length; i++){
         System.out.println("args[" + i + "]: " +
                                           args[i]);
      }
   }
}

ที่แสดงด้านล่างเรียกใช้โปรแกรม:

java CommandLine this is a command line 200 -100

ผลมีดังนี้

args[0]: this
args[1]: is
args[2]: a
args[3]: command
args[4]: line
args[5]: 200
args[6]: -100

นวกรรมิก

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

มักจะใช้สร้างอินสแตนซ์ชั้นเรียนค่าเริ่มต้นตัวแปรหรือทำตามขั้นตอนที่จำเป็นอื่น ๆ เพื่อสร้างวัตถุที่สมบูรณ์

หรือไม่ว่าคุณจะเป็นตัวสร้างที่กำหนดเองทุกชั้นมีคอนสตรัคเพราะ Java โดยอัตโนมัติให้สร้างเริ่มต้นซึ่งสมาชิกทุกคนจะเริ่มต้นที่จะเป็นศูนย์

เมื่อคุณได้กำหนดตัวสร้างของคุณเองสร้างเริ่มต้นจะล้มเหลว

ตัวอย่าง

นี่คือตัวอย่างของการใช้คอนสตรัคนี้:

// 一个简单的构造函数
class MyClass {
   int x;
   
   // 以下是构造函数
   MyClass() {
      x = 10;
   }
}

คุณสามารถโทรหาเหมือนตัวสร้างที่นี่เพื่อเริ่มวัตถุ:

public class ConsDemo {

   public static void main(String args[]) {
      MyClass t1 = new MyClass();
      MyClass t2 = new MyClass();
      System.out.println(t1.x + " " + t2.x);
   }
}

ส่วนใหญ่เวลาที่ต้องใช้พารามิเตอร์นวกรรมิก

ตัวอย่าง

นี่คือตัวอย่างของการใช้คอนสตรัคนี้:

// 一个简单的构造函数
class MyClass {
   int x;
   
   // 以下是构造函数
   MyClass(int i ) {
      x = i;
   }
}

คุณสามารถโทรหาเหมือนตัวสร้างที่นี่เพื่อเริ่มวัตถุ:

public class ConsDemo {

   public static void main(String args[]) {
      MyClass t1 = new MyClass( 10 );
      MyClass t2 = new MyClass( 20 );
      System.out.println(t1.x + " " + t2.x);
   }
}

ผลมีดังนี้

10 20

พารามิเตอร์ตัวแปร

ในฐานะของ JDK 1.5 สนับสนุน Java ผ่านประเภทเดียวกันของตัวแปรที่จะวิธีการ

ประกาศตัวแปรของวิธีการดังต่อไปนี้:

typeName... parameterName

ในคำสั่งวิธีการพิมพ์พารามิเตอร์ที่กำหนดไว้หลังจากที่เพิ่มจุดไข่ปลา ( ... )

วิธีสามารถระบุเพียงหนึ่งพารามิเตอร์ตัวแปรนั้นจะต้องเป็นวิธีที่พารามิเตอร์ที่ผ่านมา พารามิเตอร์ทั่วไปใด ๆ ที่จะต้องประกาศก่อนที่มันจะ

ตัวอย่าง

public class VarargsDemo {

   public static void main(String args[]) {
      // 调用可变参数的方法
	  printMax(34, 3, 3, 2, 56.5);
      printMax(new double[]{1, 2, 3});
   }

   public static void printMax( double... numbers) {
   if (numbers.length == 0) {
      System.out.println("No argument passed");
      return;
   }

   double result = numbers[0];

   for (int i = 1; i <  numbers.length; i++)
      if (numbers[i] >  result)
      result = numbers[i];
      System.out.println("The max value is " + result);
   }
}

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

The max value is 56.5
The max value is 3.0

จบ () วิธีการ

Java ช่วยให้คุณกำหนดวิธีการในการที่วัตถุถูกเรียกก่อน destructor เก็บขยะ (รีไซเคิล) วิธีการนี้เรียกว่าจบ () ซึ่งจะใช้ในการล้างวัตถุที่กู้คืน

ตัวอย่างเช่นคุณสามารถใช้จบ () เพื่อให้แน่ใจว่ามีการเปิดแฟ้มวัตถุถูกปิด

ในจบ () method, คุณต้องระบุการดำเนินการที่จะดำเนินการเมื่อวัตถุถูกทำลาย

จบ () เป็นรูปแบบทั่วไป:

protected void finalize()
{
   // 在这里终结代码
}

คำสำคัญที่ได้รับการคุ้มครองเป็นรอบคัดเลือกก็เพื่อให้แน่ใจว่าจบ () วิธีการไม่เคยเรียกรหัสนอกชั้นเรียน

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

ตัวอย่าง

public class FinalizationDemo {  
    public static void main(String[] args) {  
        Cake c1 = new Cake(1);  
        Cake c2 = new Cake(2);  
        Cake c3 = new Cake(3);  
          
        c2 = c3 = null;  
        System.gc(); //调用Java垃圾收集器
    }  
}  
  
class Cake extends Object {  
    private int id;  
    public Cake(int id) {  
        this.id = id;  
        System.out.println("Cake Object " + id + "is created");  
    }  
      
    protected void finalize() throws java.lang.Throwable {  
        super.finalize();  
        System.out.println("Cake Object " + id + "is disposed");  
    }  
}  

เรียกใช้โค้ดข้างต้นออกผลมีดังนี้:

C:\1>java FinalizationDemo  
Cake Object 1is created  
Cake Object 2is created  
Cake Object 3is created  
Cake Object 3is disposed  
Cake Object 2is disposed