java访问权限friendly_java访问权限修饰符public protected friendly private用法总结

本文详细解释了Java中的访问权限修饰符,包括private、protected、friendly(默认)和public,以及它们在类和继承关系中的应用,强调了包的概念和不同修饰符的继承规则。通过实例演示,展示了如何正确地在类间共享和保护数据。
摘要由CSDN通过智能技术生成

eg:class A

{

protected int weight ;

protected int f( int a,int b )

{

// 方法体

}

}

假设B与A在同一个包中,则

class B

{

void g()

{

A a=new A();

A.weight=100;//合法

A.f(3,4); //合法

}

}

特别说明:什么是在同一个包中?

答:用package打包在一起的class ,叫在同一个包中。(不明白,举个例子)

eg:在JDK的src\java\io中,你会看到许多java类,第一句源代码都是package java.io;

没有使用package打包的,在同一目录下的类也会被视做同一个包。

friendly:在这种情况下中,同protected。区别在第二和第三种情况中。

eg: class A

{

int weight ;

int f( int a,int b )

{

// 方法体

}

}

假设B与A在同一个包中,则

class B

{

void g()

{

A a=new A();

A.weight=100;//合法

A.f(3,4); //合法

}

}

private: 只能在本类中访问。

eg: class Test

{

private int money;

Test()

{

money=2000;

}

private int getMoney()

{

return money;

}

public static void main(String args[])

{

Test te=new Test();

te.money=3000; //合法

int m=te.getMoney(); //合法

System.out.println("money="+m);

}

}

PS: 实际上,把重要的数据修饰为private,然后写一个public的函数访问它,正好体现了OOP的封装特性,是OOP安全性的体现。

二  访问权限修饰符修饰类

1,不能用protected和private修饰类。

2,用friendly修饰的类叫友好类,在另外一个类中使用友好类创建对象时,要保证它们在同一包中。

三   访问权限修饰符与继承

这里的访问修饰符指的是修饰成员变量和方法。可以分为两种情况:

1,子类与父类在同一包中

此时只有声明为private的变量与方法不能被继承(访问)。

eg:

class Father

{

private int money ;

int weight=100;

}

class Son extends Father

{

viod f()

{

money=10000;// 非法

weight=100; // 合法

}

}

2,子类与父类不在同一包中

此时private与friendly均不能被继承(访问), protected与public可以。

eg:

Father.java

package com.aaa

public class Father

{

int height ;

protected int money=120;

public int weight;

protected int getMoney()

{

return money;

}

void setMoney(int newMoney)

{

money=newMoney;

}

}

Son.java

package com.bbb

import com.aaa.Father;

public class Son extends Father

{

void f()

{

money=10000;//合法

//height=170;//非法,height为friendly修饰的变量

System.out.println(money);//输出结果是10000

//setMoney(300); //非法

int number=getMoney(); //合法

System.out.println(number);//输出结果是10000

}

public static void main(String args[])

{

Son sss=new Son();

sss.f();

}

}

所以,访问权限修饰符权限从高到低排列是public  ,protected  ,friendly, private。

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2009-02-26 11:24

浏览 3695

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值