1.1 包的概述和注意事项
1.1.1 包的概述
- 其实就是文件夹
- 作用:对类进行分类管理
- 包的划分:
- 举例:
- 学生的增加,删除,修改,查询
- 老师的增加,删除,修改,查询
- 以及以后可能出现的其他的类的增加,删除,修改,查询
- 基本的划分:按照模块和功能分。
- 高级的划分:就业班做项目的时候你就能看到了。
- 举例:
1.1.2定义包的格式
- package 包名;
- 多级包用.分开即可
- 注意事项:
- package语句必须是程序的第一条可执行的代码
- package语句在一个java文件中只能有一个
1.1.3案例代码
package com.itheima;
//package com.itheima2;
/*
* 包:其实就是文件夹。
* 作用:就是对类进行分类管理。
*
* 举例:
* 学生:增加,删除,修改,查询
* 老师:增加,删除,修改,查询
* ...
*
* 方案1:按照功能分
* com.itheima.add
* AddStudent
* AddTeacher
* com.itheima.delete
* DeleteStudent
* DeleteTeacher
* ...
* 方案2:按照模块分
* com.itheima.student
* AddStudent
* DeleteStudent
* ...
* com.itheima.teacher
* AddTeacher
* DeleteTeacher
* 包的定义格式:
* package 包名;
* 如果是多级包用.隔开即可
* 注意事项:
* A:package必须是程序的第一条可执行语句
* B:package语句在一个java文件中只能有一个
*/
public class PackageDemo {
}
1.2 导包的格式及使用
1.2.1 导包概述
不同包下的类之间的访问,我们发现,每次使用不同包下的类的时候,都需要加包的全路径。比较麻烦。这个时候,java就提供了导包的功能。
1.2.2 导包格式
- import 包名;
1.2.3 案例代码
package com.itheima;
/*
* 导包:
* import 包名;
*/
import cn.itcast.Teacher;
public class Test {
public static void main(String[] args) {
Student s = new Student();
s.show();
/*
//我要使用Teacher下的method()方法
//类不在同一个包下,使用的时候,要加类的全路径名称
cn.itcast.Teacher t = new cn.itcast.Teacher();
t.method();
t.method();
cn.itcast.Teacher t2 = new cn.itcast.Teacher();
t2.method();
//这样做太麻烦了,java就提供了一个导包的功能
*
*/
Teacher t = new Teacher();
t.method();
}
}
package com.itheima;
public class Student {
public void show() {
System.out.println("show");
}
}
package cn.itcast;
public class Teacher {
public void method() {
System.out.println("method");
}
}
1.3 四种权限修饰符的概述和访问特点
public | protected | default | private | |
---|---|---|---|---|
同一种类中 | √ | √ | √ | √ |
同一包子类,其他类 | √ | √ | √ | |
不同包子类 | √ | √ | ||
不同包其他类 | √ |
归纳一下:
在日常开发过程中,编写的类、方法、成员变量的访问
- 要想仅能在本类中访问使用private修饰
- 要想本包中的类都可以访问除了private修饰符,其它都可以
- 要想本包中的类与其他包中的子类可以访问使用protected修饰
- 要想所有包中的所有类都可以访问使用public修饰。
1.3.1案例代码
package com.itheima;
public class Test {
public static void main(String[] args) {
Father f = new Father();
//f.show();
f.show2();
f.show3();
f.show4();
}
}
package com.itheima;
public class Son extends Father {
public static void main(String[] args) {
Father f = new Father();
//f.show();
f.show2();
f.show3();
f.show4();
Son s = new Son();
s.show2();
s.show3();
s.show4();
}
}
package com.itheima;
/*
* 权限修饰符:
* 本类 同一个包下(子类和无关类) 不同包下(子类) 不同包下(无关类)
* private: Y
* 默认: Y Y
* protected: Y Y Y
* public: Y Y Y Y
*/
public class Father {
private void show() {
System.out.println("show");
}
void show2() {
System.out.println("show2");
}
protected void show3() {
System.out.println("show3");
}
public void show4() {
System.out.println("show4");
}
public static void main(String[] args) {
Father f = new Father();
f.show();
f.show2();
f.show3();
f.show4();
}
}