[Java] API(一些常用的简单API的常用方法)

文章目录

  • 第一章 API
    • 概述
    • API 使用步骤
  • 第二章 Scanner类
    • 2.1 什么是Scanner类
    • 2.2 引用类型使用步骤
      • 1.导包
      • 2.创建
      • 3.引用
    • 2.3 Scanner类的创建与使用
    • 2.4 匿名对象
  • 第三章 Random类
  • 第四章 ArrayList类
    • 4.1 对象数组
    • 4.2 ArrayList的含义
    • 4.3 ArrayList的使用步骤
    • 4.4 ArrayList常用方法
    • 4.5 ArrayList集合储存基本数据类型
    • 4.6 ArrayList的练习题
  • 第五章 字符串类
    • 5.1 字符串的概述和特点
    • 5.2 字符串的构造方法和常见的创建方式
    • 5.3 字符串的常量池
    • 5.4 字符串的常用方法
      • 比较字符串的大小
      • 获取字符串的相关方法
      • 字符串的截取方法
      • 字符串当中转换相关的方法
      • 字符串切割的相关方法
  • 第六章 static关键字
    • 6.1 static关键字概述
    • 6.2 static关键字修饰成员
    • 6.3 static关键字修饰成员方法
    • 6.4 静态成员的共享的内存图
    • 6.5 静态代码块
    • 第七章 数组工具类 Arrays
    • 第八章 数学工具类Math

第一章 API

概述

API[Application Programming Interface],. 应用编程接口。Java API是一本程序员的字典,是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习如何使用这些功能就可以类。所以我们可以通过查询API的方式,来学习Java提供的类,并得知怎么使用他们。

API 使用步骤

  1. 打开帮助文档
  2. 点击显示,找到索引,查看输入框
  3. 你要找谁?在输入框中输入,然后回车
  4. 看包。java.lang下的类不需要导入包,其他需要
  5. 看类的解释和说明
  6. 学习构造方法
  7. 使用成员方法

第二章 Scanner类

2.1 什么是Scanner类

一个可以解析基本类型和字符串的简单文本扫描器

例如:以下代码使用户能够从 System.in 中读取一个数;

Scanner sc = new Scanner(System.in);
int i = sc.nextInt();

2.2 引用类型使用步骤

1.导包

import 包路径.类名称;

  1. 如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句不写
  2. 但是有例外:java.lang包的不需要导包,什么情况下都可以直接使用

2.创建

类名称 对象名 = new 类名称(有可能有参数);

3.引用

对象名.成员方法名(可能有参数);

2.3 Scanner类的创建与使用

代码如下

package method.demo2;

import java.util.Scanner;//1.导包

public class Demo02PhoneParam {
     

    public static void main(String[] args) {
     
        //2、创建
        Scanner sc = new Scanner(System.in);
        String qwq = sc.next();//3,使用
        System.out.println(qwq);
    }
//注意,我们用System.in输入的都是字符串
}

练习:(输入三个数字,并判断三个数字谁最大)(我的想法)

package method.demo2;

import java.lang.reflect.Array;
import java.util.Scanner;//1.导包

public class Demo02PhoneParam {
     

    public static void main(String[] args) {
     
        int []aa = new int[3];
        int qwq = 0;
        for(int i =0 ; i<3;i++){
     
            System.out.println("请输入第" + (i+1) + "个数字");
            Scanner sc = new Scanner(System.in);
            qwq = sc.nextInt();
            aa[i] = qwq;
        }

        int max = 0;
        max = aa[0];
        for(int i = 0 ;i<aa.length -1;i++){
     
            if(max< aa[i+1]){
     
                max = aa[i+1];
            }
        }
        System.out.println("最大值是:"+ max);

    }
//将输入的数字放入一个数组中,然后再比较
}

2.4 匿名对象

匿名对象的格式: new 类名称();

  • 使用匿名对象就是方便使用他的某些免参的方法
  • 匿名对象只能使用一次,因为虽然他在堆区创建了,但是我们找不到他哈哈哈,因为栈区中没有记录他的地址值

主要运用:

  • 作为参数

第三章 Random类

作用:用来生成随机数字

示例代码:

package method.demo2;

