Java基础——关于访问权限的一道例题
一、回顾访问修饰符
==public:被它修饰的类,属性,方法,不仅可以跨类访问,而且可以跨包(package)访问
==private:可以修饰数据成员,构造方法,方法,不能修饰类,被它修饰的成员只能被本类自已访问,不能被子类访问
==protected:可以修饰数据成员,构造方法,方法,不能修饰类,能被本类,同包,或其子类成员访问(如果是子类,可以跨包)
==缺省:不加任何修饰符,只允许同一个包中进行访问
二、代码实例
package dog;
public class Dog {
// 公共的
public void publicMethod() {
System.out.println("publicMethod");
}
// 保护的
protected void protectedMethod() { // 被声明为protected的方法,可以被子类继承
System.out.println("protectedMethod");
}
// 默认的
void defaultMethod() {
System.out.println("defaultMethod");
}
// 私有的
private void privateMethod() { // 这个方法只可以在类内部被调用
System.out.println("privateMethod");
}
}
class T {
public static void main(String[] args) {
Dog d = new Dog(); // 可以访问
d.publicMethod(); // 可以访问
d.protectedMethod(); // 可以访问
d.defaultMethod(); // 可以访问
// d.privateMethod(); //私有的方法,不能被在类外访问
}
}
//在上例的基础上,演示跨包的情况
package cat; //和dog 包不在一起 import dog.Dog; public class Cat {
void test() {
Dog dog = new Dog(); dog.publicMethod(); // 可以
// dog.protectedMethod(); 不可以
// dog.privateMethod(); 不可以
// dog.defaultMethod(); 不可以
}
}
//在前例的基础上,演示子类中的访问情况
class NiceDog extends Dog {
void test() {
Dog dog = new Dog();
dog.publicMethod(); // 可以
protectedMethod(); // 被protected修饰的成员,可以被继承过来,并这样调用
// dog.protectedMethod(); 不可以
// dog.privateMethod(); 不可以
// dog.defaultMethod(); 不可以 }
}
Java基础——关于访问权限的一道例题的更多相关文章
- Java基础之访问权限控制
Java基础之访问权限控制 四种访问权限 Java中类与成员的访问权限共有四种,其中三种有访问权限修饰词:public,protected,private. Public:权限最大,允许所有类访问,但 ...
- java基础(八)-----深入解析java四种访问权限
Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4种访问权限并不是任何时候都可以使用.下面整理一下,在什么情况下,有哪些访问权限可以允许选择. 一.访问权限简介 访问权限控制: 指的是本类 ...
- java基础(七) java四种访问权限
引言 Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4种访问权限并不是任何时候都可以使用.下面整理一下,在什么情况下,有哪些访问权限可以允许选择. 一.访问权限简介 访问权限控制: ...
- Java成员的访问权限控制
Java中的访问权限控制包含两个部分: 类的访问权限控制 类成员的访问权限控制 对类来说,访问权限控制修饰符可以是public或者无修饰符(默认的包访问权限): 对于类成员来说,访问权限控制修饰符可以 ...
- 浅析Java中的访问权限控制
浅析Java中的访问权限控制 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下为何需要访问权限控制.考虑两个场景: 场景1:工程师A编写了一个类ClassA,但 ...
- Java基础——protected访问修饰符探讨
Java基础——protected访问修饰符探讨 根据官方说法:(如图) protected修饰符是可以修饰其他包中的子孙类的,但是我做了个实验,结果发现了一个有趣的现象! 具体请往下看: packa ...
- (转)浅析Java中的访问权限控制
原文地址: http://www.cnblogs.com/dolphin0520/p/3734915.html 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下 ...
- java类的访问权限
1.解析 Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符. private: Java语言中对访问权限限制的最窄的修 ...
- Java中的访问权限
Java中有四种访问权限,从大到小依次是:public –> protected –> default(friendly) –> private. 简单说明下: public 作用域 ...
随机推荐
- bzoj3939 【USACO 2015 FEB GOLD 】cow hopscotch
Description 就像人类喜欢玩"跳房子"的游戏,农民约翰的奶牛已经发明了该游戏的一个变种自己玩.由于笨拙的动物体重近一吨打,牛跳房子几乎总是以灾难告终,但这是没有阻止奶牛几 ...
- ASP.NET WebForm
ASP.NET WEBFORM Aspx aspx文件(新建项→Web窗体) .在aspx中可以使用<%=表达式%>的方式在页面的当前位置输出表达式(表达式至少要用protected级别, ...
- 如何解决 chrome 58 版本更新导致的 fiddler https 抓包不可用问题
注意!如果该方法不生效,请先卸载原有 fiddler 后再进行新版本 fiddler 安装步骤即可. chrome 于(上周?上上周?)推送了chrome 58 版本的更新,这次更新中直接去掉了证书未 ...
- How to image a CD/DVD ROM and generate hash value
Someone ask me how to image a CD/DVD ROM and generate hash value in the same time. A small tool call ...
- Android开发之布局--RelativeLayout布局
RelativeLayout 相对布局 true或false属性 Layout_centerHorizontal 当控件位于父控件的横向中间位置 Layout_centerVertical 当 ...
- Java集合框架类
java集合框架类图 Collection接口(List.Set.Queue.Stack):
- (window,parent,opener,top).location.reload方法汇总
今天在火狐浏览器上碰到个bug,调用parent.location.reload()时只刷新子页面,没有整个浏览器刷新,谷歌上没有问题,网上搜了一下 改成parent.location.reload( ...
- SQL Server on Red Hat Enterprise Linux——RHEL上的SQL Server(全截图)
本文从零开始一步一步介绍如何在Red Hat Enterprise Linux上搭建SQL Server 2017,包括安装系统.安装SQL等相关步骤和方法(仅供测试学习之用,基础篇). 一. 创 ...
- servlet的过滤器的doFilter()
doFilter中的chain.doFilter(res,req);//Filter 只是链式处理,请求依然转发到目的地址 意思就说过滤器只是一个关口,如果符合条件的请求会被过滤器拦截下来,然后进行处 ...
- 四、 添加模型Model(ASP.NET MVC5 系列)
在这一章节中我们将添加一些classes类来管理数据库中的movies.这些classes类就是ASP.NET MVC应用程序中的"model". 我们将用.NET框架中的数据访问 ...