1、包的作用:

    (1)避免类的同名(区分类);类的全名称:包.类名

     例如:java.util.Scanner、 java.util.Arrays、 java.lang.String

    (2)可以限定某些类或成员的可见范围;(权限)

     如果某个类或成员省略了权限修饰符,它的可见范围是本包

   (3)用于组织管理项目中众多的类

2、包的声明的格式:package 包名 

声明的要求:

(1)这句package语句必须在“源文件”代码的首行

(2)包名:A:所有单词都小写,每一个单词之间使用.分割;  B:一般习惯上用公司的域名倒置加模块名 com.atguigu.xxx;

3、
编译:javac 源文件名.java;       ----->>>   编译:javac -d . 源文件名.java
运行:java 类名                           ----->>>   运行:java 包.类名

-d:directory文件夹,目录; .:表示当前目录

4、如何使用其他的包? 

 前提:被使用的类必须是可见的
(1)使用类的全名称
(2)使用import语句先导包,然后使用类的简名称;   import 包.类名;

  特殊情况:要使用的两个类同名,包名不一样;那就一个导包用简名称,一个使用全名称

 

* 导包:
* (1)import 包.类名;
* (2)import 包.*;
* (3)import static 包.类名.静态成员;
* (4)import static 包.类名.*;

* (3)(4)就是静态导入,JDK1.5之后引入

* JDK1.5增加的:
* (1)foreach
* (2)枚举
* (3)注解
* (4)可变参数
* (5)静态导入


* JDK1.8增加的:
* (1)接口的默认方法和静态方法

final关键字

* 关键字:final,最终的
 * 它也是一个修饰符
 * 
 * 1、它可以修饰什么?
 * final可以修饰:类(包括外部类和内部类)、变量(包括局部变量、实例变量和类变量)、方法(静态方法和非静态方法); final不能用于修饰构造方法
 * 
 * 2、它修饰后有什么不同?
 * (1)修饰类,即class前面出现了final
 * 表示这个类是最终类,即这个类不能被继承了,没有子类,它是太监类,没有子孙后代
 * 例如:String类
 * 
 * (2)修饰方法,即返回值类型前面出现final
 * 表示这个方法是最终实现版本,即这个方法不能被重写
 * 
 * (3)修饰变量,即在变量数据类型前面出现final;  被final修饰的变量只能在变量定义时初始化。
 * 表示这个变量的值不能被修改,它是常量,一般要求常量名大写,每个单词之间使用_,常量必须赋值
 * 
 * 例如:Math.PI

native关键字

* 关键字:native
 * 它也是修饰符
 * 
 * 1、native可以修饰什么?
 * 可以修饰方法
 * 
 * 2、native修饰的方法是什么意思?
 * 表示这个方法是一个“原生”的方法,即它的方法体的实现不是用Java语言实现的,是有C/C++等语言实现的,
 * 实现后编译为.dll文件,然后由Java代码调用。
 * 
 * 对应调用者,使用者来说,可以把它当成Java实现的方法一样使用。
 * 而且子类可以选择用Java代码重写native方法
 */
JavaSE | 接口| 枚举| 注释| 异常
public class TestNative {
    public static void main(String[] args) {
        Object obj = new Object();
        int hashCode = obj.hashCode();
        System.out.println(hashCode);
    }
}
class Student{
    private int id;
    private String name;
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + id;
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        return result;
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Student other = (Student) obj;
        if (id != other.id)
            return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        return true;
    }
    
}
View Code

相关文章: