访问权限定义:

1、访问权限指:对象是否可以通过 “ . ” 运算符操作自己的变量 或 通过 “ . ” 运算符调用类中的方法;

2、访问权限修饰符:private、public、protected;

3、private、public、protected 都是Java关键字,用于修饰 成员变量 方法

Java访问权限之 private (私有的):

1、用 private 关键字修饰的 成员变量 和 方法 称为 私有变量 和 私有方法 ;

2、当类在同一个包中时,私有变量 和 私有方法 只能在自己类中调用,另外一个类中是不能调用的 ;

分别编写两个类:一个测试类 Visit_Power_Test ,一个 方法设计类 Visit_Power_Private ;

如下代码演示:

//测试类 Visit_Power_Test
public class Visit_Power_Test {public static void main(String[] args) {//创建对象Visit_Power vp = new Visit_Power();vp.variable = 11;  //错误:The field Visit_Power.variable is not visiblevp.method(1,10);   //错误:The method method(int, int) from the type  Visit_Power is not visible}}
//方法设计类 Visit_Power_Private
public class Visit_Power_Private {//创建 private 成员变量 和 方法private int variable;private int method(int x,int y){this.variable = x + y;return this.variable;}}

在以上代码中,vp.variable  = 11 ;  和 vp.method(1,10) ; 是错误的,因为在设计类中,他们都是 private 私有类型的;


测试类 调用 设计类 中的方法对 private 成员变量进行操作:

用以上两个类进行修改:一个测试类 Visit_Power_Test ,一个 方法设计类 Visit_Power_Private ;

如下代码演示:

//测试类 Visit_Power_Test
public class Visit_Power_Test {public static void main(String[] args) {//创建对象Visit_Power vp = new Visit_Power();vp.setmethod(1, 10);System.out.println("private成员变量的值为:"+vp.getmethod());}
}
//方法设计类 Visit_Power_Private
public class Visit_Power_Private {//通过方法操作 private 成员变量private int variable;public void setmethod(int x,int y){variable = x + y;}public int getmethod(){return variable;}
}

在以上代码中,设计类中的 setmethod 方法对 private 成员变量 variable 进行操作;

代码输出结果:

private成员变量的值为:11

需要注意的是:

在不同包中的类, private 类型的 成员变量 和 方法 是不可以调用的 ;


Java访问权限之 public (共有的):

1、用 public 关键字修饰的 成员变量 和 方法 称为 共有变量 和 共有方法 ;

2、当类在同一个包中时,共有变量 和 共有方法 不仅可以在自己类中调用,也可以在另外一个类中调用 ;

分别编写两个类:一个测试类 Visit_Power_Test ,一个 方法设计类 Visit_Power_Public ;

如下代码演示:

//测试类 Visit_Power_Test
public class Visit_Power_Test {public static void main(String[] args) {//在同一个包中,测试 public :创建对象   Visit_Power_Public vpp = new Visit_Power_Public();vpp.variable = 11;vpp.setmethod(11, 100);System.out.println("public成员变量variable的值为:"+vpp.variable);System.out.println("public成员变量cases的值为:"+vpp.getmethod());}
}
//方法设计类 Visit_Power_Public
public class Visit_Power_Public {//创建 public 成员变量 和 方法public int variable,cases;public void setmethod(int x,int y){cases = x + y;}public int getmethod(){return cases;}
}

在以上代码中,设计类中的 成员变量 和 方法 都是 public 共有类型的,所以在 测试类 中可以直接调用;

代码输出结果:

public成员变量variable的值为:11
public成员变量cases的值为:111

需要注意的是:

当类不在同一个包中时, public类型的 成员变量 和 方法 也是可以调用的 ;

例如:

以上两个类中,分别将:测试类 Visit_Power_Test  和 方法设计类 Visit_Power_Public ;放在不同的两个包中:

测试类 Visit_Power_Test 在包 package Visit_Test_One;

方法设计类 Visit_Power_Public 在包 package Visit_Test_Two;

在 测试类 中也是可以对 方法设计类 中 成员变量和方法 进行调用的;

不过需要在测试类中通过 import 语句引入方法设计类:import  Visit_Test_Two . Visit_Power_Public;


Java访问权限之 protected(受保护的) :

1、用 protected 关键字修饰的 成员变量 和 方法 称为 受保护的变量 和 受保护的方法 ;

2、当类在同一个包中时受保护的变量 和 受保护的方法 不仅可以在自己类中调用,也可以在另外一个类中调用 ;

分别编写两个类:一个测试类 Visit_Power_Test ,一个 方法设计类 Visit_Power_Protected ;

如下代码演示:

//测试类 Visit_Power_Test
public class Visit_Power_Test {public static void main(String[] args) {//同一个包中,测试 protected :创建对象   Visit_Power_Protected vppd = new Visit_Power_Protected();vppd.variable = 111;vppd.setmethod(111, 1000);System.out.println("public成员变量variable的值为:"+vppd.variable);System.out.println("public成员变量cases的值为:"+vppd.getmethod());}
}
//方法设计类 Visit_Power_Protected
public class Visit_Power_Protected {//创建 Protected 成员变量 和 方法protected int variable,cases;protected void setmethod(int x,int y){cases = x + y;}protected int getmethod(){return cases;}
}

在以上代码中,设计类中的 成员变量 和 方法 都是 protected 受保护类型的,所以在 测试类 中可以直接调用;

代码输出结果:

public成员变量variable的值为:111
public成员变量cases的值为:1111

需要注意的是:

当类不在同一个包中时, protected类型的 成员变量 和 方法 是不可以相互调用的 ;

例如:

以上两个类中,分别将:测试类 Visit_Power_Test  和 方法设计类 Visit_Power_Protected ;放在不同的两个包中;

则程序报错:The field Visit_Power_Protected.variable is not visible


Java访问权限之 友好的 (默认权限):

1、不用 private、public、protected 关键字修饰的 成员变量 和 方法 称为 友好变量 和 友好方法 ;

2、当类在同一个包中时,友好变量 和 友好方法 不仅可以在自己类中调用,也可以在另外一个类中调用 ;

分别编写两个类:一个测试类 Visit_Power_Test ,一个 方法设计类 Visit_Power_Friendly;

如下代码演示:

//测试类 Visit_Power_Test
public class Visit_Power_Test {public static void main(String[] args) {//同一个包中,测试 protected :创建对象   Visit_Power_Protected vppd = new Visit_Power_Protected();vppd.variable = 111;vppd.setmethod(111, 1000);System.out.println("public成员变量variable的值为:"+vppd.variable);System.out.println("public成员变量cases的值为:"+vppd.getmethod());}
}
//方法设计类 Visit_Power_Friendly
public class Visit_Power_Friendly {//创建 友好的 成员变量 和 方法int variable,cases;void setmethod(int x, int y) {cases = x + y;}int getmethod() {return cases;}
}

在以上代码中,设计类中的 成员变量 和 方法 都是 友好类型的,所以在 测试类 中可以直接调用;

代码输出结果:

public成员变量variable的值为:1111
public成员变量cases的值为:111111

需要注意的是:

当类不在同一个包中时, 好友 类型的 成员变量 和 方法 是不可以调用的 ;

例如:

以上两个类中,分别将:测试类 Visit_Power_Test  和 方法设计类 Visit_Power_Protected ;放在不同的两个包中;

则程序报错:The method setmethod(int, int) from the type Visit_Power_Friendlys is not visible


public类与友好类的区分:

1、类声明时,在 关键字 class 前面加上 public 关键字,则该类就是一个 public 类;否则为 友好类;

例如:

//public类
public class TestPublic(){.....
}//友好类
class Test(){.....
}

需要注意的是:

1、当某个类中使用友好类创建对象时,要保证他们在同一个包中;

2、不能使用 private、protected 关键字修饰类 ;

3、访问权限修饰符按访问权限从高到低的排序是:public、protected、友好的、private ;

Java访问权限(public、protected、友好的、private)定义相关推荐

