您的位置:首页 > 运维架构 > Linux

Linux磁盘和文件系统管理--9.1作业

2015-09-12 18:27 567 查看
访问权限及继承
 
·访问权限
在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文件在下面的附件中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: