关于包package、访问权限

1、package

(1)一个包中的类,要访问另外一个包中的类,那么另外一个包中的类必须是public类型的,如果没有import语句,那么就要在类的前面加上该类所在的包.

(2)Cmd命令行里敲入:javac -d . xx.java用于生成包

2、访问权限(这个访问权限是对方法或者变量而言)

  private default protected public
同一个类
同一个包中的类  
子类(包括其他包中的子类)    
其他包中的类      

PS:注意类的访问权限和方法或者变量的访问权限区别 见5)

1)private修饰词,表示成员是私有的,只有自身可以访问;   
2)protected,表示受保护权限,体现在继承,即子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员。   
3)无修饰词(默认),表示包访问权限(friendly, java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++ ),同一个包内可以访问,访问权限是包级访问权限;  
4)public修饰词,表示成员是公开的,所有其他类都可以访问;
5)类的访问限制,仅有public和包访问权限;   
   a、一个Java文件只能有一个public类  
   b、public类的名称必须同Java文件名完全一致
   c、若Java文件中没有public类,则文件名可以任意
6)、final关键字
   a、final数据成员,使用前总是被初始化并被强制要求在定义处或构造器中赋值;一旦赋值后,对于基本类型其值会恒定不变,而对于对象引用会始终指向赋值的对象,但指向对象自身是可以修改的;  
   b、final参数,对于基本类型表示无法改变参数的值,对于对象引用表示无法改变引用所指的对象;
   c、final方法,保证方法不会在继承后修改和重载;所有的private方法都隐含式final的;Java中使用动态绑定(后期绑定)实现多态,除了static和final方法是使用前期绑定的;
     d、final类,表示该类不可被继承。 

 

3、实例

 

package org.it315;
class Test
{
 public int devide(int x,int y) throws Exception
 {
  if(y<0)
    throw new DevideByMinusException("deviser is"+ y);
    int result = x/y;
    return result;
 }
}

 

class DevideByMinusException extends Exception
{
 public DevideByMinusException(String msg)
 {
  super(msg);
 }
}
class TestException
{
 public static void main(String args[])
 {
  try
  {
   System.out.println(new Test().devide(3,0));
  }
  catch(Exception e)
  {
   System.out.println(e.getMessage());
  }
  finally
  {
   System.out.println("finally");
  }
  System.out.println("program is running here");
 }
}

 

posted @ 2012-11-02 17:53  笑rpp  阅读(2941)  评论(0编辑  收藏  举报