包机制

包要注意的事项:

1.一个java文件如果有了包语句,那么该类文件的完整类名是“包名+类名”;

2.一个java文件只能有一个package语句。

3.package语句必须位于java文件中的第一个语句。

如何使用java的包机制?

  • 使用package关键字。
  • package 包名。

基本原则:需要将类文件切实安置到其所归属的package对应的相对目录下。

假设Hello.java文件在D:\Java\下。

package  A;
public class Hello{
  public static void main(String args[]){
     System.out.println("Hello World!");
  }
}
D:\Java>javac  Hello.java  此程序可以编译通过.接着执行。
D:\Java>java  Hello       但是执行时,却提示以下错误!
Exception in thread "main" java.lang.NoClassDefFoundError: hello (wrong name: A/Hello)

错误原因分析:

       在当前目录下找不到A目录,更加找不到A目录下面的Hello.java文件。

解决办法:

  1. 自己在当前目录下新建一个A目录。
  2. 执行java A.Hello命令。(包其实就是文件夹).

存在的问题:使用包机制的话,我们是否每次都要自己创建一个文件夹呢?

解决:

   在编译的时候则可以指定类文件存放的文件夹。

   javac -d . Hello.java    -d后面跟着就是包名,指定包存放的路径。

包机制引发的问题:

有了包之后访问类每次都需要把包名和类名写全。

解决办法:使用import语句。

格式:import 包名.类名。

package com.boxiaoyuan.aa;

public class Demo01 {
    public int add(int a, int b) {
        return a + b;
    }
}
package com.boxiaoyuan.bb;

import com.boxiaoyuan.aa.Demo01;
public class Demo02 {
    public static void main(String[] args) {
        Demo01 demo01 = new Demo01();
        System.out.println(demo01.add(12, 13));
    }
}

注意细节:

  1. 如果想使用一个包中的许多类时,不需要多条的导入语句,可以使用 “*”号通配符代表所有的类。
  2. 使用*时不能导入包中的子类包的class文件。
  3. import语句可以是多条。

访问修饰符

用来控制类,属性,方法的可见性的关键字称为访问修饰符。

访问控制修饰符

同类

同包不同类(不含子类)

同包子类

不同包不同类

(不含子类)

不同包子类

public

protected

--

(注意)

没有访问控制修饰符

--

--

private

---

---

--

--

protected修饰符所修饰的类(这句话中指父类)属成员变量和方法,只可以被子类访问,而不管子类是不是和父类位于同一个包中;default修饰符所修饰的类属成员变量和方法,只可被同一个包中的其他类访问,而不管其他类是不是该类的子类。protected属于子类限制修饰符,而default属于包限制修饰符。

常用快捷键

快捷键的配置,常用快捷键:

内容提示:

Alt + / 

例如:System.out.println(); 语句 ,syso再按住alt 和/ 就会补全。

快速修复:

Ctrl + 1

   例如:程序有编译期异常,或者需要导包,使用该快捷键会有相关提示。

导包:

Ctrl + shift + O

   如果需要导入的包比较多,可以一次性全部导入,也会将多余的包清理掉。

格式化代码块:

Ctrl + Shift + F

代码位置调换:

Alt+上下键

添加/除去单行注释:

Ctrl+/

添加/除去多行注释:

Ctrl+Shift+/

Ctrl+Shift+\

大小写转换:

更改为大写 Ctrl+Shift+X

更改为小写 Ctrl+Shift+Y

复制行:

 Ctrl+Alt+向下键

查看源代码:

1、Ctrl+单击 需要查看源码的类

2、Ctrl+Shift+T

删除:

1.Ctrl + D            删除当前行

 
01-13 13:54
查看更多