  1. Java访问权限之 protected详解

    摘要:     对于类的成员(包括成员变量和成员方法)而言,其能否被其他类所访问,取决于该成员的修饰词:而对于一个类而言,其能否被其他类所访问,也取决于该类的修饰词.在Java中,类成员访问权限修饰词 ...

  2. java访问权限 public private protected

    作者:yan 1. Java中的访问控制 表1-1 可见/访问性 在同一类中 同一包中 不同包中  同一包子类中  不同包子类中   public  yes  yes  yes  yes  yes   ...

  3. 类的访问权限-public、private、protected

    访问权限 protected(保护)访问权限 为什么要使用protected访问权限? 子类的成员函数中,不能直接访问父类的private成员,已经这些成员已经被继承下来了,但是却不能访问. 只有通过 ...

  4. Java关键字系列(public,protected,private)

    Java关键字系列(public,protected,private) public.protected和private做为java访问权限修饰词而使用. 首先要明白,java中的每个定义(定义类.字 ...

  5. java package public_Java中的public,protected,package-private和private有...

    The official tutorial可能对你有用. ______________________________________________________________ | │ Clas ...

  6. 总结Java访问权限

    Java语言中有四种访问修饰符:friendly.private.public和protected. private:成员变量和方法都只能在定义它的类中被访问,其他类都不能访问: public :能被 ...

  7. [THINKING IN JAVA]访问权限控制

    6 访问权限控制 6.1 包:库单元 package.import.import *.import static: 修改classpath环境变量可以将自己写的类库添加至环境变量并在任何java程序中 ...

  8. java权限控制是什么_论Java访问权限控制的重要性

    人在什么面前最容易失去抵抗力? 欢迎工作一到八年的Java工程师朋友们加入Java高级交流:854630135 本群提供免费的学习指导 架构资料 以及免费的解答 不懂得问题都可以在本群提出来 之后还会 ...

  9. Java 访问权限 内部类总结

    在Java中,可以将一个类定义在另一个类里面或者一个方法里边,这样的类称为内部类,广泛意义上的内部类一般包括四种:成员内部类,局部内部类,匿名内部类,静态内部类 . 1.成员内部类 (1)该类像是外部 ...

最新文章

  1. 从外部导入django模块
  2. OCP 042全真试题讲解
  3. matlab变量名不同循环,Matlab for 多个变量循环能不能这样啊 ,求教高手!!!!...
  4. .Net Core建站(2):EF Core+CodeFirst数据库迁移
  5. 基于Rx-netty和Karyon2的云就绪微服务
  6. CCIE-LAB-第十篇-BGP-VPNV4+VNPN6+MPLS+关闭TTL
  7. 通过curl获取网页访问时间
  8. 移动端与PC端页面布局区别
  9. 驱动程序和应用程序的区别_复仇者黑客组织—教你写第一个Linux设备驱动程序...
  10. vbs整人代码蓝屏_求大量VBS整人代码.
  11. 浏览器如何知道是哪个html,判断URL请求是从WML浏览器来的还是HTML浏览器来的
  12. 草料二维码生成怎么用php代码实现
  13. 2022大淘宝技术工程师推荐书单
  14. 如何正确获取支付宝网页支付的APPID、私钥、支付宝公钥
  15. Infoq专访:Maven中文用户组创始人许晓斌
  16. 计算机中1 tb的硬盘容量大小等于,1TB等于多少G1TB是多大
  17. Django使用supervisor管理celery和uwsgi实践记录 uwsgi BACKOFF Exited too quickly (process log may have details)
  18. 华为运营商级路由器配置示例 | 配置BGP VPLS和LDP VPLS interworking示例
  19. 豆瓣高分JAVA书籍,值得收藏
  20. Kafka安装与使用

热门文章

  1. 查看锐捷poe交换机供电状态_如何查看思科交换机的端口状态及配置信息
  2. 助力企业设备运转正常,防患于未然
  3. 【2】web安全入门篇-了解web
  4. java调用druid_Druid监控分布式实现过程解析
  5. python可变和不可变
  6. 【SVN】命令行忽略不必要的文件和文件夹
  7. matlab读取ug,matlab文件读取相关操作
  8. 雅虎yql_如何删除您的Yahoo Mail帐户
  9. 北京林业大学C语言测试,北京林业大学c语言题库上机题一
  10. SQL server中的类似Java的三目表达式及游标使用