IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java进阶(三)——权限修饰符,代码块,常用API -> 正文阅读

[Java知识库]Java进阶(三)——权限修饰符,代码块,常用API

目录

1、思维导图

2、权限修饰符

3、代码块

4、常用API

4.1 Object类

4.1.1 equals()方法

4.1.2 toString()方法

4.2 Date类

4.2.1 getTime()方法

4.2.2 after,before方法

4.3 DateFormat类

4.3.1 创建对象

4.3.2 format()方法

4.3.3 parse()方法

4.4 Calendar类

4.4.1 get()方法

4.4.2 set()方法

4.4.3 add()方法

4.5 Arrays类

4.5.1 sort()方法

4.5.2 toString()方法

4.6 System类

4.6.1 exit()方法

4.6.2 currentTimeMillis()方法


1、思维导图

2、权限修饰符

????????权限修饰符:作用于成员变量和成员方法

? ? ? ? 修饰范围如下表:

本类中本包中不同包的子类中不同包中
public

protected
空的
private

? ? ? ? 其中private的访问权限是最小的,只能被本类中的成员访问,在之前的封装里面就已经用到了private,如果其他的类需要访问,则需要提供set个get方法

? ? ? ? 空的权限修饰符比private访问范围大一点,就是可以在本包下的不同类中进行访问,即直接在访问的类中创建被访问类的对象即可

? ? ? ? protected可以在不同包的子类中进行访问,上面空权限修饰符是需要创建对象调用,而不同包的子类则需要继承,再直接调用

? ? ? ? public所有的地方都能访问

3、代码块

? ? ? ? 代码块有三种,静态代码块,构造代码块,局部代码块,由于后面二者不常用,所以着重看第一种:静态代码块

? ? ? ? 静态代码块:执行优先级高于非静态的初始化块,它会在类初始化的时候执行一次,执行完成便销毁,它仅能初始化类变量,即static修饰的数据成员。

? ? ? ? 在类的运行内存图中,每个方法在执行前都会被加载进方法区,然后就不会动了,也就是说,静态代码块只能运行一次

? ? ? ? 写法:

类中:
    {
        代码;
    }

4、常用API

? ? ? ? 常用API其实就是Java中已经定义好的类,我们需要学习它们的方法,由于目前博主只学了6个类,以后学完整会补充。

4.1 Object类

? ? ? ? Object类是所有类的父类,所有类都直接或间接的继承了Object

? ? ? ? 如图,我只是在一个测试类中写了一个空的字符串s,然后写下s.? ?,却出现了很多方法,这些方法在我的测试类中都不存在的,那么说明String继承了某个类,而这些方法就是那个类里面的,这个类就是Object类?

4.1.1 equals()方法

? ? ? ? Object类中的equals()方法可以说是没有意义的,打开Object类中的源码

????????可以发现源码中用的==号,==号在之前也提到过,当它用于基本数值类型的比较时,是比较数值的,但是当用于引用类型的比较时,比较的却是地址值?,所以它是需要在子类中重写的,IDEA是一个很好用的软件,它不需要我们自己重写,直接按Alt + Insert,找到equals就会自动重写好,我也是第一次感受到了源码的魅力,只能说,任重而道远,源码让我见识到了什么叫优秀的代码

    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Student student = (Student) o;

        if (age != student.age) return false;
        return name != null ? name.equals(student.name) : student.name == null;
    }

4.1.2 toString()方法

????????toString()方法的作用是把对象转成一个字符串,但是打开源码会发现,Object类里面的方法是把对象转成一个 "包名.类名+@+地址值"

? ? ? ? ?所以也需要重写,重写的快捷键和equals方法的一样,不做过度赘述

4.2 Date类

? ? ? ? 见名知意,是时间的类,但要注意,Date类的单位只有毫秒

? ? ? ? 创建对象的方法有两种:

? ? ? ? 1、无参

Date d = new Date();

? ? ? ? 此方式创建的时间是现在的时间,也就是电脑系统上的时间

? ? ? ? 2、有参

Date d = new Date(1000);

????????此方法创建的时间是指,在标准基准时间的前提下,加上1000毫秒,也就是1秒,计算机的标准基准时间是指历元,即1970年1月1日00:00:00 GMT。。。由于中国的地理位置处在经八维度,所以在中国地区的标准基准时间为:1970年1月1日08:00:00 GMT

4.2.1 getTime()方法

