Tài liệu Hiểu thêm về Java Nội dung Dữ liệu kiểu nguyên thủy và đối tượng Tham ppt

37 336 0
Tài liệu Hiểu thêm về Java Nội dung Dữ liệu kiểu nguyên thủy và đối tượng Tham ppt

Đ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

Hiểu thêm Java Nội dung Dữ liệu kiểu nguyên thủy đối tượng Tham chiếu Giải phóng nhớ Gói kiểm sốt truy cập Kiểu hợp thành (composition) Vào với luồng liệu chuẩn Nguyễn Việt Hà Thêm Java Tài liệu tham khảo Thinking in Java, chapter 2, 4, Java how to program, chapter 4,5,6,7,8 Nguyễn Việt Hà Thêm Java Kiểu liệu nguyên thủy Java cung cấp kiểu nguyên thủy số: byte, short, int, long, float, double khơng có khái niệm unsigned kích thước cố định platform logic: boolean ký tự: char Dữ liệu kiểu nguyên thủy đối tượng int a = 5; if (a==b)… Tồn lớp đối tượng tương ứng: Interger, Float, Interger count = new Interger(0); Nguyễn Việt Hà Thêm Java Kiểu liệu char byte Độ rộng (bits) Giá trị cực tiểu 16 0x0 Giá trị cực đại 0xffff +127 (27-1) -128 (-27) short 16 -32768 (-215) 32767 (215-1) int 32 - 231, 0x80000000 + 231 - 1, 0x7fffffff long 64 - 263 + 263 - float 32 1.40129846432481707e-45 3.40282346638528860e+38 double 64 4.94065645841246544e-324 1.79769313486231570e+308 boolean Nguyễn Việt Hà Thêm Java Dữ liệu lưu trữ đâu Dữ liệu kiểu nguyên thủy thao tác thông qua tên biến Dữ liệu thuộc tính đối tượng Đối tượng thao tác thông qua tham chiếu Vậy biến kiểu nguyên thủy, tham chiếu đối tượng lưu trữ đâu? Nguyễn Việt Hà Thêm Java vùng nhớ cho ứng dụng code static data constants temporary data static memory stack memory dynamic data heap memory Nguyễn Việt Hà Thêm Java Tham chiếu Đối tượng thao tác thông qua tham chiếu trỏ tới đối tượng thao tác trực tiếp tới thuộc tính phương thức khơng có tốn tử trỏ phép gán (=) khơng phải phép toán copy nội dung đối tượng tham chiếu lưu trữ vùng nhớ static/stack trỏ C/C++ Nguyễn Việt Hà Thêm Java Toán tử New Phải tạo đối tượng cách tường minh toán tử new cấp phát vùng nhớ động tạo nhớ Heap Ví dụ: MyDate d; MyDate birthday; d = new MyDate(); Nguyễn Việt Hà Thêm Java Phép gán “=” Phép gán copy thông thường copy nội dung tham chiếu hai tham chiếu tham chiếu đến đối tượng Integer m = new Integer(10); Integer n = new Integer(20); m = n; n.setValue(50); System.out.print(m); Nguyễn Việt Hà Thêm Java 10 this làm tham số class Document { Viewer vi; Document(Viewer v) { vi = v; } void display() { v.display(this); } } Nguyễn Việt Hà Thêm Java 23 Gọi constructor this class MyDate { private int year, month, day; public MyDate(int y, int m, int d) { } // copy constructor MyDate(MyDate d) { this(d.year, d.month, d.day); System.out.println(”copy constructor called”); } } Constructor gọi bên constuctor khác gọi lần thời điểm (vị trí) Nguyễn Việt Hà Thêm Java 24 Phương thức thuộc tính static Có thể khai báo phương thức thuộc tính tĩnh (static) độc lập với đối tượng sử dụng mà khơng cần có đối tượng Phương thức tĩnh khơng sử dụng thuộc tính thơng thường (non-static) khơng gọi phương thức thông thường Nguyễn Việt Hà Thêm Java 25 Gói lớp đối tượng (package) Các lớp đối tượng chia thành gói khơng khai báo lớp thuộc gói default lớp tệp mã nguồn ln thuộc gói Tồn mức truy cập package mức package mặc định (nếu không khai báo tường minh public hay private) đối tượng lớp thuộc gói truy cập đến non-private members tạo (new) đối tượng lớp khai báo public gói khác Nguyễn Việt Hà Thêm Java 26 Hello.java: class HelloMsg { void sayHello() { System.out.println(”Hello, world!”); } } public class Hello { public static void main(String[] args) { HelloMsg msg = new HelloMsg(); msg.sayHello(); } } Nguyễn Việt Hà Thêm Java 27 Khai báo sử dụng package Khai báo gói lệnh package gói lưu trữ theo cấu trúc thư mục sử dụng tham số -d để tạo thư mục biên dịch Dùng lệnh import để khai báo việc sử dụng gói có Nguyễn Việt Hà Thêm Java 28 Đối tượng hợp thành (Composition) Đối tượng chứa đối tượng khác (các thuộc tính khơng thuộc kiểu nguyên thủy) Thuộc tính tham chiếu phải tạo new gán cho đối tượng tồn class Person { private String name; private MyDate birthday; } Nguyễn Việt Hà Thêm Java 29 Get Set thuộc tính khơng thuộc kiểu nguyên thủy class Person { … public MyDate getBirthday() { return birthday; } } Person p = new Person( ); MyDate d = p.getBirthday(); d.setYear(1900); Nguyễn Việt Hà Thêm Java 30 Sử dụng copy constructor class Person { private String name; private MyDate birthday; public Person(String s, MyDate d) { name = s; birthday = new MyDate(d); } public MyDate getBirthday() { return new MyDate(birthday); } public void setBirthday(MyDate d) { birthday = new MyDate(d); } } Nguyễn Việt Hà Thêm Java 31 Vào từ luồng liệu chuẩn Luồng chuẩn: System.out xuất luồng chuẩn (standard output) tái định hướng Luồng thông báo lỗi: System.err xuất Console (thiết bị output chuẩn) tái định hướng Luồng liệu vào chuẩn: System.in chưa sẵn sàng cho sử dụng Nguyễn Việt Hà Thêm Java 32 Nhập liệu từ luồng vào chuẩn InputStream: lớp đối tượng ứng với luồng vào chuẩn System.in: đối tượng tương ứng chưa có phương thức nhập liệu InputStreamReader: nhập liệu không thông qua buffer đọc ký tự (kể ký tự đặc biệt) BufferedReader: sử dụng buffer đọc dòng Nguyễn Việt Hà Thêm Java 33 Ví dụ import java.io.*; public class Echo { public static void main(String[] args) throws IOException { InputStreamReader reader; BufferedReader bufReader; reader = new InputStreamReader(System.in); bufReader = new BufferedReader(reader); String s; while( null != (s = bufReader.readLine()) System.out.println(s); } } Nguyễn Việt Hà Thêm Java 34 Nhập số import java.io.*; class SimpleIO { public static void main(String args[]) throws IOException { int n; String str; str = bufReader.readLine(); Integer num = Integer.valueOf(str); n = num.intValue(); System.out.println(n); } } Nguyễn Việt Hà Thêm Java 35 Nhập số import java.io.*; class SimpleIO { public static void main(String args[]) throws IOException { int n; String str; str = bufReader.readLine(); n = Integer.valueOf(str).intValue(); System.out.println(n); } } Nguyễn Việt Hà Thêm Java 36 Tham số dòng lệnh CmdLineParas.java: public class CmdLineParas { public static void main(String[] args) { for (int i=0; i

Ngày đăng: 19/01/2014, 04:20

Từ khóa liên quan

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

Tài liệu liên quan