import java.lang.reflect.Array;
import java.util.Random;//1.导包

public class Demo02PhoneParam {
     

    public static void main(String[] args) {
     
        Random ran = new Random();
        int a = ran.nextInt(100);
        System.out.println(a);

    }


}

  • 相关的方法可以区参阅API文档

第四章 ArrayList类

4.1 对象数组

  • 就是存着对象的数组

语法: 类名 []名称 = new 类名[数字];

例子:

package method.demo2;

import java.lang.reflect.Array;
import java.util.Random;//1.导包

public class Demo02PhoneParam {
     

    public static class Person{
     
        private String name;
        private int age;

        public Person(String name, int age) {
     
            this.name = name;
            this.age = age;
        }

        public String getName() {
     
            return name;
        }

        public void setName(String name) {
     
            this.name = name;
        }

        public int getAge() {
     
            return age;
        }

        public void setAge(int age) {
     
            this.age = age;
        }
    }

    public static void main(String[] args) {
     
        Person []group = new Person[3];
        Person one = new Person("迪丽热巴",18);
        Person two = new Person("古力娜扎",28);
        Person three = new Person("马儿扎哈", 38);
        group[0] = one;
        group[1] = two;
        group[2] = three;

        for(int i = 0;i<group.length;i++){
     
            System.out.println(group[i].getName());
            System.out.println(group[i].getAge());
        }
    }
}

4.2 ArrayList的含义

java.util.ArrayList 是大小可变的数组的实现,存储在内的数据成为元素.此类提供一些方法来操作内部的元素.ArrayList中可以不断的添加元素**,其大小也自动增长.**

4.3 ArrayList的使用步骤

对于ArrayList来说,有一个尖括号代表泛型

  • 泛型,也就是装在集合当中的所有元素,全都是统一的引用类型(不能是基本类型)
  • 因为,该数组里面保存的是引用数据类型地址值

注意:从JDK 1.7+开始,右边的尖括号内部可以不写内容,但是<符号要写>

代码如下:

package method.demo2;


import java.util.ArrayList;

public class Demo02PhoneParam {
     

    public static void main(String[] args) {
     
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list);//直接打印这个类,得到的是内容,不是地址值,如果内容是空,那就输出 []
        //如果要添加数据,要用到add方法
        list.add("赵丽颖");
        System.out.println(list);
        list.add("你的野爹");
        System.out.println(list);
        //可以发现,add方法是将新内容加到最后一位
    }


}

4.4 ArrayList常用方法

  1. boolean add(E e)方法

将指定的元素添加到此列表的尾部。

2.E get(int index)方法

从集合当中获取元素,参数是数组的索引值

3 E remove(int index)方法

移除此列表中指定位置上的元素。

4 int size()

返回此列表中的元素数。

等等,我们可以再API文档里面添加与查阅

4.5 ArrayList集合储存基本数据类型

我们都知道,ArrayList里面只能够储存泛型,那么我们怎么将基本数据类型储存在里面吗?

  • 解决方法:使用基本类型对应的包装类,他们的包装类就是首字母大写(部分不是)
  • 他们的包装类就在java.lang下,因此不用导入
基本类型 包装类
byte Byte
short Short
int Integer
long long
float Float
double Double
char Character
boolean Boolean

可以把他们的封装类当成是基本数据类型来使用,即语法基本一致,当然,这是从JDK1.5开始才支持的

注意:从Jdk1.5+开始,支持自动装箱、自动拆箱

  • 自动装箱:基本类型 -->包装类型
  • 自动拆箱: 包装类型 – >基本类型

4.6 ArrayList的练习题

生成6个1~33之间的随机整数,添加到集合,并遍历输出

package method.demo2;

import java.util.ArrayList;//导入
import java.util.Random;

public class Demo02PhoneParam {
     

    public static void main(String[] args) {
     
        ArrayList<Integer> list = new ArrayList<>();
        Random ran = new Random();
        int temp =0;
        for (int i =0;i<6;i++){
     
            temp = ran.nextInt(33) + 1;
            list.add(temp);
        }
        System.out.println(list);

    }
}

定义以指定格式打印集合的方法(ArrayList作为参数),用{}扩起集合,使用@符号来分割每一个元素

