目录

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);        //falseboolean 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进阶(三)——权限修饰符,代码块,常用API相关推荐

  1. Java 四种权限修饰符

    Java 四种权限修饰符访问权限 public protected (default) private 同一个类(我自己) yes yes yes yes 同一包(我邻居) yes yes yes n ...

  2. Java基础课程---权限修饰符

    1 java  权限修饰符 从小到大 private 只有类中能用 缺省,类,同一个包中能用 protected,类,同一个包中能用,以及不同包中的子类可以使用 public:公共的,都可以使用,同一 ...

  3. java四种权限修饰符 (private 、default(缺省)、prote、public)适用范围

    验证测试 (1)定义一个order 类 ,其中包涵四种权限修饰符属性 以及方法 private int orderPrivate; int orderDefault; protected int or ...

  4. Java中的权限修饰符和状态修饰符

    目录 1. 权限修饰符有哪些 2. 这四种修饰符分别的作用 2.1 public修饰符 2.2 private修饰符 2.2.1 分析原因 2.3 default(默认) 2.4 protected ...

  5. java中的权限修饰符_Java的权限修饰符的区别和用法总结

    类中的数据成员和成员函数据具有的访问权限包括:public.private.protect.friendly(包访问权限). 1.public:public表明该数据成员.成员函数是对所有用户开放的, ...

  6. JAVA 成员访问权限修饰符

    修饰符         类内部     package内         子类         其他 public             允许         允许                 ...

  7. java 08_java 08 权限修饰符 编译运行

    jar                  //java  archive       java归档 ear               //enterprise  archive war        ...

  8. Java学习笔记10---访问权限修饰符如何控制成员变量、成员方法及类的访问范围...

    1.Java有三种访问权限修饰符,分别为public.protected.private,还有一种为缺省权限修饰符的情况,记为default.其中,可以由public和default来修饰类:这四种修 ...

  9. Java设计模式——单例设计模式/权限修饰符的使用

    1. 单例模式含义 所谓的单例设计模式,就是采取一定的方法保证整个软件系统中,某个类只能存在一个对象实例. 单例设计模式 2. 单例设计模式的两种实现方法 饿汉式:不管是否需要该实例,我事先就把该实例 ...

最新文章

  1. Asp.net的Session和Cookie传值方式
  2. 软件工程实践2017第一次作业-051502125
  3. Hadoop之HDFS常用Shell命令
  4. “盛大文学”年终派对
  5. 浙大计算机系可以转专业吗,求教。。浙大转专业容易吗
  6. Vs中新建 网站 和Web应用程序的区别
  7. java统计每个单词单词出现的次数_(java)统计若干段英文中的单词数量,并统计每个单词出现的次数按降序排序。...
  8. 被逮到一个初始状态考虑不周的Bug
  9. java集合和数组互转
  10. 有趣的Windows之mysql的zip安装及配置
  11. vba html 教程 pdf,Word VBA教程:CanvasShapes集合
  12. 【应急响应】2020应急响应基础-Windows、Linux合集
  13. 【吾爱破解第二期】操作学习笔记
  14. 信度效度难度区分度是什么意思_信度、效度、难度、区分度
  15. C# 小程序 getPhoneNumber(e),后台解析手机号码
  16. paddlepaddle本地环境配置
  17. 导图解房(01)黄金圈法则解读 买房这件事儿
  18. 如何快速通过pmp考试求攻略
  19. webrtc jitterbuffer 模块分析
  20. 梆梆企业版加固技术之防篡改剖析

热门文章

  1. 小白手机玩转ECS服务器之阿里云高校计划新人篇 - Class 6
  2. 我的2005,我的梦
  3. “深入理解”的目标是什么?
  4. [Python] ConnectionResetError: [Errno 104] Connection reset by peer
  5. 中等专业学校计算机专业建设,中职学校计算机专业建设思路.doc
  6. 开源分布式量化交易系统——开篇
  7. 关于APP上语音播报的完整实现(iOS篇)
  8. 【调剂】上海工程技术大学-材料工程学院-焊接专业-硕士调剂
  9. word统计章节字数
  10. <textarea >文本域如何换行