Java访问权限(public、protected、友好的、private)定义
访问权限定义:
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)定义相关推荐
- Java访问权限之 protected详解
摘要: 对于类的成员(包括成员变量和成员方法)而言,其能否被其他类所访问,取决于该成员的修饰词:而对于一个类而言,其能否被其他类所访问,也取决于该类的修饰词.在Java中,类成员访问权限修饰词 ...
- java访问权限 public private protected
作者:yan 1. Java中的访问控制 表1-1 可见/访问性 在同一类中 同一包中 不同包中 同一包子类中 不同包子类中 public yes yes yes yes yes ...
- 类的访问权限-public、private、protected
访问权限 protected(保护)访问权限 为什么要使用protected访问权限? 子类的成员函数中,不能直接访问父类的private成员,已经这些成员已经被继承下来了,但是却不能访问. 只有通过 ...
- Java关键字系列(public,protected,private)
Java关键字系列(public,protected,private) public.protected和private做为java访问权限修饰词而使用. 首先要明白,java中的每个定义(定义类.字 ...
- java package public_Java中的public,protected,package-private和private有...
The official tutorial可能对你有用. ______________________________________________________________ | │ Clas ...
- 总结Java访问权限
Java语言中有四种访问修饰符:friendly.private.public和protected. private:成员变量和方法都只能在定义它的类中被访问,其他类都不能访问: public :能被 ...
- [THINKING IN JAVA]访问权限控制
6 访问权限控制 6.1 包:库单元 package.import.import *.import static: 修改classpath环境变量可以将自己写的类库添加至环境变量并在任何java程序中 ...
- java权限控制是什么_论Java访问权限控制的重要性
人在什么面前最容易失去抵抗力? 欢迎工作一到八年的Java工程师朋友们加入Java高级交流:854630135 本群提供免费的学习指导 架构资料 以及免费的解答 不懂得问题都可以在本群提出来 之后还会 ...
- Java 访问权限 内部类总结
在Java中,可以将一个类定义在另一个类里面或者一个方法里边,这样的类称为内部类,广泛意义上的内部类一般包括四种:成员内部类,局部内部类,匿名内部类,静态内部类 . 1.成员内部类 (1)该类像是外部 ...
最新文章
- 从外部导入django模块
- OCP 042全真试题讲解
- matlab变量名不同循环,Matlab for 多个变量循环能不能这样啊 ,求教高手!!!!...
- .Net Core建站(2):EF Core+CodeFirst数据库迁移
- 基于Rx-netty和Karyon2的云就绪微服务
- CCIE-LAB-第十篇-BGP-VPNV4+VNPN6+MPLS+关闭TTL
- 通过curl获取网页访问时间
- 移动端与PC端页面布局区别
- 驱动程序和应用程序的区别_复仇者黑客组织—教你写第一个Linux设备驱动程序...
- vbs整人代码蓝屏_求大量VBS整人代码.
- 浏览器如何知道是哪个html,判断URL请求是从WML浏览器来的还是HTML浏览器来的
- 草料二维码生成怎么用php代码实现
- 2022大淘宝技术工程师推荐书单
- 如何正确获取支付宝网页支付的APPID、私钥、支付宝公钥
- Infoq专访:Maven中文用户组创始人许晓斌
- 计算机中1 tb的硬盘容量大小等于,1TB等于多少G1TB是多大
- Django使用supervisor管理celery和uwsgi实践记录 uwsgi BACKOFF Exited too quickly (process log may have details)
- 华为运营商级路由器配置示例 | 配置BGP VPLS和LDP VPLS interworking示例
- 豆瓣高分JAVA书籍,值得收藏
- Kafka安装与使用