package method.demo2;

import java.util.ArrayList;//导入
import java.util.Random;

public class Demo02PhoneParam {
     

    public static void print(ArrayList<String> list){
     
        System.out.print("{");
        for (int i =0;i<list.size();i++){
     
            String name = list.get(i);
            if(i!=list.size() -1){
     
                System.out.print(name + "@");
            }
            else{
     
                System.out.print(name);
            }
        }
        System.out.print("}");
    }

    public static void main(String[] args) {
     
        ArrayList<String> list = new ArrayList<>();
        list.add("妈妈");
        list.add("爸爸");
        list.add("爷爷");
        list.add("奶奶");
        print(list);


    }
}

第五章 字符串类

5.1 字符串的概述和特点

  • 程序中的所有的双引号的自负床,都是String的对象(就算没有new 也是这样)

    • 例如:

           String str = "abc";
      

      等效于:

           char data[] = {
                'a', 'b', 'c'};
           String str = new String(data);//字符数组来创建字符串类
      
  • 字符串是常量,因此内容在创建之后永不能更改

  • 正是因为字符串不能改变,所以字符串是可以共享使用的

  • 字符串相当于字符型数组,但是底层原理是byte[]字节数组.

5.2 字符串的构造方法和常见的创建方式

常见的创建的3 +1种方式:

三种构造方法:

  1. **public String();**创建一个空白字符串,不含有任何内容
  2. public String(char[] array): 根据字符数组的内容,来创建对应的字符串
  3. public String (byte[] array):根据字节数组的内容

一种直接创建:

  • String str = “xxxxx”;

5.3 字符串的常量池

程序当中直接写在双引号里面的字符串,就在字符串的常量池中(这个常量池在堆当中)

  • 换言之,如果是通过字符型数组或者字节型数组创建的字符串那么就不再字符串常量池里面

等号的含义

  • 对于基本类型来说,==是对于值的比较
  • 但是对于引用类型来说,这是对于地址值的比较

内存图
[Java] API(一些常用的简单API的常用方法)_第1张图片

5.4 字符串的常用方法

比较字符串的大小

一 public boolean equals(Object obj);//参数可以是任何类型,但是只有是字符串并且内容才会给true,其余给false

注意

  • 如果是一个常量和一个变量作为比较,最好常量卸载前面,原因是如果str是null,那么将出现空指针异常

    • 推荐:   "abc".equals(str);
      

public boolean equalsIgnoreCase(String str);//忽略大小写,进行比较

​ 也就是说

"abc".equalsIsIgnoreCase("ABC");//返回是true

获取字符串的相关方法

一 public int length();//获取字符串当中含有的字符的个数

二 public String concat(String str)//将当前的字符串和参数字符串拼接成为返回值

public int indexOf(String str)//查找参数字符串在本字符串当中首次出现的索引值,如果没有,则返回-1

字符串的截取方法

