java 修饰符的作用一(public protected default private 组)
1.public protected default private 组
public 权限最大,同类,同包,不同包,同包子类父类之间,不同包子类父类之间都可以访问。
java 默认的权限是default,即friendly(注:friendly 在java中没有,是c的说法。) 同类,同包,同包子类父类都可以访问。
protected受保护的,同类,同包,同包子类父类,不同包子类父类都可以访问
private 私有的权限最小,同类可以访问。
图如下:
位置 private 默认 protected public
同一个类 是 是 是 是
同一个包内的类 否 是 是 是
不同包内的子类 否 否 是 是
不同包并且不是子类 否 否 否 是
public 访问权限最高,不论是不是同一个包或是否是子类 都可以访问
protected 其次只有是不同包且不是子类的无法访问外,其它均可
默认级别 次之,要求只能是同一个包中的类才能访问
private 只能是同一个类才能访问
这些修饰符可以修饰方法或者属性,但是类只能用public 或者不写.
实例:
package test;
//访问修饰符的使用
public class PublicClass{
public String publicVariable = "publicVariable" ;
private String privateVar = "private var";
protected String protectedVar ="protected var";
String defaultVar="defaultVar";
public void showPublic(){
System.out.println("showPublic method!");
}
public void showProtected(){
System.out.println("Show protected method!");
}
void showDefault(){
System.out.println("Show default method!");
}
private void showPrivate(){
System.out.println("Nobody will access!");
}
}
Java代码
package test;
//import test.PublicClass;
class TestPublic{
private String var =" private variable in class-Test!";
public static void main(String args[]){
TestPublict = new TestPublic();
PublicClass pClass = new PublicClass();
//另外一个类中的共有属性和方法是可以被外界所访问的
System.out.println("可以访问到的资源属性:"+pClass.publicVariable);//可访问
pClass.showPublic(); // 可访问
//以下两条编译错误,在另外一个类中的私有方法是访问不到的
//System.out.println("可以访问到的资源属性:"+pClass.privateVariable ); //不能访问
// pClass.showPrivate(); //不能访问
//私有变量自己可以访问
System.out.println("私有变量自己可以访问"+t.var);
//protected 成员可以被该类的成员和子类的成员访问。
// 还可以被同一个包中内的其他类成员访问
System.out.println("可以访问到的资源属性:"+pClass.protectedVar);//可访问
pClass.showProtected();//可访问
System.out.println("可以访问到的资源属性:"+pClass.defaultVar);//可访问
pClass.showDefault();//可访问
}
}
java 修饰符的作用一(public protected default private 组)的更多相关文章
- java四种权限修饰符(public > protected > (default) > private)
权限修饰符在哪里可以访问 (default) : 表示什么权限修饰符都不写 位置 public protected (default) private 同一个类 yes yes yes yes 同一个 ...
- 【java基础】(1)Java的权限修饰符(public,protected,default,private)
访问权限修饰符权限从高到低排列是public ,protected ,default, private. 一.根据“是否是同包”.“是否是子类”分为4中情况+本类 5种情况 二.把 同包中的子类 ...
- 详解Java中的访问控制修饰符(public, protected, default, private)
Java中的访问控制修饰符已经困惑笔者多时,其中较复杂的情况一直不能理解透彻.今天下定决心,系统.全面地研究Java中的访问控制修饰符的所有方面,并整理成这篇文章,希望有同样疑惑的读者读完后能有所收获 ...
- java 访问修饰符:public protected default private
- public protected default private
简单来说,如果让一个变量或者方法,只想让自己类中的访问,那么就将它们设置成private 如果你想让一个变量或者方法,本包中的类可以访问,而且子类也可访问,但是包外的缺不想让他访问.就设置成prote ...
- java修饰符的权限范围
java有四个修饰符,分别为public/protected/default/private,这四个修饰符的权限范围是不一样的. public修饰的成员,在同类.同包.子类(继承自本类).其他包中都可 ...
- java修饰符public final static abstract transient
JAVA 修饰符public final static abstract transient 关键字: public final static abstract ... 1.public prot ...
- Java修饰符 public、protected、default、private
2.访问修饰符public,private,protected,以及不写(默认)时的区别?答: 修饰符 当前类 同 包 子 类 其他包 public √ √ √ √ protected √ √ √ × ...
- java修饰符 protect public protected
1.private修饰词,表示成员是私有的,只有自身可以访问: 2.protected,表示受保护权限,体现在继承,即子类可以访问父类受保护成员(子类是可以访问父类的带protected修饰符的成员的 ...
随机推荐
- CSU1315:全场最水题之陈兴老师与比赛
Description 大家都知道ACM比赛罚时很重要.比如说你做A题要10分钟,B题要15分钟,如果先做A题再做B题,那么在ranking上的时间就是10 + (10)+ 15 = 35.如果先做B ...
- css考核点整理(十)-响应式开发经验,响应式页面的三种核心技术是什么
响应式开发经验,响应式页面的三种核心技术是什么
- Junit简介和常用API
测试几个的概念 白盒测试——把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人员是公开的. 回归测试——软件或环境的修复或更正后的“再测试”,自动测试工具对这类测试尤其有用. 单元测试 ...
- CGLIB学习笔记
0 概述 CGLIB基于ASM实现.提供比反射更为强大的动态特性.使用CGLIB可以非常方便的实现的动态代理. 0.1 CGLIB包结构 net.sf.cglib.core 底层字节码处理类. ...
- day01-day04总结- Python 数据类型及其用法
Python 数据类型及其用法: 本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点 ...
- linux 简单命令
很久没有接触linux了,很多命令也忘记了,现在自己独立安装一个linux,独立安装LAMP,让自己记录下来这段. 怎么进入命令行 init 3, 回到桌面 init 5在不是root用户情况下,切换 ...
- WPF RichTextBox滚动条自动滚动实例、文本自动滚动实例
说明:1.后台代码添加测试 数据 2.使用 richTextBox.ScrollToVerticalOffset()方法,滚动竖直方向滚动条位置 3.使用定时器DispatcherTimer,修改页面 ...
- 自己动手写控件(模仿mvc htmlhelper的类)
自定义helper类,要求命名空间在 System.Web.Mvc之下,要求,静态类,静态方法,特殊生成对应html的返回字段, 传递Htmlhleper,返回特定类型 返回值是MvcHtmlStri ...
- webViewDidFinishLoad 执行多次的问题
在做网页加载进度条的时候,发现UIWebViewDelegate中webViewDidFinishLoad方法会执行多次: - (void)webViewDidStartLoad:(UIWebView ...
- GCD介绍(二): 多核心的性能
GCD介绍(二): 多核心的性能 概念 为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系).在低层,GCD全局dispatc ...