Bài giảng Lập trình hướng đối tượng JAVA

151 492 1
Bài giảng Lập trình hướng đối tượng JAVA

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

22/09/13 1 LOGO Phạm Văn Nam Mobile: 0904 38 81 82 Email: nampv@ntu.edu.vn Tổng quan về lập trình Java Giới thiệu ngôn ngữ Java Các kiểu dữ liệu cơ sở Các cấu trúc điều khiển Kiểu mảng và kiểu chuỗi 2 22/09/13 2 Để học:  JAVA là gì?  Lập trình hướng đối tượng với JAVA như thế nào?  Những tài nguyên lập trình nào mà JAVA cung cấp để hỗ trợ cho lập trình “hiện đại”?  Lập trình mạng với JAVA như thế nào? Bạn phải có thể thiết kế, viết, gỡ lỗi và chạy các chương trình JAVA với độ phức tạp “nào đó” Học thông qua các ví dụ Mục tiêu môn học 3 Học bằng các ví dụ Có rất nhiều chương trình ví dụ trong suốt môn học Giải thích một ít về các chi tiết về cú pháp Sẽ có một số slides về cú pháp Java sau khi chúng ta xem các ví dụ Bạn sẽ phải đối phó với các vấn đề “thực tế” về lập trình Lý do cho các “phương pháp” lập trình sẽ trở nên rõ ràng hơn khi ta học nhiều hơn Cách học/dạy suy diễn 4 22/09/13 3 Giới thiệu ngôn ngữ Java Lịch sử phát triển của Java  Ra đời tại Sun Microsystems bởi James Gosling  1991: Version đầu tiên với tên “Oak”  1995: Tên chính thức là Java Mục đích của Java  Dùng để phát triển ứng dụng cho các thiết bị điện tử “thông minh”  Tạo các trang web có nội dung động (web applet)  Hiện nay, Java được sử dụng để phát triển nhiều loại ứng dụng khác nhau: cơ sở dữ liệu, mạng, Internet, viễn thông 5 Tại sao JAVA rất được ưa chuộng? Đa nền Hướng đối tượng: kiểu tiếp cận lập trình hiện đại Vững chắc: tránh được các nét đặc trưng lập trình mà nó có thể thường gây ra lỗi, cho phép phục hồi từ các lỗi. Mẫn cảm với Mạng: dễ dàng cho sự phát triển các hệ thống phân tán trên mạng TCP/IP. Nó là miễn phí và có nguồn tư liệu rất tốt. 6 22/09/13 4 Ta cần những gì để phát triển các chương trình Java Có nhiều môi trường phát triển miễn phí và thương mại nổi tiếng như: Ta sẽ dùng công cụ đơn giản nhất như Notepad và JCreator LE Ta cần:  Một trình soạn văn bản  Chương trình dịch  Java Virtual Machine (JVM) The JDK hay SDK 7 Kiến trúc của Java Java Platform  Java Virtual Machine (Java VM)  Java Application Programming Interface (Java API) Hardware-Platform Java VM Java API myProgram.java Java Platform Mã nguồn 8 22/09/13 5 Kiến trúc của Java Java Development Kit – JDK  Bộ công cụ phát triển Java (JDK) gồm trình biên dịch, thông dịch, trợ giúp, soạn tài liệu… và các thư viện chuẩn  Lập trình viên thường sử dụng các lớp chuẩn để phát triển ứng dụng.  Ngoài ra còn một số thư viện khác như JSP, JavaMail, Java TAPI…  1995: Version JDK 1.0  1998: Version JDK 1.2 (Java 2 nd Platform)  2004: Version JDK 1.5  2006: Version JDK 1.6  … 9 ¿Java Virtual Machine là gì? Là một hệ điều hành mà nó chạy trên một hệ điều hành khác (Ví dụ: Windows, Linux, MacOS) Có một JVM khác nhau cho mỗi loại máy nhưng tất cả chúng hoạt động giống nhau hoàn toàn Chúng có thể hiểu mã Java đã biên dịch và thông dịch nó sang các chỉ thị của ngôn ngữ máy Hardware Operating System Java Code Java Virtual Machines 10 22/09/13 6 ¿Ta có thể viết và thực thi những chương trình Java gì trên một JVM ? Stand-alone  Một chương trình tự trị (đa phần các chương trình mà ta sẽ xem xét ở đây)  Chúng được biên dịch với trình biên dịch Java và chạy với máy ảo Java (JVM) Applets  Chương trình mà mã của nó được tải xuống trong một trang web và được thực thi bên trong trình duyệt web  Trình duyệt web phải có một máy ảo Java trong nó để có thể thực thi các chương trình loại này 11 Servlets:  Các chương trình dùng để mở rộng các khả năng của web server  Chúng tạo ra các mã HTML cho các trình duyệt liên hệ với nó  Web server phải có thể chạy được java servlet với máy ảo Java (ví dụ như TOMCAT) EjBeans (J2EE)  Các bản/mảnh code (được gọi là beans) chúng được thực thi bên trong một máy chủ ứng dụng được kết hợp với một web server. Nó rất giống với servlet nhưng được quản lý theo một cách khác.  Máy chủ ứng dụng cung cấp các chức năng nâng cao hiệu năng của máy chủ ¿Ta có thể viết và thực thi những chương trình Java gì trên một JVM ? 12 22/09/13 7 Viết và chạy một ứng dụng Java độc lập như thế nào? MyProg.java Java source code Java compiler (javac) class { int i,j; public main MyProg.class Java Java VM (java) 13 Ví dụ về các bước để phát triển ứng dụng Java độc lập Các bước phát triển: ` public class Hello { public static … } Hello.java Biên dịch Thông dịch Hello.class (bytecode) javac Hello.java java Hello 01001011 14 22/09/13 8 Điều gì làm cho Java có tính đa nền? Java compiler (riêng biệt cho mỗi nền) javac P1.java P1.java P1.class Java interpreter (riêng biệt cho mỗi nền) còn được gọi là Java Virtual Machine hay máy ảo Java java P1 Program’s output 15 Công cụ soạn thảo/môi trường phát triển Notepad NetBeans Eclipse JBuilder EditPlus JCreator … 16 [...]... “+mcd(a,b)); } 65 Hướng đối tượng là gì? Là cách tổ chức mã của các chương trình theo một cách tốt hơn (hy vọng thế!) Dữ liệu được sử dụng bởi một chương trình là các đối tượng (objects) Các đối tượng là một tập hợp các biến và phương thức Phương thức thay đổi giá trị của các biến đối tượng Phương thức trả về giá trị của các biến đối tượng 66 33 22/09/13 Một lớp mà ta đã biết: lớp Console Tạo các đối tượng. .. chính bởi các phương thức mà ta có thể áp dụng cho một đối tượng của lớp đó  Có một loại phương thức đặc biệt gọi là phương thức khởi tạo (constructor), nó tạo ra một đối tượng mới của lớp đó Ví dụ: String myName; / /đối tượng vẫn chưa tồn tại myName = new String(“Nelson Baloian”); Gọi đến một constructor Để áp dụng một phương thức lên một đối tượng object_variable.method(parameters) 71 Đọc các ký... -classpath Jar1.jar;Jar2.jar;… ProgramJava .java javac -classpath Console.jar Programm1 .java Để thi hành các chương trình có sử dụng các lớp được chứa trong jar file java -classpath Jar1.jar;Jar2.jar…; ProgramJava java -classpath Console.jar ; Programm1 24 12 22/09/13 Ví dụ Viết chương trình cho phép máy tính thiết lập đoạn hội thoại như sau với user: comp > Hello, what is your name ? Leandro comp >... main(String args[]) { int i=0; while (i < args.length) { System.out.println(args[i]); i = i + 1; } } }  Chương trình trên sẽ hiển thị tất cả các tham số được truyền cho chương trình khi nó được gọi  Ta sẽ dùng đầu ra chuẩn thay vì một đối tượng thuộc lớp Console Programm12 .java 61 Bài tập Viết chương trình nhập vào từ bàn phím 20 số nguyên và thực hiện các công việc sau: • Tính giá trị trung bình của các... quá trình biên dịch và thực thi  Tạo một package và import nó 23 Tạo và sử dụng các jar files (từ dòng lệnh) Câu lệnh để tạo các jar files jar cf tenjarfile.jar lop1.class lop2.class jar cf Console.jar Console.class ConsoleCanvas.class Message.class FatalError.class Để biên dịch các chương trình có sử dụng các lớp được chứa trong jar file javac -classpath Jar1.jar;Jar2.jar;… ProgramJava .java javac... dài để lập trình nó được viết như sau: ProgramCombinations1 .java • Một cách ngắn và sử dụng lại là định nghĩa một phương thức tĩnh: ProgramCombinations2 .java 63 Định nghĩa một phương thức tĩnh Kiểu của giá trị mà phương thức sẽ trả về (void trong trường hợp nó không trả về giá trị nào) public nên nó có thể được sử dụng ở bên ngoài file này như Math.min(x,y); Tên của phương thức (đặt bởi người lập trình) ... một cửa sổ trên màn hình để từ đó có thể đọc các giá trị mà người sử dụng đưa vào máy tính và để viết các thông điệp Câu lệnh này tạo một đối tượng mới thuộc lớp Console Định danh cho đối tượng đó sẽ là con  con.print(“ ”); thực thi phương thức in/viết lên đối tượng con, nó sẽ in chuỗi được đặt trong cặp dấu nháy kép  int yourNumber; khai báo một biến nguyên  yourNumber = con.readInt(); thực hiện... Programm4 .java Nhập vào năm số, cho biết số lớn nhất và tính giá trị trung bình của chúng Programm5 .java Giải phương trình bậc hai ax2 + bx + c = 0, với a, b, c nhập từ bàn phím Programm6 .java 43 Các ví dụ về tính toán (tt.)  Trong trường hợp (Math.pow(b,2)-(4*a*c)) < 0 thì sao? Ta phải chuyển nó thành số dương và đưa ra nghiệm ảo Programm7 .java  Ta có thể có một phiên bản tốt hơn của chương trình. .. 22/09/13 Bài tập Viết chương trình cho phép máy tính thiết lập đoạn hội thoại sau với user comp comp comp comp > > > > Which year were you born ? 1963 which month were you born ? 4 which day were you born ? 5 you have lived almost xxx days Máy tính sẽ tính số ngày mà user đã sống tính cho đến ngày 30 - 12 - 2007 Giả sử rằng một năm luôn có 365 ngày và một tháng có 30 ngày 27 Bài tập Viết chương trình. .. không phải là một lớp thuộc về một phần của ngôn ngữ Java !!! Nó được phát triển cho bài giảng này để nhập/xuất dữ liệu thuận tiện hơn Để dùng nó, ta cần phải làm cho nó được nhìn thấy bởi chương trình mà ta đang biên dịch Có ít nhất 3 phương pháp khác nhau:  Đặt tất cả các files mà chúng cài đặt lớp Console vào trong cùng thư mục với chương trình của bạn (Console.class, ConsoleCanvas.class, Message.class, . về lập trình Java Giới thiệu ngôn ngữ Java Các kiểu dữ liệu cơ sở Các cấu trúc điều khiển Kiểu mảng và kiểu chuỗi 2 22/09/13 2 Để học:  JAVA là gì?  Lập trình hướng đối tượng với JAVA. tài nguyên lập trình nào mà JAVA cung cấp để hỗ trợ cho lập trình “hiện đại”?  Lập trình mạng với JAVA như thế nào? Bạn phải có thể thiết kế, viết, gỡ lỗi và chạy các chương trình JAVA với. (bytecode) javac Hello .java java Hello 01001011 14 22/09/13 8 Điều gì làm cho Java có tính đa nền? Java compiler (riêng biệt cho mỗi nền) javac P1 .java P1 .java P1.class Java interpreter

Ngày đăng: 10/04/2015, 10:25

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan