包与访问权限修饰符
一个简单的java程序:
class Test1{ public static void main(String[] args){ System.out.println("helloWorld"); } }
可以直接执行。这是否用到了其他对象呢?暂时不考虑它
如果需要与其他类型对象进行通信呢,如:
class Dog { String name; int age; public void bark(){ System.out.println("汪汪"); } } class Test2{ public static void main(String[] args){ Dog d = new Dog(); d.bark(); } }
这里就要求Dog类和Test2类在同一个文件中,或者在同一个文件夹中的不同文件下,否则程序会报找不到类的错误。
好了,这里给出的概念就是类的位置的概念。一个类的坐标,应该由其包名+类名共同组成,相当于我们的文件系统中的文件夹路径+文件名.
那么java虚拟机如何知道你的类的具体坐标呢?
我们需要在类文件中加入所在包的声明
格式为:package 包路径名;且必须放在程序的第一行
package com.zhen; class Dog { String name; int age; public void bark(){ System.out.println("汪汪"); } }
使用其他类对象,当然首先要找到其他类的对象。因此我们介绍两种方式使用其他类的对象。
1、import语句引入
import com.zhen.Dog;
格式为:import 类全路径
import 包路径.* //引入该包下的所有类
2、全路径使用其他类
com.zhen.Dog d = new com.zhen.Dog();
前面介绍了包的概念,那么访问权限修饰符有什么用呢?
包告诉了我们类在哪里,但是类对象的那些组件能用,在什么情况下使用就得看访问各个组件的访问权限修饰符了。
访问权限修饰符有以下几种: