访问权限及继承
·访问权限
在java语言中有四种访问权限的等级控制,从权限的大到小顺序依次是:public、protected、无访问权限的(有些书上可成default而有些书上双说是friendly)、private。这些访问权限等级的出现是为了使类库开发人员向客户端程序员指明哪些可以用,哪些不可以用。
各等级的访问控制等级
权限等级
|
访问范围
|
Public
|
所有包所有地方都可以访问
|
Protected
|
同包以及子类可以访问
|
Friendly(default)
|
同包可以访问
|
Private
|
除了当前类任何地方都不可以访问
|
在这里说到了“包”和“子类”,下面就来简单说说什么是包以及子类又指的是什么。
·自定义包
包出现的目的是为了避免在同一个目录出现两个相同的文件,因为在进行程序开发的时候往往不是一个人就能完成的,而一般情况下都是一个团队进行同时开发,每个人在开发的时候都是在各自的电脑进行开发的,但开发到一段时间后就会进行一次汇总,在汇总时都会把他们开发的代码放到同一目录下(为了便于管理),但他们彼此定义的类大家都不清楚,此时如果开发人员甲定义了一个名为:Test.java的类,而开发人员乙也定义了一个名为:Test.java的类,这样放在同一目录下时就会出现冲突,为了避免这一问题“包”就这样诞生了。包是通过package关键字来定义的,定义的规则是把自己的域名反过来写的,假如你有一个域名叫做:www.space.org。那么你就可以把你的包名命名成:org.space.在这个.后面就可以再跟上一些其它的来作为子包,同时也规定了包名全部用小写的。
/**
* package这一行都是放在第一行非注释语句之前的
*/
package org.zsl.third;
public class Test {
public static void main(String[] args) {
System.out.println("packageTest");
}
}
|
·引用包
定义好包之后当然都是给人使用的,打开API(application programming inteface应用程序接口)可以发现里面有很多的包,包里有很多接口和类,比如我们现在要使用java.util包里的Date类来创建当前日期,该怎样使用呢:
//导入包是通过import来进行导入的
//如果想导入某个包中的所有类,可以通过*来导入
//这里如果想导入java.util包在的所有类,可用:
//import java.util.*;
import java.util.Calendar;
import java.util.Date;
public class ImportTest {
public static void main(String[] args) {
Date date = new Date();
//~Sun Mar 28 00:20:52 CST 2010 这样的日期我们看起来还是很吃力的
//如何能输入我们很容易就能看懂的日期呢,通过查看api文档发现:
//在Date这个类里有一些如:getYear()这样的方法,但是都被Deprecated(已过时)了
//点击进去发现:See Also:Calendar
System.out.println(date);
//下面就用Calendar来获取日期
//获取Calendar的引用
Calendar cal = Calendar.getInstance();
//把当前日期传进去
cal.setTime(new Date());
//如果对这个类和方法不太懂,请先查阅一下API文档中的java.util包中的相关类
int year = cal.get(Calendar.YEAR);
//月是从0开始的,所以要加1
int month = cal.get(Calendar.MONTH)+1;
int day = cal.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"年"+month+"月"+day+"日");
}
}
|
希望通过上面的例子不仅知道怎样导包,最重要的一点是要清楚怎样使用java的api文档,因为里面有很多现成的接口和类可以使用。
·继承
子类中的子顾名思义就是儿子的意思,有子必有父,有父子那就得说说它们之间的继承关系了。下面是一个有关继承的例子:
class Father {
int num = 0;
private int i = 9;
final int j = 8;
void print() {
System.out.println("Father");
}
private void fun() {
System.out.println("Father private");
}
int sum() {
//返回自加后的num
return ++num;
}
}
/**
* 通过extends来继承
* 这样Sun这个类就继承了Father类
* 说明Sun这个类就拥有了Father类的所有非private方法
* 和非private的属性
*/
class Sun extends Father {
}
public class ExtendTest {
public static void main(String[] args) {
//创建一个Sun的引用sun
Sun sun = new Sun();
Father fa = new Father();
System.out.println(fa.sum());
System.out.println(sun.sum());
//在Sun这个类中没有print()这个方法,但是也可以调用
//说明Sun这个类已经继承了父类Father的print方法
sun.print();
System.out.println(sun.num);
System.out.println(sun.sum());
//sun不能访问父类的private的fun()方法
//sun.fun();
//sun也不能访问父类中的private变量i
}
}
|
小结:子类通过extends来继承父类,继承父类之后的子类拥有父类所有的非private的方法和属性(就像现实生活中的人一样,儿子继承了父亲之后,就拥有了父亲的一些非私有的特性)。
相关的原word文件和源java文件在下面的附件中
分享到:
相关推荐
在Java中,有四种访问修饰符:public、protected、默认(包访问权限)和private。它们决定了类的成员对外可见的程度: 1. **public**:公共访问权限,无论在哪种情况下,其他类都可以直接访问。 2. **protected**:...
这个"文件及文件夹访问权限修改工具"就是专为此目的设计的,它允许用户自定义文件和目录的访问规则,防止未经授权的用户直接访问、修改或删除敏感资料。以下是关于这个工具及其相关知识点的详细说明: 1. **文件...
- 友元函数或友元类可以访问类的私有和保护成员,打破封装限制,提供特殊访问权限。 8. **继承的用途**: - 提高代码复用性:通过继承,可以避免重复编写相似的代码。 - 类的层次结构:构建复杂系统时,可以使用...
c++继承中的三种访问权限 pdf,一个简单总结,方便查阅。
**五、访问权限与继承** 在继承关系中,访问权限遵循以下规则: - 子类可以访问父类的所有`protected`和`public`成员。 - 子类在相同包内可以访问父类的默认(无修饰符)成员。 - `private`成员在子类中不可见,即使...
在Java编程语言中,访问权限控制是至关重要的一个部分,它确保了代码的封装性和安全性。本主题将深入探讨Java中的访问修饰符及其在源代码中的应用。 首先,Java提供了四种基本的访问权限控制修饰符: 1. **public*...
根据软考中的一道题,做的一个小小的例子,看完以后就会对继承关系有个清晰的了解,试题:在C++语言中,已知3个类O、P和Q,类O中定义了一个私有方法F1、一个公有方法F2和一个受保护的方法F3:类P和类Q是类O的派生类 ...
视频中可能会通过示例展示如何在继承关系中使用这些访问控制权限,并解释为何在特定情况下选择某种访问权限。例如,当我们希望子类能够重写父类的方法,但又不希望这个方法被外部类随意调用时,通常会将其设为...
然而,当涉及到类的继承时,实际上存在第四种访问权限的概念——即所谓的“superprivate”(超私有),虽然它并不是C++标准定义的一种访问修饰符,但在继承关系中通过不同的继承方式可以模拟出类似的效果。...
继承和接口和java访问权限修饰符总结 本文总结了 Java 中的继承、接口和访问权限修饰符的概念和使用。继承是 Java 中的一种机制,允许子类继承父类的属性和方法,並且可以对父类的方法进行重写或重载。动态绑定是指...
4. **权限继承**:在文件夹结构中,可以设置权限继承,子文件和子文件夹将自动继承父文件夹的权限,除非有明确的例外设定。 5. **权限冲突**:当多个用户或用户组对同一文件具有不同权限时,系统会处理权限冲突,...
本篇文章将详细探讨`@public`, `@package`, `@private`, 和 `@protected` 这四种访问权限修饰符。 1. **@public** `@public` 访问修饰符表示最高的访问级别,允许任何地方的代码访问该成员,无论是同一个类、子类...
- **权限继承**:子文件夹和文件会继承父文件夹的权限,但也可以单独进行调整。 - **权限冲突**:当共享权限和NTFS权限不一致时,通常以更严格的权限为准。 - **权限策略**:根据组织的安全政策和用户角色设定权限,...
在计算机系统中,文件夹访问权限设置是一项至关重要的安全措施,它允许系统管理员或用户控制谁可以访问特定的文件夹,以及他们可以进行何种级别的操作。这个过程涉及到权限的分配,包括读取、写入、执行等,以保护...
这是因为 NTFS 权限具有默认的权限继承功能。 第三个问题:局域网中有的电脑安装的是 Windows 98,有些安装的是 Windows XP,现在出现一个问题,Windows 98 的用户访问 Windows XP 的共享目录时,经常出现拒绝访问...
在Java Web开发中,访问权限控制是至关重要的一个环节,它确保了只有具有相应权限的用户才能访问特定的资源或执行特定的操作。本示例主要通过Filter技术来实现这一功能,这是一种常见且实用的方法。 首先,我们需要...
6. **访问权限与继承的关系**: - 子类可以访问或重写父类的protected和public成员,但不能访问父类的包私有成员。 - 子类不能访问父类的private成员,即使在同一个包内也不行。 7. **访问权限与多态**: - 多态...
- **public**:表示公共权限,具有最高级别的访问权限,无论是否在同一包内,任何地方都可以访问。 - **protected**:表示受保护的权限,在同一包内或者子类中可以访问,但不能被其他包中的非子类访问。 - **default...