วิชาการดอทคอม ptt logo

ภาษาจาวา

อยากให้ทุกคนได้รู้จักภาษาจาวา
ผู้เขียน: ปากกา ชมแล้ว: 2,301 ครั้ง
post ครั้งแรก: Tue 23 June 2009, 10:37 am ปรับปรุงล่าสุด: Tue 23 June 2009, 10:38 am
อยู่ในส่วน: ไม่ได้ระบุว่าให้อยู่ห้องใด

หน้าที่ 1 - ภาษาจาวา
1. ที่มา เรียบเรียงเพื่อเตรียมสอนจาวาสำหรับผู้เริ่มต้น + การโปรแกรมเชิงวัตถุ
หลังผ่าน SCJP1.4 และ SCJP5 จึงรู้ว่าเว็บเพจนี้ให้ข้อมูลขั้นพื้นฐานเท่านั้น
ทำให้มีเรื่องมากมายต้องถูกปรับปรุง .. ให้ตรงตามทฤษฎีของ Java Certified
ที่ท่านเห็นขณะนี้เป็นเพียงความรู้เบื้องต้น(SL-110) ก่อนถึง SCJP(SL-275)
รู้แค่ที่ผมเขียนไว้ ไม่พอไปสอบ SCJP แน่นอน .. ต้องอ่านมากกว่านี้อีกมาก
Sun Microsystems, Inc. (Download : JDK 6)
- J2SE = Java 2 Platform, Standard Edition :Core/Desktop
- J2EE = Java 2 Platform, Enterprise Edition :Enterprise/Server
- J2ME = Java 2 Platform, Micro Edition :Mobile/Wireless
- JRE = Java Runtime Environment
- JVM = Java Virtual Machine
ประวัติ (History) [wikipedia.org]
Java is a programming language originally developed by Sun Microsystems and released in 1995. Java applications are typically compiled to bytecode, although compilation to native machine code is also possible. At runtime, bytecode is usually either interpreted or compiled to native code for execution, although direct hardware execution of bytecode by a Java processor is also possible.
The language, widely considered to be the most popular platform for web development, derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. JavaScript, a scripting language, shares a similar name and has similar syntax, but is not directly related to Java.
  คนจาวา ใจดี
+ narisa.com#
+ thaidev.com
+ exzilla.net
+ au.ac.th
+ yakyaihost.net
+ sunncity.com
+ jarticles.com
+ webthaidd.com
+ คนเขียนเกมขาย
+ ศูนย์ฝึกอบรมเนคเทค
+ thai2learn.com

เกมใน thaibg(pass)
ถ้ามีปัญหาให้ยกเลิก jre
ใน advanced ของ IE

2. ความหมาย (?)
ภาษาจาวา (Java Language) คือ ภาษาโปรแกรมที่ถูกพัฒนาโดยบริษัท ซันไมโครซิสเต็มส์ เป็นภาษาสำหรับเขียนโปรแกรมที่สนับสนุนการเขียนโปรแกรมเชิงวัตถุ (OOP = Object-Oriented Programming) โปรแกรมที่เขียนขึ้นถ้าเป็นคลาสก็จะเป็นต้นแบบของวัตถุสามารถมีเมทธอด (Method) ที่ประกอบด้วยพฤติกรรม (Behavior) รูปพรรณ (Identity) และสถานะ (State)
3. การโปรแกรมเชิงวัตถุ (OOP = Object-Oriented Programming)
การเขียนโปรแกรมที่ประกอบด้วยกลุ่มของวัตถุ(Objects) แต่ละวัตถุจะจัดเป็นกลุ่มในรูปของคลาส ซึ่งแต่ละคลาสอาจมีคุณสมบัติ การปกป้อง (Encapsulation) การสืบทอด (Inheritance) การพ้องรูป (Polymorphism)
แนวคิดของการโปรแกรมเชิงวัตถุ (OOP Concepts) ?
1. การปกป้อง (Encapsulation)
- การรวมกลุ่มของข้อมูล และกลุ่มของโปรแกรม เพื่อการปกป้อง และเลือกตอบสนอง
2. การสืบทอด (Inheritance)
- ยอมให้นำไปใช้ หรือเขียนขึ้นมาทดแทนของเดิม
3. การพ้องรูป (Polymorphism) = Many Shapes
- Overloading มีชื่อโปรแกรมเดียวกัน แต่รายการตัวแปร (Parameter List) ต่างกัน
- Overriding มีชื่อโปรแกรม และตัวแปรเหมือนกัน เพื่อเขียน behavior ขึ้นมาใหม่
ตัวอย่างโปรแกรม
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class father {
  int n_time;
  private int to_show (int run_time) {
    run_time = n_time + 1; 
    return run_time;
  }
}
class child extends father {
  child() {
    n_time = 5;
    System.out.println(to_show(n_time)); // 7
  }
  public static void main(String[] a) {
    new child();
  }
  private int to_show (int run_time) {
    run_time = n_time + 2; 
    return run_time;
  }
}
Access Level ?
Specifier Class Package Subclass World
public / / / /
protected / / / .
no modifier / / . .
private / . . .

