1. Trang chủ
  2. » Thể loại khác

access modifier trong java

6 20 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 369,59 KB

Nội dung

http://vietjack.com/java/index.jsp Copyright © vietjack.com Access Modifier Java Có hai loại Modifier Java, là: Access Modifier Non-access Modifier Access Modifer Java xác định phạm vi truy cập thành viên liệu, phương thức, constructor lớp Có loại Access Modifier là: private, default, protected, public  Default: Truy cập nội package  Private: Truy cập nội lớp  Public: Thành phần công khai, truy cập tự từ bên  Protected: Thành phần bảo vệ, bị hạn chế truy nhập từ bên Ngoài có nhiều Non-access Modifier static, abstract, synchronized, native, volatile, transient, … Chương tìm hiểu Access Modifier Bạn theo dõi bảng sau để có nhìn sơ lược loại Access Modifier Java: Access Modifier Bên lớp Bên package Bên package lớp Bên package private C K K K default C C K K protected C C C K public C C C C Private Access Modifier Java Các phương thức, biến constructor mà khai báo private truy cập lớp khai báo http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com Private Access Modifier chế độ truy cập mang tính hạn chế Lớp interface private Các biến khai báo private truy cập bên ngồi lớp phương thức public getter có mặt lớp Sử dụng Private Access Modifier Java cách chủ yếu để đối tượng bao đóng ẩn liệu với bên ngồi Trong ví dụ đây, tạo hai lớp A Simple Lớp A chứa thành viên liệu private phương thức private Chúng ta truy cập thành viên private từ bên lớp, điều dẫn đến Compile time error: class A{ private int data=40; private void msg(){System.out.println("Hello java");} } public class Simple{ public static void main(String args[]){ A obj=new A(); System.out.println(obj.data);//Compile Time Error obj.msg();//Compile Time Error } } Qui tắc cho Private Access Modifier Java Nếu bạn tạo constructor private, bạn khơng thể tạo instance (sự thể hiện) lớp từ bên ngồi lớp Ví dụ: class A{ private A(){}//private constructor void msg(){System.out.println("Hello java");} } public class Simple{ public static void main(String args[]){ http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com A obj=new A();//Compile Time Error } } Default Access Modifier Java Default Access Modifier nghĩa không khai báo cách rõ ràng Access Modifier cho lớp, trường, phương thức, Nói cách khác, bạn khơng sử dụng Modifier nào, theo mặc định xem default Default Modifier truy cập bên package Một biến phương thức khai báo mà khơng có Access Modifier có sẵn cho lớp package Các trường interface hoàn toàn public static final phương thức interface public theo mặc định Ví dụ Trong ví dụ này, tạo hai package pack mypack Chúng ta truy cập lớp A từ bên ngồi package Khi lớp A khơng public, khơng thể truy cập từ bên package //Luu duoi dang A.java package pack; class A{ void msg(){System.out.println("Hello");} } //Luu duoi dang B.java package mypack; import pack.*; class B{ public static void main(String args[]){ A obj = new A();//Compile Time Error obj.msg();//Compile Time Error } } http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com Trong ví dụ trên, phạm vi lớp A phương thức msg() default, khơng thể truy cập từ bên package Protected Access Modifier Java Protected Access Modifier truy cập bên package bên ngồi package thơng qua tính kế thừa Protected Access Modifier áp dụng thành viên liệu Nó khơng thể áp dụng lớp Các biến, phương thức constructor, mà khai báo protected lớp cha (superclass), truy cập lớp cha package khác lớp bên package lớp protected Protected Access Modifier áp dụng cho lớp interface Các phương thức trường khai báo protected, nhiên, phương thức trường interface khai báo protected Chế độ protected cung cấp cho lớp phụ hội để sử dụng phương thức biến helper, ngăn cản lớp không liên quan từ việc cố gắng sử dụng Ví dụ Trong ví dụ này, tạo hai package pack mypack Một lớp A pack package public, truy cập từ bên ngồi package Nhưng phương thức msg package khai báo protected, truy cập từ bên ngồi lớp thơng qua tính kế thừa //Luu duoi dang A.java package pack; public class A{ protected void msg(){System.out.println("Hello");} } //Luu duoi dang B.java package mypack; import pack.*; class B extends A{ public static void main(String args[]){ B obj = new B(); obj.msg(); http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com } } Public Access Modifier Java Public Access Modifier truy cập đâu Nó có phạm vi rộng tất Modifier Một lớp, phương thức, constructor, interface, khai báo public truy cập từ lớp khác Do đó, trường, phương thức khối khai báo bên lớp public truy cập từ lớp giới Java Tuy nhiên, lớp public cố gắng truy cập package khác, lớp public cần để import Bởi tính kế thừa lớp, tất phương thức biến lớp kế thừa lớp phụ Ví dụ //Luu duoi dang A.java package pack; public class A{ public void msg(){System.out.println("Hello");} } //Luu duoi dang B.java package mypack; import pack.*; class B{ public static void main(String args[]){ A obj = new A(); obj.msg(); } } http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com Access Modifier Java với Ghi đè phương thức Nếu bạn ghi đè phương thức nào, phương thức ghi đè (ví dụ khai báo lớp con) phải không nhiều giới hạn class A{ protected void msg(){System.out.println("Hello java");} } public class Simple extends A{ void msg(){System.out.println("Hello java");}//Compile Time Error public static void main(String args[]){ Simple obj=new Simple(); obj.msg(); } } Default Modifier nhiều giới hạn protected Đó lý compile time error Access Modifier tính kế thừa Java Các qui tắc sau bắt buộc cho phương thức kế thừa Java:  Các phương thức khai báo public lớp cha phải public tất lớp phụ  Các phương thức khai báo protected lớp cha phải protected public lớp phụ; chúng private  Các phương thức khai báo mà khơng có điều khiển truy cập (khơng sử dụng modifier nào) khai báo private lớp phụ  Các phương thức khai báo private khơng kế thừa, khơng có qui tắc cho chúng http://vietjack.com/ Trang chia sẻ học online miễn phí Page ... Error } } Default Access Modifier Java Default Access Modifier nghĩa không khai báo cách rõ ràng Access Modifier cho lớp, trường, phương thức, Nói cách khác, bạn khơng sử dụng Modifier nào, theo... http://vietjack.com /java/ index.jsp Copyright © vietjack.com Trong ví dụ trên, phạm vi lớp A phương thức msg() default, khơng thể truy cập từ bên package Protected Access Modifier Java Protected Access Modifier. .. miễn phí Page http://vietjack.com /java/ index.jsp Copyright © vietjack.com } } Public Access Modifier Java Public Access Modifier truy cập đâu Nó có phạm vi rộng tất Modifier Một lớp, phương thức,

Ngày đăng: 03/12/2017, 00:56

w