- 1、包
- 2、导包
- 2.1 导包的概述和使用
- 3、修饰符
- 3.1 修饰符的分类
- 3.2 权限修饰符
- 3.3 状态修饰符
- 包其实就是文件夹,其作用是对类进行分类管理
- 包的定义格式:
(1)格式:package 包名;(多级包用“.”分开)
(2)范例:package.com.itheima; - 指定了包的java文件如何运行?(手动建包)
如下,我们在文件夹中新建一个HelloWorld.java,通过控制台javac编译后,java命令执行可以正常运行输出语句。然后,我们在类的上面给它指定一个包package com.itheima;
package com.itheima;
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
编译后执行,我们发现编译通过了,但是执行的时候报错“找不到或无法加载主类”,这是因为我们指定的包根本就不存在。怎么办呢?这时候我们就要创建包,如图,我们在HelloWorld.java目录下创建com文件夹,再在com文件夹里创建itheima文件夹。然后将HelloWorld.java目录下生成的HelloWorld.class文件剪切到itheima文件夹内,运行命令java com.itheima.HelloWorld,这才执行成功。
- 指定了包的java文件如何运行?(自动建包)
使用命令javac -d . HelloWorld.java编译,使用java com.itheima.HelloWorld运行。
- 使用不同包下的类时,要写类的全路径(如调用另一个cn.itcast包的Teacher类时,在对应的方法前要加前缀cn.itcast),这样太麻烦了为了简化带包的操作,Java就提供了导包的功能。
- 导包的格式
(1)格式:import 包名;
(2)范例:import cn.itcast.Teacher
- 分为权限修饰符和状态修饰符。
| 修饰符 | 同一个类中 | 同一个包中子类无关类 | 不同包的子类 | 不同包的无关类 |
|---|---|---|---|---|
| private | √ | |||
| 默认 | √ | √ | ||
| protected | √ | √ | √ | |
| public | √ | √ | √ | √ |
- cn.itcast.Fu
public class Fu {
private void show1(){
System.out.println("private");
}
void show2(){
System.out.println("默认");
}
protected void show3(){
System.out.println("protected");
}
public void show4(){
System.out.println("public");
}
public static void main(String[] args){
//创建Fu的对象,测试看有哪些方法可以使用
Fu fu = new Fu();
fu.show1();
fu.show2();
fu.show3();
fu.show4();
}
}
cn.itcast.Zi
public class Zi extends Fu{
public static void main(String[] args){
//创建Fu的对象,测试看有哪些方法可以使用
Zi zi = new Zi();
zi.show2();
zi.show3();
zi.show4();
}
}
cn.itcast.Demo
public class Demo {
public static void main(String[] args) {
Fu fu = new Fu();
fu.show2();
fu.show3();
fu.show4();
}
}
com.itheima.Zi
public class Zi extends Fu {
public static void main(String[] args) {
Zi zi = new Zi();
zi.show3();
zi.show4();
}
}
com.itheima.Demo
public class Demo {
public static void main(String[] args) {
Fu fu = new Fu();
fu.show4();
}
}
3.3 状态修饰符
- 状态修饰符分别有两个,分别为final(最终态)和static(静态)
- final关键字是最终的意思,可以修饰成员方法,成员变量和类,其特点:
(1)修饰方法:表示该方法是最终方法,不能被重写。
(2)修饰变量:表示该变量是常量,不能再次被赋值。
(3)修饰类:表示该类是最终类,不能被继承。 - final 修饰局部变量
(1)变量是基本类型:final修饰指的是基本类型的数据值不能发生改变
(2)变量是引用类型:final修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的。 - static关键字是静态的意思,可以修饰成员方法和成员变量,其特点:
(1)被类的所有对象共享,这也是我们判断是否使用静态关键字的条件。
(2)可以通过类名调用,也可以通过对象名调用,但推荐使用类名调用 - static访问特点
(1)非静态成员方法:能访问静态的成员变量和成员方法、能访问非静态的成员变量和成员方法。
(2)静态的成员方法:能访问静态的成员变量和静态的成员方法。



