Java เป็นภาษาเชิงวัตถุโดยสมบูรณ์ Java ตระหนักถึงแนวคิดของ "ข้ามแพลตฟอร์ม" ผ่านกลไกการทำงานของเครื่องเสมือน ที่นี่ฉันต้องการนำเสนอบทช่วยสอนที่เหมาะสำหรับผู้เริ่มต้นซึ่งฉันหวังว่าจะเป็นประโยชน์กับทุกคน
"สวัสดีชาวโลก!"
มาดูโปรแกรม HelloWorld.java กันก่อน โปรแกรมนี้พิมพ์สตริงอักขระ "Hello World!" บนหน้าจอ:
คัดลอกรหัสรหัสดังต่อไปนี้:
HelloWorld คลาสสาธารณะ
-
โมฆะสาธารณะคง main (String [] args)
-
System.out.println("สวัสดีชาวโลก!");
-
-
โปรแกรมนี้มีคุณสมบัติพื้นฐานบางประการของ Java:
1. คลาส: โปรแกรมด้านบนกำหนดคลาส HelloWorld และชื่อของคลาสจะเหมือนกับชื่อของไฟล์ .java
2. วิธีการ: วิธีการหลักของชั้นเรียนถูกกำหนดไว้ภายในชั้นเรียน
3. คำชี้แจง: ฟังก์ชัน "การพิมพ์" ที่แท้จริงถูกนำมาใช้โดยคำสั่ง ได้แก่: System.out.println("Hello World!");
สองประเด็นต่อไปนี้เกี่ยวข้องกับวิธีการเขียน Java:
1. ข้อความใน Java ควรลงท้ายด้วย (เหมือนกับ C/C++)
2. ใช้เครื่องหมายปีกกา {} เพื่อรวมคำสั่งเพื่อสร้างบล็อกโปรแกรม จากบล็อคโปรแกรม เราสามารถรู้ขอบเขตของส่วนต่างๆ ของโปรแกรม เช่น คลาสเริ่มต้นที่ไหนและสิ้นสุดที่ไหน
คอมไพล์และรัน
โปรแกรม Java จะต้องคอมไพล์โดยคอมไพลเลอร์ก่อนจึงจะสามารถดำเนินการได้ สำหรับ Linux หรือ Mac คุณสามารถดาวน์โหลดและติดตั้ง Java JDK ได้
ใช้จาวาคในการคอมไพล์ ป้อนคำสั่งต่อไปนี้บนบรรทัดคำสั่งเพื่อคอมไพล์:
คัดลอกรหัสรหัสดังต่อไปนี้:
$javac HelloWorld.java
ภายใต้พาธปัจจุบัน ไฟล์ชื่อ HelloWorld.class จะถูกสร้างขึ้น
ใช้คำสั่งจาวาเพื่อรัน Java จะค้นหาเมธอดหลักในคลาสแล้วดำเนินการ
คัดลอกรหัสรหัสดังต่อไปนี้:
$java สวัสดีโลก
ตัวแปร
ภาษาคอมพิวเตอร์มักจะต้องเก็บข้อมูลไว้ในหน่วยความจำ เช่น ตัวแปรในภาษา C และ Java ก็มีตัวแปรที่คล้ายกัน ทั้ง Java และ C เป็นภาษาที่พิมพ์แบบคงที่ ก่อนที่จะใช้ตัวแปร ให้ประกาศประเภทของตัวแปรก่อน
ตัวแปรใช้พื้นที่หน่วยความจำจำนวนหนึ่ง ตัวแปรประเภทต่างๆ จะใช้ขนาดต่างกัน ประเภทของตัวแปรใน Java มีดังนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
ชื่อขนาดการจัดเก็บตัวอย่างคำอธิบายประกอบค่า
ไบต์ 1 ไบต์ 3 ไบต์
int 4 ไบต์ 3 จำนวนเต็ม
สั้น 2 ไบต์ 3 จำนวนเต็มสั้น
ยาว 8 ไบต์ 3 จำนวนเต็มยาว
float 4bytes 1.2 หมายเลขจุดลอยตัวที่มีความแม่นยำเดียว
8bytes สองเท่า 1.2 จำนวนจุดลอยตัวที่มีความแม่นยำสองเท่า
อักขระ 'a' ถ่าน 2 ไบต์
บูลีน 1 บิต ค่าบูลีนที่แท้จริง
ใน Java จำเป็นต้องประกาศตัวแปรก่อนจึงจะสามารถใช้งานได้ ในการประกาศ ฉันระบุประเภทของตัวแปรและตั้งชื่อพิเศษเพื่อให้ฉันสามารถเรียกมันในโปรแกรมได้ในภายหลัง คุณสามารถประกาศตัวแปรได้ทุกที่ในโปรแกรมของคุณ
ตัวอย่างเช่น:
คัดลอกรหัสรหัสดังต่อไปนี้:
การทดสอบในชั้นเรียนสาธารณะ
-
โมฆะสาธารณะคง main (String [] args)
-
System.out.println("ประกาศตรงกลาง:");
อินท์เอ;
ก = 5;
System.out.println(a); // พิมพ์จำนวนเต็ม
-
-
ด้านบนคือชื่อตัวแปร คุณสามารถกำหนดค่าให้กับตัวแปรขณะประกาศตัวแปรได้ เช่น int a = 5;
*** แนวคิดของ "ตัวแปร" จริงๆ แล้วมาจากภาษาโปรแกรมขั้นตอน ใน Java ตัวแปรที่เรียกว่าแท้จริงแล้วคือ "ประเภทดั้งเดิม" เราจะเจาะลึกมากขึ้นในการอธิบายชั้นเรียน
คุณยังสามารถดูได้จากโปรแกรมด้านบนว่าใน Java // สามารถใช้เพื่อแสดงความคิดเห็นได้
อาร์เรย์
มีอาร์เรย์ใน Java อาร์เรย์ประกอบด้วยข้อมูลหลายประเภทเดียวกัน ฉันใช้วิธีการต่อไปนี้เพื่อประกาศอาร์เรย์จำนวนเต็ม:
คัดลอกรหัสรหัสดังต่อไปนี้:
อินท์[] ก;
พื้นที่ที่อาร์เรย์ต้องการไม่ได้ถูกจัดสรรให้กับอาร์เรย์จริงเมื่อมีการประกาศ ฉันสามารถใช้ new เพื่อสร้างพื้นที่ที่จำเป็นสำหรับอาร์เรย์ในเวลาเดียวกันของการประกาศ:
คัดลอกรหัสรหัสดังต่อไปนี้:
int[] a = ใหม่ int[100];
ที่นี่เราสร้างอาร์เรย์ที่สามารถเก็บจำนวนเต็มได้ 100 ตัว การจัดสรรหน่วยความจำที่เกี่ยวข้องก็เสร็จสมบูรณ์เช่นกัน
ฉันยังสามารถกำหนดค่าให้กับอาร์เรย์พร้อมกับการประกาศได้ ขนาดของอาร์เรย์จะถูกกำหนดในเวลาเดียวกันด้วย
คัดลอกรหัสรหัสดังต่อไปนี้:
int[] a = ใหม่ int[] {1, 3, 5, 7, 9};
ใช้ int[i] เพื่อเรียกองค์ประกอบ i-indexed ของอาร์เรย์ ฉันเริ่มจาก 0
อาร์เรย์ประเภทอื่นๆ จะคล้ายกับอาร์เรย์จำนวนเต็ม
การแสดงออก
นิพจน์คือการรวมกันของตัวแปร ค่าคงที่ และตัวดำเนินการที่แสดงถึงชิ้นส่วนของข้อมูล 1 + 1 เป็นนิพจน์ทั่วไป อีกตัวอย่างหนึ่ง:
คัดลอกรหัสรหัสดังต่อไปนี้:
การทดสอบในชั้นเรียนสาธารณะ
-
โมฆะสาธารณะคง main (String [] args)
-
System.out.println("ประกาศตรงกลาง:");
อินท์เอ;
ก = 5 + 1;
System.out.println(a); // พิมพ์จำนวนเต็ม
-
-
5 + 1 ด้านบนก็เป็นนิพจน์เช่นกัน เท่ากับ 6
การแสดงออกทางคณิตศาสตร์
การดำเนินการทางคณิตศาสตร์ผลลัพธ์จะเป็นค่าตัวเลขรหัสคัดลอกจะเป็นดังนี้:
บวก 1 + 2
4 - 3.4 การลบ
การคูณ 7 * 1.5
ดิวิชั่น 3.5/7
7 % 2 จงหาเศษที่เหลือ
การแสดงออกเชิงสัมพันธ์
ตรวจสอบว่านิพจน์เป็นจริงหรือไม่ นั่นคือค่าบูลีน จริงหรือเท็จ โค้ดคัดลอกจะเป็นดังนี้:
a > 4.2 มากกว่า
3.4 >= b มากกว่าหรือเท่ากับ
1.5 < 9 น้อยกว่า
6 <= 1 น้อยกว่าหรือเท่ากับ
2 == 2 เท่ากับ
2 != 2 ไม่เท่ากับ
นิพจน์บูลีน
ความสัมพันธ์เชิงตรรกะระหว่าง AND, OR และ NOT ของค่าบูลีนสองค่ามีดังนี้:
จริง && เท็จ และ
(3 > 1) ||. (2 == 1) หรือ
!ไม่จริง
การดำเนินการบิต
ดำเนินการทางลอจิคัลในรูปแบบไบนารีของจำนวนเต็มทีละบิตเพื่อรับจำนวนเต็ม รหัสคัดลอกจะเป็นดังนี้:
& และ
| หรือ
↑ เอ็กซ์ออร์
~ ไม่
5 << 3 0b101 เลื่อนไปทางซ้าย 3 บิต
6 >> 1 0b110 เลื่อนไปทางขวา 1 บิต
นอกจากนี้ยังมีตัวดำเนินการทั่วไปต่อไปนี้ในภาษา C ซึ่งฉันจะอธิบายเพิ่มเติมเมื่อใช้:
คัดลอกรหัสรหัสดังต่อไปนี้:
m++ เพิ่ม 1 ให้กับตัวแปร m
n -- ตัวแปร n ลบ 1
เงื่อนไข ? x1 : เงื่อนไข x2 คือค่าบูลีน ตามเงื่อนไข รับค่า x1 หรือ x2
โครงสร้างการควบคุม
ไวยากรณ์ของโครงสร้างการควบคุม (control flow) ใน Java คล้ายกับภาษา C พวกเขาทั้งหมดใช้ {} เพื่อแสดงความเกี่ยวข้อง
เลือก (ถ้า)
คัดลอกรหัสรหัสดังต่อไปนี้:
ถ้า (เงื่อนไข 1) {
งบ;
-
-
อื่นถ้า (เงื่อนไข 2) {
งบ;
-
-
อื่น {
งบ;
-
-
เงื่อนไขข้างต้นคือนิพจน์ที่แสดงถึงค่าจริงหรือเท็จ งบ;
ฝึกเขียนโปรแกรม Java เพื่อพิจารณาว่าปี 2013 เป็นปีอธิกสุรทินหรือไม่
วนซ้ำ (ในขณะที่)
คัดลอกรหัสรหัสดังต่อไปนี้:
ในขณะที่ (เงื่อนไข) {
งบ;
-
วนซ้ำ (ทำ... ในขณะที่)
คัดลอกรหัสรหัสดังต่อไปนี้:
ทำ {
งบ;
} while(condition); // ให้ความสนใจกับตอนจบ;
ห่วง (สำหรับ)
คัดลอกรหัสรหัสดังต่อไปนี้:
สำหรับ (เริ่มต้น; เงื่อนไข; อัปเดต) {
งบ;
-
ข้ามหรือแยกออกจากวง
ในลูป คุณสามารถใช้โค้ดที่คัดลอกได้ดังนี้:
แตก; // แยกออกจากวง
ดำเนินการต่อ; // ไปที่ลูปถัดไปโดยตรง
ฝึกเขียนโปรแกรม Java เพื่อคำนวณผลรวมตั้งแต่ 1 ถึง 2 ถึง 3... และจากนั้นเป็น 999
เลือก (สวิตช์)
คัดลอกรหัสรหัสดังต่อไปนี้:
สวิตช์ (การแสดงออก) {
กรณีที่ 1:
งบ;
หยุดพัก;
กรณีที่ 2:
งบ;
หยุดพัก;
-
ค่าเริ่มต้น:
งบ;
หยุดพัก;
-
เชิงวัตถุ
"วัตถุ" เป็นหนทางหนึ่งสำหรับคอมพิวเตอร์ในการสรุปโลก "เชิงวัตถุ" สามารถแสดงออกได้หลายวิธี ต่อไปนี้เป็นวิธีทำความเข้าใจที่ไม่ชัดเจน แต่ใช้งานง่ายกว่า:
1. ทุกสิ่งในโลกสามารถเรียกได้ว่าเป็นวัตถุ เช่น จางซาน วัตถุมีเอกลักษณ์ สถานะ และพฤติกรรม
2. สถานะของออบเจ็กต์แสดงโดยสมาชิกข้อมูล สมาชิกข้อมูลเรียกอีกอย่างว่าเขตข้อมูล เราใช้วัตถุอื่นเป็นสมาชิกข้อมูลของวัตถุนี้ เช่น จำนวนเต็มแทนส่วนสูง เช่น จมูก
3. พฤติกรรมของวัตถุแสดงโดยวิธีการสมาชิก เราเรียกมันว่าวิธีโดยย่อ วัตถุสามารถมีได้หลายวิธี เช่น การหายใจและการนอน
4. วัตถุสามารถจำแนกได้ (คลาส) หรือจำแนกเป็นประเภทเดียวกัน (ประเภท) วัตถุประเภทเดียวกันมีวิธีการเดียวกันและสมาชิกข้อมูลประเภทเดียวกัน วัตถุบางประเภทเรียกว่าอินสแตนซ์ประเภทนั้น
คลาสและออบเจ็กต์
ไวยากรณ์สำหรับการกำหนดคลาส:
คัดลอกรหัสรหัสดังต่อไปนี้:
คลาส คลาสชื่อ
-
สมาชิก1;
สมาชิก2;
-
-
เรากำหนดชนชั้นมนุษย์:
คัดลอกรหัสรหัสดังต่อไปนี้:
คลาสมนุษย์
-
ลมหายใจเป็นโมฆะ()
-
System.out.println("hu...hu...");
-
ความสูงอินท์;
-
ในขอบเขตของ {} คลาส Human มีสมาชิกสองคน: ความสูงของสมาชิกข้อมูล และเมธอด Breath()
1. ความสูงของสมาชิกข้อมูลเป็นประเภทจำนวนเต็มและสามารถใช้เพื่อจัดเก็บจำนวนเต็มได้
2. วิธีการแสดงถึงการกระทำที่วัตถุสามารถทำได้ นั่นคือ การดำเนินการที่คอมพิวเตอร์สามารถทำได้ วิธีการสามารถรับพารามิเตอร์และส่งกลับค่า ในคำจำกัดความของ Breath() ส่วน () After Breath คือรายการพารามิเตอร์ เนื่องจากรายการพารามิเตอร์ว่างเปล่า Breath() จึงไม่ยอมรับพารามิเตอร์ใด ๆ โมฆะก่อนลมหายใจ() คือประเภทของค่าที่ส่งคืน ซึ่งบ่งชี้ว่าลมหายใจไม่ส่งคืนค่า
(วิธีการนี้คล้ายกับฟังก์ชันในภาษาขั้นตอน)
ตอนนี้เราสร้างวัตถุ aPerson และเรียกลมหายใจวิธีการของวัตถุ:
คัดลอกรหัสรหัสดังต่อไปนี้:
การทดสอบในชั้นเรียนสาธารณะ
-
โมฆะสาธารณะคง main (String [] args)
-
Human aPerson = มนุษย์ใหม่ ();
aPerson.breath();
System.out.println(aPerson.height);
-
-
คลาสมนุษย์
-
ลมหายใจเป็นโมฆะ()
-
System.out.println("hu...hu...");
-
ความสูงอินท์;
-
ในวิธีการหลัก ให้ใช้คีย์เวิร์ดใหม่เพื่อสร้างออบเจ็กต์ แม้ว่าอ็อบเจ็กต์จากคลาสเดียวกัน หน่วยความจำที่ครอบครองโดยแต่ละอ็อบเจ็กต์จะแตกต่างกัน กล่าวคือ เอกลักษณ์ของอ็อบเจ็กต์ก็แตกต่างกันเช่นกัน
Human aPerson ประกาศว่าวัตถุ aPerson เป็นของคลาส Human ซึ่งระบุประเภทของวัตถุ
หลังจากที่วัตถุถูกสร้างขึ้น เราสามารถใช้สมาชิก object.data เพื่ออ้างอิงสมาชิกข้อมูล และใช้ object.method() เพื่อเรียกเมธอด ในขณะที่เราพิมพ์ aPerson.height ในภายหลัง
สรุป
Java รูปแบบไวยากรณ์หลายรูปแบบคล้ายกับ C/C++ แต่มีความแตกต่างในรายละเอียดและการใช้งานเฉพาะ ดังนั้นคุณจึงต้องระมัดระวัง
วัตถุ วัตถุคลาส: วิธีการ ฟิลด์ (สมาชิกข้อมูล)
Java เป็นภาษาเชิงวัตถุโดยสมบูรณ์