日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java修饰符总结,java访问修饰符总结

發布時間:2024/9/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java修饰符总结,java访问修饰符总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java的訪問修飾符

java面向對象的基本思想之一是封裝細節并且公開接口。

java采用訪問修飾符來封裝類的方法和屬性的訪問權限,從而向使用者暴露接口、隱藏細節。

public -- 對所有類可見。使用對象:類、接口、變量、方法

import pkg2.A;

public class Main {

public static void main(String[] args) {

A a = new A();

a.method(a.field); // 所有類均可以訪問權限為public的class A

}}

// ---------------------------------------------------------------------

package pkg2;

public class A implements B { // 該類的訪問權限為public

public int field; // 該字段的訪問權限為public

public void method(int aInt) {

// 該方法的訪問權限為public

}

@Override

public void method1() {

System.out.println("method1 is implemented.");

}}

public interface B { // 該接口的訪問權限為public

public void method1();}

}

protected -- 對同一包內的類和所有子類可見。使用對象:變量、方法。 注意:不能修飾類(外部類)。

若子類與基類不在同一包中,那么在子類中,子類實例可以訪問其從基類繼承而來的protected方法,而不能訪問基類實例的protected方法。

package pkg4;

import pkg1.H;import pkg1.K;

public class Test {

public static void main(String[] args) {

F f = new F();

G g = new G(); // 是F類的同包子類

H h = new H(); // 是F類的不同包子類

f.method();

g.method(); // protected方法是包內可見的

h.method(); // protected方法是對子類可見的

K k = new K();

k.method(); // 編譯不通過:'method()' has protected access in 'pkg1.K'

}}

// ---------------------------------------------------------------------package pkg4;

public class F { // 該類為外部類,訪問權限不能為protected,否則編譯不通過

protected int field; // 該字段的訪問權限為protected

protected void method() {

// 該方法的訪問權限為protected

}}

public class G extends F {} // 同包子類

// ---------------------------------------------------------------------package pkg1;

import pkg4.F;import pkg4.Test;

public class H extends F {} // 不同包子類

public class K extends Test {

protected void method() {

//...

}

}

default -- 在同一包內可見,不使用任何修飾符。使用對象:類、接口、變量、方法。

import pkg1.A;

public class Main {

public static void main(String[] args) {

A a = new A(); // 編譯不通過:'pkg1.A' is not public in 'pkg1'. Cannot be accessed from outside package

}}

// ---------------------------------------------------------------------

package pkg1;

class A implements B { // 該類的訪問權限為default

int field; // 該字段訪問權限為default

void method(int aInt) {

// 該方法的訪問權限為default

}

@Override

public void method1() {

System.out.println("method1 is implemented.");

}}

interface B { // 該接口的訪問權限為default

void method1();}

class C {

public void method3() {

A a = new A();

a.method(a.field); // 同包內可以訪問權限為default的類、方法、字段

}

}

private -- 使用對象:變量、方法。 注意:不能修飾類(外部類)

import pkg3.C;

public class Main {

public static void main(String[] args) {

C c = new C();

c.method(0); // 編譯不通過:'method()' has private access in 'pkg3.C'

}}

// ---------------------------------------------------------------------package pkg3;

public class C { // 該類為外部類,訪問權限不能為private,否則編譯不通過

private int field; // 該字段的訪問權限為private

private class B {} // 該類為內部類,訪問權限可以為private

private void method() {

// 該方法的訪問權限為private

System.out.println(this.field); // 類內部可以訪問私有字段

}}

package pkg3;

private interface E { // 編譯不通過:Modifier 'private' not allowed here

//...

}

總結

修飾符

當前類

同一包內

子孫類(同一包)

子孫類(不同包)

其他包

public

Y

Y

Y

Y

Y

protected

Y

Y

Y

Y/N

N

default

Y

Y

Y

N

N

private

Y

N

N

N

N

總結

以上是生活随笔為你收集整理的java修饰符总结,java访问修饰符总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。