4. กฏของ OOP (Object Oriented Programming)
อาลัน เคร์(Alan Kay) เป็นผู้บุกเบิกแนวความคิดการเขียนโปรแกรมเชิงวัตถุคนหนึ่ง และมีส่วนพัฒนา Small talk ได้เสนอกฎ 5 ข้อของ OOP ไว้ดังนี้
1. ทุกสิ่งเป็นวัตถุ (Everything is an object)
2. โปรแกรมคือกลุ่มของวัตถุที่ส่งข่าวสารบอกกันและกันให้ทำงาน (A program is a bunch(พวง) of objects telling each other what to do by sending messages)
3. แต่ละวัตถุต้องมีหน่วยความจำ และประกอบด้วยวัตถุอื่น (Each object has its own memory made up of other objects)
4. วัตถุต้องจัดอยู่ในประเภทใดประเภทหนึ่ง (Every object has a type)
5. วัตถุประเภทเดียวกันย่อมได้รับข่าวสารเหมือนกัน (All objects of a particular type can receive the same messages)
5. ลักษณะที่ Object หนึ่ง ๆ ต้องมี
Object Model General, UML OOP Coding in Java
State Value of Attribute Value of Variable Value of Variable/Attribute
Behavior Behavior/Action Method Method
Identity Attribute Property Variable/Attribute
6. โครงการจาวาภิวัฒน์ (Javapiwat) (ซิป้าเชียงใหม่)
- หลักสูตร พื้นฐาน ภาษาการโปรแกรมจาวา (SL-110)
- หลักสูตร ภาษาการโปรแกรมจาวา (SL-275) (Java Certification FAQ)
- ตัวอย่างข้อสอบ (JAVA Programmer Quiz)
1. thaiall.com/quiz (ข้อสอบชุดเล็ก เริ่ม 18 กรกฎาคม 2548)
2. thaiall.com/scjp or lampang.thcity.com/scjp (Pactice SCJP)
3. sun.com (Online Quiz for practice เฉลยทันที)
4. wbrogden.com (Applet เหมือนสอบจริง marked ได้)
5. javaranch.com (Text 65 Questions + Online Checking 60 Questions)
6. jchq.net (Text 180 Questions)
7. danchisholm.net (Text 400 Questions)
8. 4tests.com (40 Questions ทำทีละข้อ แล้ว Download ข้อใหม่)
9. รวมเว็บไซต์ข้อสอบโดย SIPA เชียงใหม่
Java Certified Programmer สนับสนุนโดย SIPA สาขาเชียงใหม่
- sipa.or.th, Chiangmai, Java, Animation, Mobile
- รายชื่อผู้ผ่าน Certification 48 มี 144 เรียงคะแนน
- Course CX-310-055 for SCJP 5.0 (sun)
- เตรียมสอบ SCJP 5.0 (MZ)
- เตรียมสอบ SCJP 5.0 (whizlabs.com)
- Slide SCJP 5.0 (Tantalum's Blog Password:ITKMITL)
- Forum for SCJP 5.0 (CX-310-055)
Sun Certified Programmer (Java 2 Platform 1.4)
1. Declarations and Access Control
2. Flow Control, Assertions and Exception Handling
3. Garbage Collection
4. Language Fundamentals
5. Operators and Assignments
6. Overloading, Overriding, Runtime Type & Object Orient.
7. Threads
8. Fundamental Classes in the java.lang package
9. The Collections Framework
Sun Certified Programmer (Java 2 Platform 5.0)
1. Declarations, Initialization and Scoping
2. Flow Control
3. API Contents
4. Concurrency
5. OO Concepts
6. Collections /Generics
7. Fundamentals
ข้อมูลเพิ่มเติมที่ sun.com | janeng.ca
ต.ย.ใบรับรอง ของ
Certify Programmer
Score Report
ทราบผลหลังสอบทันที

Click to ... Practice
in thaiall.com website
SCJP
in Applet

beta version

7. เอกสารอ้างอิง

Java Language Specification 2.0
อธิบายเป็นบทชัดเจน 18 บท ถูกจัดเรียงเหมือนหนังสือที่อ่านเข้าใจง่าย ตั้งแต่ introduction, grammar ไปถึง syntax เนื้อหาส่วนใหญ่เน้นการอธิบายมากกว่าตัวอย่างโปรแกรม
:: read | download 410 KB
  API ref. & developer doc.
จำเป็นที่ผู้เรียน Java ต้องอ่านเอกสารชุดนี้ให้เป็น เพราะแต่ละ class มี method ให้ใช้มากมาย และอาจเปลี่ยนไปตามรุ่นของ Compiler สำหรับตัวอย่าง class String มีให้อ่าน และนำไปใช้ได้ทันที
:: read | download 32 MB
8. ตัวอย่างโปรแกรมที่ใช้ Applet
//<applet code=x.class width=100 height=100></applet>
import java.applet.*;
import java.awt.*;
public class x extends Applet {
  int i = 0;
  public void init() { i = 1; repaint(); }
  public void start() { i += 10; repaint(); }
  public void stop() { i += 100; repaint(); }
  public void destroy() { }
  public void paint(Graphics g) {
    setBackground(new Color(255,255,200));
    Font fnt = new Font("Angsana NEW",Font.PLAIN,20);
    g.setFont(fnt); 
    g.drawString(i + "ดูที่นี่",20,20);
  }
}


9. Exception

java.lang.Object
java.lang.Throwable
java.lang.Error java.lang.Exception
AssertionError, AWTError, CoderMalfunctionError, FactoryConfigurationError, LinkageError, ThreadDeath, TransformerFactoryConfigurationError, VirtualMachineError
Subclas of Exception
java.lang.Object
 java.lang.Throwable
  java.lang.Exception
   java.lang.RuntimeException
    java.lang.IndexOutOfBoundsException
     java.lang.ArrayIndexOutOfBoundsException


class testofexception { public static void main(String[] args) { try { System.out.println(1/0); } catch (Exception e) { System.out.println(e); } // java.lang.ArithmeticException: / by zero } }
AclNotFoundException, ActivationException, AlreadyBoundException, ApplicationException, AWTException, BackingStoreException, BadLocationException, CertificateException, ClassNotFoundException, CloneNotSupportedException, DataFormatException, DestroyFailedException, ExpandVetoException, FontFormatException, GeneralSecurityException, GSSException, IllegalAccessException, InstantiationException, InterruptedException, IntrospectionException, InvalidMidiDataException, InvalidPreferencesFormatException, InvocationTargetException, IOException, LastOwnerException, LineUnavailableException, MidiUnavailableException, MimeTypeParseException, NamingException, NoninvertibleTransformException, NoSuchFieldException, NoSuchMethodException, NotBoundException, NotOwnerException, ParseException, ParserConfigurationException, PrinterException, PrintException, PrivilegedActionException, PropertyVetoException, RefreshFailedException, RemarshalException, RuntimeException, SAXException, ServerNotActiveException, SQLException, TooManyListenersException, TransformerException, UnsupportedAudioFileException, UnsupportedCallbackException, UnsupportedFlavorException, UnsupportedLookAndFeelException, URISyntaxException, UserException, XAException
 
10. เจชาร์ป (J#)
เจชาร์ป เป็นผลงานของบริษัทไมโครซอฟท์ แต่มีหลักการ หรือทฤษฎีที่ต่อยอดมาจากภาษาจาวาของบริษัทซัน และเจพลัสพลัส (J++) จึงมีโครงสร้างภาษาเหมือนกัน ดังนั้นผู้ที่เคยศึกษาภาษาจาวาของบริษัทซันมาก่อน จึงสามารถพัฒนาภาษาจาวาด้วยเจชาร์ปได้โดยง่ายภายใต้สภาวแวดล้องของดอทเน็ต แต่ผลการแปลโปรแกรมผ่านเจชาร์ปจะไม่ได้ไบท์โค้ด (Byte Code) หรือแฟ้ม .class เหมือนผลการแปลด้วยตัวแปลภาษาของบริษัทซัน และเจชาร์ปไม่สนับสนุนการพัฒนาแอพเพล็ท (Applet)
นักพัฒนาสามารถใช้งานตัวแปลภาษาในสภาวะแวดล้อมบนวินโดว์ โดยเปิด Microsoft Visual Studio และสร้าง VJ# Console Application เมื่อจัดเก็บโครงงาน (Project) จะสร้างห้อง C:Documents and Settings admin My Documents Visual Studio 2005 Projects ConsoleApplication1 และแฟ้มที่ถูกสร้างขึ้น คือ Program.jsl
แฟ้มหลักสำหรับการเป็นตัวแปลภาษา คือ แฟ้ม vjc.exe (Visual Java Compiler) เก็บอยู่ในห้อง C:WINDOWS.0 Microsoft.NET Framework v2.0.50727 หากใช้ตัวแปลภาษาตัวนี้เพื่อแปลแฟ้มรหัสต้นฉบับชื่อ Program.jsl ผ่าน DOS Command ในสภาวะแวดล้อมที่เหมาะสมก็จะทำได้ ซึ่งผลจากการแปลแฟ้ม Program.jsl จะได้แฟ้ม Program.exe มีขนาด 4096 Byte มิใช่แฟ้ม Program.class เหมือนภาษาจาวาของบริษัทซัน
ตัวอย่างการแปล
DOS> vjc x.jsl
DOS> vjc x1.jsl x2.jsl /out:app.exe



*หมายเหตุ งานเขียนชิ้นนี้ ได้รับการคุ้มครองสิทธิตามพระราชบัญญัติคุ้มครองสิทธิทางปัญญา โดยลิขสิทธิเป็นของผู้เขียน ที่ให้เกียรตินำเผยแพร่ผ่าน วิชาการ.คอม เรามีความยินดีและอนุญาตให้ทำซ้ำหรือเผยแพร่ต่อเพื่อประโยชน์ทางการศึกษาเท่านั้น กรุณาให้เกียรติผู้เขียน โดยอ้างชื่อผู้เขียนและ วิชาการ.คอม (www.vcharkarn.com) ทุกครั้งที่ทำการเผยแพร่ต่อ ห้ามนำส่วนหนึ่งส่วนใดไปเผยแพร่ต่อในสื่อที่เอื้อประโยชน์ทางธุรกิจก่อนได้รับอนุญาต ขอขอบคุณที่ร่วมกันช่วยสร้างให้สังคมไทยเป็นสังคมแห่งปัญญา






จำไว้ตลอด

จำนวน 2 ความเห็น, หน้า | 1 |
ความเห็น 1 31 ก.ค. 2552 (10:15)



ควรจัดตัวหนังสือให้สวยงามกว่านี้  แต่ก้มีสาระดี{#emotions_dlg.d4}{#emotions_dlg.a6}{#emotions_dlg.a4}


เฟื่องฤทัย
ร่วมแบ่งปัน13 ครั้ง - ดาว 48 ดวง

ความเห็น 2 3 ส.ค. 2552 (16:28)

เนื้อหาเยอะดีค่ะ

แต่จะอ่านยากซักหน่อย


darling-ta
ร่วมแบ่งปัน15 ครั้ง - ดาว 51 ดวง






pead_555
(สุจิน ทุมมาไว)

ผู้ชมข้อมูลนี้แล้ว 884 ครั้ง
เป็นสมาชิก: นานกว่า 5 ปี
แบ่งปันความรู้ 2 ครั้ง
ได้รับดาว 50 ดวง

โหวตเพิ่มดาว

Blog อื่น ๆ ของผู้เขียน