Bài giảng Lập trình hướng đối tượng: Chương 4.2 - ĐH Bách Khoa Hà Nội
lượt xem 2
download
Bài giảng Lập trình hướng đối tượng: Chương 4.2 Nested Class cung cấp cho người học những kiến thức như: Khái niệm; Tại sao sử dụng nested class? Phân loại; Static nested classes; Inner Class. Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình hướng đối tượng: Chương 4.2 - ĐH Bách Khoa Hà Nội
- 9/18/17 1. Khái niệm n Java cho phép định nghĩa 1 class trong class Bộ môn Công nghệ Phần mềm khácàGọi là nested class Viện CNTT & TT n Nested class là 1 thành viên của lớp bao nó Trường Đại học Bách Khoa Hà Nội n Các loại từ chỉ định truy cập: public, private, protected, không có gì n Ví dụ: class OuterClass { LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG ... class NestedClass { Bài 4B. Nested Class ... } } 2 2. Tại sao sử dụng nested class? 3. Phân loại n Nhóm 1 cách logic các class được sử dụng n Nested class chia làm 2 loại: static và non-static n Static nested class: Nếu nested class được khai báo là static chỉ ở 1 nơi n Inner class: ngược lại n Nếu 1 class hữu ích chỉ cho 1 class khác à sẽ n Ví dụ: class OuterClass { logic nếu nhúng class đó vào class kia ... n Tăng tính đóng gói static class StaticNestedClass { ... n Giả sử có class A và B } n B cần truy cập tới các thành phần private của A class InnerClass { ... n à Đặt B là nested Class trong A } n B có thể bị ẩn với bên ngoài (private, …) } n Giúp dễ đọc code và dễ bảo trì 3 4 1
- 9/18/17 3.1. Static nested classes 3.1. Static nested classes (2) n Được truy cập từ tên của class bao nó public class Outside { n Ví dụ: OuterClass.StaticNestedClass public static class Skinside { n Để tạo 1 đối tượng của static nested class: public Skinside() n OuterClass.StaticNestedClass nestedObject = new { OuterClass.StaticNestedClass(); System.out.println("Demo static"); n Chỉ được truy cập các thành viên static của class bao nó } public class Outer { } private int id; public static class Inner public class Inside { { } private int localId; public Inner() public static void main(String[] arg) { { Outside.Skinside example = new Outside.Skinside(); localId=0000; } id = 0; //Error } } } 5 6 3.2. Inner Class 3.2. Inner Class (2) n 1 thể hiện (instance) của inner class chỉ tồn n Inner class có thể truy cập tới 1 member bất kỳ của outer class tại được trong 1 thể hiện của outer class n Inner class không được có thành phần static n Để khởi tạo đối tượng cho inner class, phải khởi public class Outer { tạo đối tượng của outer class trước private int id; n OuterClass.InnerClass innerObject = private class Inner { outerObject.new InnerClass(); private static int defaultId; //Error public Inner() { id = 00001; //Truy cập được id ngoài } } 7 8 2
- 9/18/17 public class DataStructure { private final static int SIZE = 15; private int[] arrayOfInts = new int[SIZE]; public DataStructure() {//fill the array with ascending integer values for (int i = 0; i < SIZE; i++) { 3.2. Inner Class (3) arrayOfInts[i] = i; } } public void printEven() {//In chỉ số lẻ trong mảng InnerEvenIterator iterator = this.new InnerEvenIterator(); n Inner Class lại chia làm 2 loại con: while (iterator.hasNext()) { } System.out.println(iterator.getNext() + " "); n local inner class: Khai báo 1 inner class trong 1 } private class InnerEvenIterator { //inner class implements the Iterator pattern method anonymous inner classes: Khai báo 1 inner Class //start stepping through the array from the beginning private int next = 0; n public boolean hasNext() { } return (next
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - TS. Trần Công Án
57 p | 89 | 13
-
Bài giảng Lập trình hướng đối tượng: Chương 2 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
14 p | 174 | 12
-
Bài giảng Lập trình hướng đối tượng - Chương 1: Phương pháp lập trình hướng đối tượng
9 p | 141 | 9
-
Bài giảng Lập trình hướng đối tượng C++ - Chương 2: Lập trình hướng đối tượng
53 p | 46 | 8
-
Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 1 - Trần Minh Thái (2017)
55 p | 80 | 8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan lập trình hướng đối tượng
53 p | 120 | 8
-
Bài giảng Lập trình hướng đối tượng (Dùng C#): Chương 2 - Trần Minh Thái
35 p | 104 | 8
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Thị Anh Thi
7 p | 197 | 7
-
Bài giảng Lập trình hướng đối tượng 1: Chương 1 - ThS. Thái Kim Phụng
39 p | 102 | 7
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - ThS. Trịnh Thành Trung
53 p | 90 | 7
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Minh Thái
40 p | 116 | 6
-
Bài giảng Lập trình hướng đối tượng – Bài 01: Tổng quan về OOP
47 p | 63 | 5
-
Bài giảng Lập trình hướng đối tượng (dùng JAVA): Chương 1 - Trần Minh Thái
40 p | 99 | 5
-
Bài giảng Lập trình hướng đối tượng và C++: Chương 1
15 p | 105 | 4
-
Bài giảng Lập trình hướng đối tượng: Nhập môn - Trần Phước Tuấn
15 p | 141 | 4
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Tổng quan về lập trình hướng đối tượng
47 p | 11 | 4
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Các khái niệm cơ bản trong lập trình hướng đối tượng
36 p | 16 | 3
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Nguyễn Khanh Văn
0 p | 83 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn