java9-4 包
面试题:
package,import,class有没有顺序关系?
有。
package > import > class
Package:只能有一个
import:可以有多个
class:可以有多个,以后建议是一个
1、 包:
A:其实就是文件夹
B:作用
a:把相同的类名放到不同的包中
b:对类进行分类管理
举例:
学生:增加,删除,修改,查询
老师:增加,删除,修改,查询
...
方案1:按照功能分
cn.itcast.add
AddStudent
AddTeacher
cn.itcast.delete
DeleteStudent
DeleteTeacher
cn.itcast.update
UpdateStudent
UpdateTeacher
cn.itcast.find
FindStudent
FindTeacher
方案2:按照模块分
cn.itcast.teacher
AddTeacher
DeleteTeacher
UpdateTeacher
FindTeacher
cn.itcast.student
AddStudent
DeleteStudent
UpdateStudent
FindStudent
包的定义
package 包名;
多级包用.分开即可
注意事项:
A:package语句必须是程序的第一条可执行的代码
B:package语句在一个java文件中只能有一个
C:如果没有package,默认表示无包名
带包的编译和运行:(看了就忘了吧..用不上这两个)
A:手动式
a:编写一个带包的java文件。
b:通过javac命令编译该java文件。
c:手动创建包名。
d:把b步骤的class文件放到c步骤的最底层包
e:回到和包根目录在同一目录的地方,然后运行
带包运行。
B:自动式
a:编写一个带包的java文件。
b:javac编译的时候带上-d即可
javac -d . HelloWorld.java
c:回到和包根目录在同一目录的地方,然后运行
带包运行。
package cn.itcast;
class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
2、 不同包下类之间的访问
A、先在一个包下创建一个类:
/*
Demo类,求和
*/
package com.liuyi;
public class Demo {
public int sum(int a,int b) {
return a + b;
}
}
B、再在另一个包下创建一个测试类
Test类,测试
导包:
格式:import 包名;
这种方式导入是到类的名称。
注意:我们用谁就导谁。
面试题:
package,import,class有没有顺序关系?
有。
package > import > class
Package:只能有一个
import:可以有多个
class:可以有多个,以后建议是一个
1 package cn.itcast; 2 3 import com.liuyi.Demo; 4 5 class Test { 6 public static void main(String[] args) { 7 //Demo d = new Demo(); 8 /* 9 com.liuyi.Demo d = new com.liuyi.Demo(); 10 System.out.println(d.sum(10,20)); 11 12 com.liuyi.Demo d2 = new com.liuyi.Demo(); 13 System.out.println(d2.sum(10,20)); 14 15 com.liuyi.Demo d3 = new com.liuyi.Demo(); 16 System.out.println(d3.sum(10,20)); 17 18 com.liuyi.Demo d4 = new com.liuyi.Demo(); 19 System.out.println(d4.sum(10,20)); 20 */ 21 22 Demo d = new Demo();//导包后这样写 23 System.out.println(d.sum(10,20)); 24 } 25 } 26 27 /* 28 第一个问题:找不到Demo 如果没import导入Demo,就找不到 29 30 第二个问题:程序包com.liuyi不存在 因为还没生成class文件,得先生成 31 32 第三个问题: Demo在com.liuyi中不是公共的; 无法从外部程序包中对其进行访问 不够权限 33 */