Java 包和权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 包和权限相关的知识,希望对你有一定的参考价值。

/*
包: 
java中的包就相当于windows文件夹。
包的作用:
1. 解决类名重复产生冲突的问题。
2. 便于软件版本的发布。
定义包的格式:
package 包名;
包名命名规范:包名全部小写。
包语句要注意的事项:
1. package语句必须位于java文件中中第一个语句。
2. 如果一个类加上了包语句,那么该类的完整类名就是: 包名.类名
3. 一个java文件只能有一个包语句。
问题:  每次编译的时候都需要自己创建一个文件夹,把对应的class文件存储到文件夹中。烦!!!
javac -d 指定类文件的存放路径   java源文件
*/
package aa;
class Demo1 
{
public static void main(String[] args) 
{
System.out.println("这个是Demo1的main方法...");
}
}


package bb;
class Demo1
{
public static void main(String[] args) 
{
System.out.println("这个是Demo2main方法..");
}
}


/*
有了包之后类与类之间的访问:
问题: 有了包之后类与类之间的访问每次都必须要写上包名!烦!!!!
解决方案: sunc提供导包语句让我们解决该问题。
导包语句作用:简化书写。 (误区: 把一个类导入到内存中)
导包语句的格式:
 import 包名.类名;   (导入xxx包中某个类)
导包语句要注意的细节:
 1. 一个java文件中可以出现多句导包语句。
 2. "*"是 导包语句的通配符。可以匹配任何的类名。不能匹配包名
 3. import aa.*; 是不会作用于aa包下面的子包的。
推荐使用:import 包名.类名;   因为使用*通配符会导致结构不清晰。不知道哪个类属于哪个包的
什么时候使用import语句: 
1. 相互访问的两个类不是在同一个包下面,这时候就需要使用到导包语句。
2. java.lang 是默认导入的,不需要我们自己导入。
*/
package aa;
public class Demo3 
{
/*
static{
System.out.println("这个是Dmeo3的静态代码块...");
}
*/
public void print(){
System.out.println("这个是Dmeo3的print方法...");
}
}


package bb;
import aa.Demo3;
import java.util.Arrays; 
class Demo4 
{
public static void main(String[] args) 
{
int[] arr = {1,234,2};
Arrays.sort(arr);
Object o = new Object();
Demo3 d = new Demo3();
d.print();
/*
Demo5 d2 = new Demo5();
d2.test();
*/
}
}
package aa;
public class Demo5{
    static{
        System.out.println("这个是Dmeo5的静态代码块..."); //import包的时候并不会执行
    }
    public void test(){
        System.out.println("这个是Demo5的test方法...");
    }
}
/*
权限修饰符: 权限修饰符就是控制被修饰的成员的范围可见性。
               public(公共)   protected(受保护)      default(缺省)    private (大到小)
同一个类     true          true               true         true
同一个包     true          true               true         false  
子父类      true          true                     false        false
不同包      true          false              false        false


注意: 在不同包下面只有public 与 protected 可以访问,而且protected必须是在继承关系下才能够访问。
在同一个包下,只有private权限修饰的不能访问

*/
package aa;
public class Demo7 
{
protected   int i =10;
}
package bb;
import aa.Demo7;

class Demo8{
public static void main(String[] args){
    Demo7 d = new Demo7();
    System.out.println("i="+d.i);
}
}


本文出自 “小鱼的博客” 博客,谢绝转载!

以上是关于Java 包和权限的主要内容,如果未能解决你的问题,请参考以下文章

java 包和访问权限 小练习1

Java 包和访问权限--3

java学习--基础知识进阶第四天--包和权限修饰符内部类

Java基础之包和权限访问

17.包和访问权限

包和访问权限2