接口: 就是定一个了一些方法与规范, 类 (帮助文档)
api: 需要查看底层 源码, 学着去模仿
类与库
库 : jdk 提供的 2. 自己封装的 3. 第三方的库(收费)
类库: 就是把java文件编译成。class,然后打成jar你使用.
引入第三方库步骤 :
1.下载jar (导入到工具类)
2.在项目里新建一个文件夹 lib jar 包放入到lib
3. 添加项目依赖
4. 使用
查看源码: 快捷键 按住ctrl+ 单击 (maven)
Object: 导包java.lang(只要值这个包下面的都不需要进行导包)
描述: 1.所有类的直接爸爸或者是间接爸爸都是Object
2.如果这个类没有父类, 也没有继承Object,系统会默认继承
3. Object 类 调用不了父类的super()构造
构造方法: 无参构造方法
常用的基本方法: public int hashCode() 返回该对象的哈希码值;
1. 如果是同一个对象, 两次调用 hashCode() 返回的哈希码值 是一样的
2.两个对象的哈希值一样并不一定同一一个对象
3.Integer.toHexString(obj.hashCode()) 把哈希值转换为16进制
public final Class<?> getClass() 返回此 Object 的运行时类 描述类的类的信息
其实存的是一些字节码文件
public String getName() 返回当前类的完成的包名+ 类名
public String toString() toString 方法会返回一个“以文本方式表示”此对象的字符串
1.没有重写之前: toString返回值的介绍 : getClass().getName() + “@” + Integer.toHexString(hashCode()
getClass().getName() 返回当前类的完成的包名+ 类名
Integer.toHexString(hashCode()) 把哈希值转换为16进制
2 .默认toString()返回的没有任何意义,所有需要重写: 一般重写是得到 这个类的成员属性的值 快捷键是 Alt+insert
public boolean equals(Object obj) 要与之比较的引用对象 (比较的是两个引用数据类型的地址是否一样)
这个方法最后还是== 进行比较的
需要重写这个 equals(Object obj) 方法 那样才有具体的意义
== 与 equals()
相同点: 都可以做比较(做引用数据类型的比较)
不同点: == 如果是基本数据类型比较的是 具体的值, 如果是引用数据类型比较的是内存地址
equals() 只能比较引用数据类型的地址值(一般都活进行重写)
Scanner 类
1.导包java.util
2.System.in 输入流对象(从键盘获取你输入的数据)
构造:Scanner(InputStream source)
实例化一个对象 的步骤:
1. 导包
2.实例化 类名 对象名 =new 类名()
3.对象名.方法名() 对象名.属性
常规的方法: nextInt() nextBoolean nextDouble nextByte() … 等(基础数据类就没有 nextChar())
java.util.InputMismatchException : 错误原因: 因为接收的值与你键盘输入的值不匹配
public boolean hasNextInt() 判断来解决以上的问题
接收字符串的两个方法 next() nextLine() 读取的一行的记录
产生的错误 Scanner input = new Scanner(System.in);
int num = input.nextInt();
System.out.println(num);
String num1 = input.nextLine();
System.out.println(num1);
原因是: 把 回车键(\r\n) 当成字符读取,所有直接结束
解决 :1. 重新来实例化Scanner类 2. 把接收int类型的转换为String类型(String 类型比int 类型操作方便)