Java基础知识:关于访问权限的一道例题

栏目: Java · 发布时间: 7年前

内容简介: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(); 不可以

}

}

本文永久更新链接地址 http://www.linuxidc.com/Linux/2017-06/144870.htm


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

面向对象葵花宝典:思想、技巧与实践

面向对象葵花宝典:思想、技巧与实践

李运华 编著 / 电子工业出版社 / 2015-12 / 69

《面向对象葵花宝典:思想、技巧与实践》系统地讲述了面向对象技术的相关内容,包括面向对象的基本概念、面向对象开发的流程、面向对象的各种技巧,以及如何应用面向对象思想进行架构设计。在讲述相关知识或技术的时候,除了从“是什么”这个角度进行介绍外,更加着重于从“为什么”和“如何用”这两个角度进行剖析,力争让读者做到“知其然,并知其所以然”,从而达到在实践中既能正确又能优秀地应用面向对象的相关技术和技巧。 ......一起来看看 《面向对象葵花宝典:思想、技巧与实践》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

SHA 加密
SHA 加密

SHA 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具