友好型java,java面向對象中四種權限(private,protected,public,友好型)詳解

本文详细介绍了Java中的四种权限修饰符:private、public、protected和友好型(默认),包括它们的访问限制和应用场景。通过实例展示了不同权限在类内部、同包、跨包以及子类中的访问规则,并总结了这四种权限的访问特性。
摘要由CSDN通过智能技术生成

俗話說沒有規矩就沒有方圓,java作為一門嚴謹的面向對象的高級編程語言,自然對權限整個重要的問題有嚴格的控制。

Java一共有四種權限,private (私有),public(公有)。Protected(受保護)還有友好型。

在java里,這些語句都可以修飾類中的成員變量和方法,但是只有public和友好型可以修飾類。舉個例子:

接下來就詳細解釋一下這幾種權限的差別(博客最后有表格)按權限由低到高:(高權限有低權限所有特性)

Private:

類中的所有private方法和private 成員變量只能在類中訪問而不能在其他類中訪問。

例如:

package Main;

public class Private {

private int a;

private int b;

Protected (){

this.a=1;

this.b=2;//a和b只能在Private類中調用

}

private void set(){

System.out.println(""+a+""+b+"\n");

}

void Print(){

this.set();//只能在這里用;

}

}

友好型和protected:

如果在另一個類中聲明其他的一個類,如果這兩個在一個包中那么另一個類能訪問這個其他類的友好型變量不同包不能訪問:

如果在另一個B類中聲明其他的一個類A,如果這兩個在一個包中那么另一個類B也能能訪問這個其他類A的protected變量(或方法),如果不在一個包,那么如果類A有一個父類C如果,如果父類C中有一個protected變量(或方法),只要B,C在一個包中,B就能使用A中從父類繼承的protected方法。如果A是B的子類,如果AB不在一個包中,那么A可以使用B中protected方法。

例如:

package Main;

import Protected.*;

public class Main {

public static void main(String args[]){

Protected jkl=new Protected();

jkl.Print();//調用jkl父類的protect方法

Frindly prot =new Frindly();

System.out.println(prot.a);//在Main類中調用友好型的變量

prot.set();//在Main類中調用友好型的方法

}

}

package Main;

public class Frindly {

int a,b,c,d;

Frindly(){

a=b=c=d=1;

}

void set (){

System.out.print(""+a+" "+b+"\n");

}

}

package Main;

public class Protectedfather{

protected int a;

private int b;

protected Protectedfather (){

this.a=1;

this.b=2;//a和b只能在Protected中調用

}

private void set(){

System.out.println(""+a+""+b+"\n");

}

protected void Print(){

this.set();//只能在這里用;

}

}

package Protected;

import Main.*;

public class Protected extends Protectedfather{

public Protected(){

super();//在另一個包中調用里父類中的protect構造方法

super.a=12;//調用父類的protect變量

}

}

Public:

如果類中的方法或者變量是public,那么就可以在別的類中調用,沒有限制(用在誇包)。A帶掉用別的包中的B類

package Main;

import Public.*;

public class Main {

public static void main(String args[]){

int a;

Public p=new Public();//調用public類中的public方法

a=p.a;//調用Public類中的public變量

p.set();

}

}

package Public;

public class Public {

public int a=12;

public void set (){

System.out.println("OK\n");

}

}

總結表格::

同一類

同包

不同包

子類

非子類

子類

非子類

Private

友好型

Protected

Public

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值