? ? ? ? 获得传入对象时间到标准基准时间的毫秒差,用long来接收变量

   Date d = new Date();
   long time = d.getTime();

4.2.2 after,before方法

? ? ? ? 判断该时间是否在括号里的时间之前(后)

Date d1 = new Date();
Date d2 = new Date(1000);

boolean b1 = d1.before(d2);
System.out.println(b1);        //false

boolean b2 = d1.after(d3);
System.out.println(b2);        //true

4.3 DateFormat类


4.3.1 创建对象

? ? ? ? DateFormat的作用是进行日期格式的转换,可以把美国人用的不习惯的日期格式转成我们习惯的格式,但是查阅源码发现,DateFormat是一个抽象类

?????????所以创建对象需要用他的子类:SimpleDateFormat类

????????格式:

SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH点mm分ss秒");

? ? ? ? 需要注意的是,括号里的日期格式必须与接下来要传入的日期数据格式相同,并且年月日小时分钟秒等符号,在Java中都有明确的规定用什么字母:

?

4.3.2 format()方法

? ? ? ? 将日期类转换为字符串,只需注意格式一样,用字符串接收变量即可

 SimpleDateFormat f = new SimpleDateFormat("yyyy年MM月dd日 HH点mm分ss秒");
 
 Date d = new Date();

 String s = f.format(d);

4.3.3 parse()方法

? ? ? ? 将字符串转换为日期类

 String str = "2000年09月07日 12点12分12秒";
        
 Date date = f.parse(str);

4.4 Calendar类

? ? ? ? 日历类与日期类不同的是:里面把每个时间单位分别进行定义

? ? ? ? 创建对象:

//方式一:
//创建Calendar的子类
Calendar c = new GregorianCalendar();

//方式二:
//内部会根据当前电脑系统决定创建哪个子类
Calendar c2 = Calendar.getInstance();

4.4.1 get()方法

? ? ? ? 获取某个时间单位的值:

        Calendar c = Calendar.getInstance();

        int year = c.get(Calendar.YEAR);
        System.out.println(year);

        int month = c.get(Calendar.MONTH);
        System.out.println(month + 1);

        int day = c.get(Calendar.DAY_OF_MONTH);
        System.out.println(day);

        int hour = c.get(Calendar.HOUR_OF_DAY);
        System.out.println(hour);

        int minute = c.get(Calendar.MINUTE);
        System.out.println(minute);

        int second = c.get(Calendar.SECOND);
        System.out.println(second);

        int week = c.get(Calendar.DAY_OF_WEEK);

        String[] arr = {"", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};

        System.out.println(arr[week]);
    }

? ? ? ? 需要注意的是:月份和星期,由于文化差异,美国的月份是从0到11月,所以我们在获得month的时候要+1,美国的星期从星期日开始,在获取week的时候,创建一个字符串数组,0索引处空着,然后用剩下的索引代表星期日到星期六

4.4.2 set()方法

? ? ? ? 修改某个时间单位:

        Calendar c = Calendar.getInstance();

        c.set(Calendar.DAY_OF_MONTH,11);

        c.set(Calendar.YEAR,2008);

4.4.3 add()方法

? ? ? ? 加减某个时间单位:

        Calendar c = Calendar.getInstance();

        c.add(Calendar.DAY_OF_MONTH,2);

        c.add(Calendar.MONTH,-10);

4.5 Arrays类

????????Arrays是一个数组工具类,用来操纵数组,这里工具类指的是这个类中的方法全都是静态方法,这个类不需要创建对象,比如很早之前就学到过的:不遍历一个数组,就能输出该字符串:Arrays.toString(arr);

4.5.1 sort()方法

? ? ? ? 将一个数组进行排序

 int[] arr = {123,2,534,65,65,7,68,7,98};

 Arrays.sort(arr);

4.5.2 toString()方法

? ? ? ? 把数组转换成字符串

        int[] arr = {123,2,534,65,65,7,68,7,98};

        String s = Arrays.toString(arr);

4.6 System类

????????System叫系统工具类,和Arrays类一样,System类中的变量都是静态变量,类中的方法都是静态方法,类不需要创建对象

4.6.1 exit()方法

? ? ? ? 退出JVM(Java虚拟机)

        System.exit(0);

4.6.2 currentTimeMillis()方法

????????获取系统当前时间毫秒值


        long time = System.currentTimeMillis();

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 11:47:38  更:2021-09-01 11:48:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:05:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码