String [substring] (int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。
String [substring] (int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。

字符串当中转换相关的方法

public char[] toCharArray(); //将当前字符串拆分为字符数组并返回

public byte getBytes()//获得当前字符串底层的字符数组

public String replace(CharSequence oldString,CharSequence newString)//将所有出现的老字符串替换成为新的字符串,返回替换之后的结果新字符串

  • 注意,原来的字符串没有发生改变

  • CharSequence是一个接口

字符串切割的相关方法

public String[] split(String regex)//按照参数的规则,参数就是切的地方,将字符串切分成若干部分

  • 注意:这里不能够以"."作为分隔符,原因是split方法的参数是一个正则表达式
  • 如果要以".“来分割句子,一定要” \ \."

第六章 static关键字

6.1 static关键字概述

  • 一旦用了static关键字,那么内容不再属于对象自己,二十属于类的,这样一来,所有对象中的static的数据都是共享自类中的,类中的数据发生改变,全部对象的数据都发生改变

6.2 static关键字修饰成员

代码如下

类文件

package your_father;

public class Student {
     
    private String name;
    private int age;

    public int getId() {
     
        return id;
    }

    public void setId(int id) {
     
        this.id = id;
    }

    private int id;
    static String room;
    private static int idCounter = 0;

    public Student(String name, int age) {
     
        this.name = name;
        this.age = age;
        idCounter++;
        this.id = idCounter;
    }


    public String getName() {
     
        return name;
    }

    public void setName(String name) {
     
        this.name = name;
    }

    public int getAge() {
     
        return age;
    }

    public void setAge(int age) {
     
        this.age = age;
    }
}

main

package your_father;

public class demo {
     
    public static void main(String[] args) {
     
        Student one = new Student("爸爸", 40);
        one.room = "天堂";//这里的修改直接会让多个对象的这个值都发生改变
        Student two = new Student("儿子", 18);
        System.out.println("姓名:" + one.getName() + " 班级是 " + one.room + one.getId());
        System.out.println("姓名:" + two.getName() + " 班级是 " + two.room + two.getId());

    }
}

  • 巧妙用法: 可以用这种变量来生成id,每执行一次构造函数,将该变量加一,然后就可以利用这个来生成每个人的id了.

6.3 static关键字修饰成员方法

  • 一旦使用static修饰成员方法,那么这就成为了静态方法

  • 静态方法是不属于对象,是属于类的

  • 如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它

  • 对于静态方法来说,可以直接调用他(可以用对象名调用,也可以用类名调用)

    • obj.xxx();//不推荐,我们容易误以为这是一个方法,同时,在编译的时候,会转化为下面的写法
      ClassName.xxx();//推荐,别人一看就知道这是静态方法
      
  • 当然,成员变量也可以直接 类名.静态成员变量

注意:

  • 静态不能直接访问非静态!(重点!)
    • 原因: 内存中现有静态变量,后面才有的变量,因此,静态变量访问不了非静态
  • 静态方法中,不能使用this关键字,因为: 这个方法是来自类的,编译的时候,他并不是对象,this是对象的意思,矛盾了

6.4 静态成员的共享的内存图

  • 方法区中,有一块独立的空间,叫做静态区,用来存储static数据

  • 访问静态成员变量的时候,只和类有关系
    [Java] API(一些常用的简单API的常用方法)_第2张图片

6.5 静态代码块

格式:

public class 类名称{
     
	static{
     
			静态代码块的内容
	}
}
  • 当第一次使用到本类的时候,静态代码块执行唯一的一次
  • 静态代码块比构造方法还提早执行

主要用途:

  • 用来一次性的对静态成员变量进行赋值

第七章 数组工具类 Arrays

常用方法

public static String toString(数组)/将参数的数组变成字符串(按照默认输出格式:[元素1,元素2…])

public static void sort(数组)//按照升序对数组的元素进行排序

第八章 数学工具类Math

常用方法

public static double abs(double num)//获取绝对值

public static double ceil(double num)//向上取整

“public static double floor(double num)”//向下取整

public static long round(double num)//四舍五入

练习:计算在-10.8到5.9之间,绝对值大于6或者小于2.1的整数有多少个?

package your_father;

public class demo {
     
    public static void main(String[] args) {
     
        double left = Math.ceil(-10.8);
        double right = Math.floor(5.9) ;
        int num = 0;

        for(int i = 0;i<=Math.abs(left);i++){
     
            if(i>6 || i<2.1){
     
                num++;
            }
        }
        for(int j =1; j<= Math.abs(right);j++){
     
            if(j>6 || j<2.1){
     
                num++;
            }
        }
        System.out.println(num);
    }
}

ble abs(double num)**//获取绝对值

public static double ceil(double num)//向上取整

“public static double floor(double num)”//向下取整

public static long round(double num)//四舍五入

练习:计算在-10.8到5.9之间,绝对值大于6或者小于2.1的整数有多少个?

package your_father;

public class demo {
     
    public static void main(String[] args) {
     
        double left = Math.ceil(-10.8);
        double right = Math.floor(5.9) ;
        int num = 0;

        for(int i = 0;i<=Math.abs(left);i++){
     
            if(i>6 || i<2.1){
     
                num++;
            }
        }
        for(int j =1; j<= Math.abs(right);j++){
     
            if(j>6 || j<2.1){
     
                num++;
            }
        }
        System.out.println(num);
    }
}

你可能感兴趣的:(Java,java)