Java培训SE基础之包(package语句)

1. 为什么要使用包

     当程序中涉及的类越来越多时, 类的功能含义以及如果有同名类该如何处理的问题就出现了.

  我们希望把功能类似的一组类放在一起, 有利于管理和维护, 在java中使用了”包”的概念来分类管理

  包和目录非常接近, 但是虽然文件系统中是以目录的形式出现的, 但是在程序中包不是目录,目录也不是包.

2. 如何使用包

   在程序的第一行添加语句

package 包名.子包名.子子包名……;

包目录深度没有限制, 但也不宜太深

package的作用就是让编译器编译代码时, 把生成的class文件放置到指定的包目录中, 并在类中记录包信息.

 

包名及子包结构通常符合下列规范,由四个部分组成:

机构类型名称.机构名称.项目名称.模块名称

 

3. 使用包带来的问题

一旦源文件中使用了package语句, 那么这个源文件中的所有类都会被放置到指定的包中,

带来2个问题

  • 包中的所有的类如果被别的包中的类访问时, 不能再使用简单类名(simple name), 必须使用全限定名称(qualified name), 全限定类名 就是所有的包名.类名.
  • 如果类是主类, 那么在执行主类时, 必须使用全限定类名.
  • 编译源文件时必须加上选项-d 生成的包目录及其中的类文件的目标目录, 通过这个目录是当前目录, 在eclipse中这个目录是bin

package com.atguigu.javase.javabean;

 

public class Teacher { // Teacher类在其他包的类中使用时,必须使用全限定名称

 

       private String name;

       private int age = 30;

       private String gender = “女”;

 

    // 可以通过构造器完成对关联对象的初始化

       public Teacher(String name, int age, String gender) {

              this.name = name;

              this.age = age;

              this.gender = gender;

       }

 

       public void setName(String name) {

              this.name = name;

       }

 

       public String getName() {

              return name;

       }

 

       public void setAge(int age) {

              this.age = age;

       }

 

       public int getAge() {

              return age;

       }

 

       public void setGender(String gender) {

              this.gender = gender;

       }

 

       public String getGender() {

              return gender;

       }

 

       public String say() {

              return “姓名:” + this.name + “,年龄:” + this.age + “,性别:” + this.gender;

       }

}

 

package com.atguigu.javase.test;

 

public class TeacherTest {

 

       public static void main(String[] args) {

              //Teacher t = new Teacher(“李四”, 25, “女”); // 编译时这行语句就会报错!!!

        com.atguigu.javase.javabean.Teacher t = new com.atguigu.javase.javabean.Teacher(“李四”,25,”女”);

        System.out.println(t.say());

       }

 

}

并且在命令行中执行此主类时必须使用全限定类名

java com.atguigu.javase.test.TeacherTest

想要了解跟多关于Java培训课程内容欢迎关注尚硅谷Java培训,尚硅谷除了这些技术文章外还有免费的高质量Java培训训课程视频供广大学员下载学习


上一篇:
下一篇:
关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
电话:010-56253825
邮箱:info@atguigu.com
地址:北京市昌平区宏福科技园综合楼6层(北京校区)

 深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)