面向对象
导包的细节问题
1.对于内部类,如果想要直接使用内部类,必须通过导包,导入内部类的完全限定名。
2.对于java.lang包下的所有的类,不需要导包,默认编译器会去查找。
常用类
文本扫描器 Scanner
- 
概述:
 面向对象:
 找"对象"来解决问题。
文本扫描器:
 java提供的类: Scanner
位置:
 java.util.Scanner :类的完全限定名
功能:
 解析基本类型和字符串的简单文本扫描器
 - 
对象的创建
1.关键字:new
 new Scanner(System.in)
2.导包:指明使用的类在哪个路径下。
 1》 关键字:import 类的路径 ;
3.常用方法:
1》nextInt()
 将获取的内容转换成int类型。
注意:
对于nextXXX的这种形式,基本数据类型中除了char类,其余都有。
如果需要使用字符,用字符串代替。
2》 next()
 将获取的内容转换成String类型。
代码:
//导包: 指明使用的类在哪个路径下。 import java.util.Scanner ; class 文本扫描器 { public static void main(String[] args) { //对象的创建 Scanner sc = new Scanner(System.in); //对象调用方法: 格式: 对象名称.方法名称() System.out.println("请输入您要录入的内容:"); int value = sc.nextInt(); System.out.println(value ); System.out.println("请输入您的字符串内容"); String v1 = sc.next();//String System.out.println(v1); } } 
随机数Random
Random
随机数类。
1.创建对象:
Random rd = new Random();
2.导包
import java.util.Random;
3.方法:
nextInt(n)
可以随机[0,n) 包括0 不包括n的随机数
代码
/** 随机数类。 
1.创建对象: 
Random rd = new Random() 
2.导包 
import java.util.Random; 
3.方法: 
nextInt(n) 
可以随机[0,n) 包括0 不包括n的随机数
*/
import java.util.Random; 
class 随机数 {
    public static void main(String[] args) {
        //创建对象 Random rd = new Random(); //调用方法 随机 0-100之间的整数
        for (int i = 1; i<=10 ;i++ ) {
            int value = rd.nextInt(101); 
            System.out.println(value); 
        } 
    }
}
1.对于内部类,如果想要直接使用内部类,必须通过导包,导入内部类的完全限定名。
2.对于java.lang包下的所有的类,不需要导包,默认编译器会去查找。
匿名内部类
概述
没有名字的类,实质是子类对象
格式:
new 类名(){
}
代码
package com.demo;
/**
	1.匿名内部类 
*/ 
public class 匿名内部类 { 
    public static void main(String[] args) {
        /* class ZiT implements T{ 
        	@Override 
       		public void fun() { 
        	}
        }*/
        //简化 
        T t = new T(){
            @Override 
            public void fun() {
                System.out.println(1111111); 
            } 
        };
        
        T t1 = new T(){ 
            @Override 
            public void fun() {
                System.out.println(2222); 
            }
        }; 
        t.fun();
        t1.fun(); 
        //多态向上转型 父类引用不能调用子类特有方法。
		/* T t2 = new T(){
    		@Override 
    		public void fun() { 
    			System.out.println(2222); 
    		}
    		public void fun1(){
    		} 
    	};
    	t2.fun1();*/ 
    	new T(){ 
            @Override 
       		public void fun() { 
            	System.out.println(2222); 
        	}
        	public void fun1(){
        	} 
    	}.fun1(); 
	}
}
interface T{
    public void fun();
}
工具类
概念
工具类: 帮助其它类进行便捷操作的类。
常见位置:
util/ utils
常见后缀: 以s结尾。
常用静态方法。
数组为例,自定义一个数组工具类
1.字符串拼接
2.求最大值
API
概念
API(Application Programming Interface,应用程序接口)
用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部
工作机制的细节。
俗称 :说明书
API的使用


API文档的生成
利用文档注释对java文件进行注释


常见文档注释
在类或方法上,选择文档注释,将来提取出来做说明使用。
1.常见文档注释
@author 作者
@version 版本号
@since 从哪个版本开始
@param 参数名称 参数的作用 参数的声明
@return 返回值的作用 返回值的声明
2.通过javadoc提取出文档注释。
3.在窗体中设置编码: -encoding utf-8 -charset utf-8
java提供的数组工具类
Arrays
常见方法:
① binarySearch(int[] a, int key) 二分法进行查找:折半
注意: 数组必须是有序的。
② sort(int[] a) 升序排序
③ toString(int[] a) 数组的字符串表现形式
代码
package com.demo;
import java.util.Arrays; 
public class Arrays数组工具类 {
    public static void main(String[] args) {
        /* int[] arr = {1,2,3,4,5,6,7,8,9};
        int key = 8; 
        System.out.println(Arrays.binarySearch(arr, key));*/
        // ② sort(int[] a) 升序排序 
        int[] arr1 = {-1,20,15,-30,18,27}; 
        System.out.println(Arrays.toString(arr1)); 
        Arrays.sort(arr1); 
        System.out.println(Arrays.toString(arr1)); 
    } 
}
打jar包






jar包的导入
可以直接放在模块下

将需要导入的jar包复制到该目录下。

在模块中导入


成功效果

删除导入的jar包

单个class文件打jar包

Object
Object:类层次结构的根类,所有的类都是该类的子类,包括数组。
细节
1.对象的创建 : 构造方法
 Object()
2.equals方法:
 注意:
 ① 对于Object类的equals方法,与 == 等价的。
 ② 当且仅当Object类对象调用equals方法时,如果参数与对象是同一个,返回值为true。
3.getClass() 返回运行时类
4.hashCode() 返回对象的哈希码值:
注意:
 返回的是根据对象的内存地址值通过哈希算法换算出来的整数.
 对于不同的对象来说,该值不一样。
5.toString() 返回对象的字符串表示形式。
注意:
(***)
1>类的安全限定名 @ 十六进制的哈希码值
2> 在使用System.out.println(),对象会默认调用toString方法,就算没有显式调用
也有。
3> 对于子类来说,一般会重写toString方法,达到需求。
代码
package com.demo;
public class Object类 { 
    public static void main(String[] args) { 
        Object o = new Object(); 
        Object o1 = o; 
        // System.out.println(o.equals(o1)); 
        // System.out.println(o.getClass()); 
        Person p = new Person(); 
        // System.out.println(p.getClass());
        // System.out.println(o.hashCode());
        // System.out.println(o); 
        //不写也会调用toString. 
        // System.out.println(o.toString());
        // System.out.println(p.hashCode()); 
        int[] arr = {1,2,3,45}; 
        // System.out.println(arr.toString());
        // System.out.println(o); 
        
        Person p1 = new Person("张三", 18); 
        System.out.println(p1);
        Person p2 = new Person("李思", 18);
        System.out.println(p2);
    } 
}
class Person{
    String name ;
    int age ;
    public Person() { 
    }
    public Person(String name, int age) {
        this.name = name; this.age = age; 
    }
    public String toString(){ 
        return name + ":"+ age; 
    } 
}