00:00
第二个的话呢,我们提到这个结构叫做date,前面呢我们其实也稍微见过它,只是没有呢专门的去说它啊,今天呢,我们把它呢说一下。哎,嗯,这个我换成是一个多行的啊。哎,现在呢,我们来说一下这个date类,这个date类呢比较特别,它有两个位置都有。第一个呢,是我们U秀下的一个date类,还有一个位置在咱们java.circle下呢,也有个data,而且呢,他们还是一个子分类的关系啊,那就是这样两个类,咱们呢,先来说一下这个类。啊,先来说一下这个类啊,这个date类咱们主要关心的两个事情。或者大家需要掌握的第一个事情叫哎,两个构造器的使用啊,这是第一个啊,第二个两个方法的使用。关于U下的data,知道这两个就足够了。
01:02
说白了,第一个就是你怎么找对象,第二呢,就是男人这对象呢,通常都做什么事?好构造起就是一个空参的,哎,这个构造起好又一个date,哎这个date呢,你看这个时候呢,它就不会帮我们自动的去导了。咱们前面这个代码呢,咱们在这个嗯,Idea当中,它都会自动的帮咱们去导这个相关的这个API了,像这个port就自动帮我们导了,就啊,嗯,像我们现在呢,就不能了,是因为呢有冲突,不知道你到底想用这个还是想用这个啊这块呢,我们放到这al enter一下我们导入先呢用一下这个U下的。哎,这呢,就在这有了行al enter,哎,叫贝塔一。
02:00
这呢就是第一个构造器,这些构造器完了以后,我们下边呢去做一个输出,输出呢叫DATA1,相当于呢,我们调了它的to string方法,所以这呢就是其中的一个方法to string很简单,咱们前面讲object的时候呢,说有一些类呢重写过了。啊,这个string啊,包装类啊,File类啊,Date类啊,哎,就提到他了,他重写了,重写以后呢,你看它是写的是什么啊,就是当前的我们这个年。月日星期Saturday周六是吧,嗯,下午四点多,哎,这个什么意思啊。东八区东八区,哎,咱们这个不是用的北京时间吧,是吧,东八区啊,哎这是这样个情况,哎这就相当于把这个数据呢,给我们就列出来了,哎这样的一种格式啊这个呢,就相当于这个two,相当于呢,就是哎显示咱们当前的年月日,看年顿号吧,年月日十分表也有。
03:14
有啊行,这个呢叫兔子针,你想它这个里边我们。啊,这那就得说第二个方法了啊,那咱们简单就那就说第二个方法吧,哎,这个我再去做一个输出,输出谁呢?哎,我调一下这个DATE1,它有一个叫get time方法。返回的是一个浪形的值,那你猜测一下这个浪形值代表的是什么呀?是不是又是毫秒数啊?我应该体验个电话号码啊。哎,这个呢,还是一个毫秒数,跟我们通过这个呢得到的其实是一个意思,诶这个毫秒数呢,也是说距离这个时间之间的一个时间差,压IG呢,就是我们这个date呢,就是记录一下咱们当前这个时间,嗯,它呢不光是到这个秒了,实际上呢,还具体到这个毫秒了。
04:08
只是说我们to string的时候呢,光显示出来到秒这儿了,这是咱们用的第二个方法。叫get time啊,相当于叫获取当前date对象的,哎,对应的这个相当于是一个时间戳了,哎,就是你这个,或者你这个现在还不熟,那你就写毫秒数。就是距离啊,1970年1月1号00:00:00的啊,这个毫秒的数,那就是这个概念,行,这是咱们说的这个,哎,这两个概念啊,哎当前这列对象啊,行,这就它,那么咱们现在呢,调用的是这个空餐的构造器,这个空餐的构造器呢,它返回的你看这个时间跟咱们这个时间是一样,这种情况返回的呢,就是咱们当前这个时间的这个date对象啊,相当于创建了一个。
05:09
对应当前时间的这个date的对象。嗯,当前咱们就是刚才呢,是这个时间,你要再创建呢,就是现在的时间了。啊,这就现在呢,啊,04:38了,就成这么着了啊行,那么这是其中的一个构造器,那么我们能不能创建说指定的时间呢。勾到其二指定的时间,我new一个date al啊al啊就先擦一下,然后ctrl alt斜杠啊,刚一打开很失望。好多线都划掉了,这个划掉是啥意思呢?对,就是过时了,你看咱们点开这个date,这个date的话呢,这是没有过时的,然后呢,这个的话呢,也可以用,再往后,再往后呢,你看这块它这加了一个注解。
06:10
咱们再往后边这个章节这块来讲。注解这块啊,说一下这个,呃,叫deprecated,跟咱们讲多线程里边那个suspend resume stop,一个意思就是过时了。哎,就是不建议呢,我们去用了,这该咋用呢?你看这里写了一个replace by是吧。说不建议用,那那我怎么办呢?诶你要想用呢,你用这个东西去替换一下,涉及到这个另外一个叫calendar了啊,哎,这个咱们先先不说上边这个事儿,你就先说我们这里边啊这个date的话呢,你想创建指定的年月日,这个呢,我们尽量的就不用了。啊,这个大家,呃,先明确一个事儿哈,他写的叫过时的,不是说呢就不能用了啊,也能用,只是说你要用的时候呢,他就。他就给你打个叉,其实也也都OK哈,只是说建议呢,你用别的方式,就这个意思,你看他这也画了个线,你该用还能用,只是说呢,不建议这样用而已啊,不愿意用咱们就暂时就先不用了。
07:13
嗯,咱们后边再讲这个张二八,你看二八建议我们怎么去用,那这个时候呢,我们说除了这个之外呢,还有一个没有功能划线的。一个是没参数,一个呢就是它咱们暂时呢也只能用它了,这个呢是long型的一个date,实际上就是毫秒数。就是毫秒数,这不就是个毫秒数吗?我把这个毫秒数比如扔过来加个L啊,Long型的,然后咱们alt enter一下,哎,生成一个DATA1吧。啊,有DATA1了二,然后接着s out一下DATA2,哎,相当于是调这个图死轮方法吧,嗯,你看这时候我们要执行的结果呢,就相当于把我们又翻译成你对应的那个,呃,年月日十分秒了。
08:03
你看这个数就跟。啊,这是咱们那会儿又又重跑了一下是吧,哎,那会儿的这个时间了就。哎,就是这个意思啊,行,嗯,这里就相当于是我们创建指定这个毫秒数的一个date对象。哎,毫秒数的这个啊贝诶对象。啊,就是这个意思,比如我这呢,我就去个零,去个零呢,就是呃,换了一个时间具体是多少,这个咱们也口算不出来了啊,你看一下啊,1974年的啊,哎,某一个时间啊,行,这就是这个意思,那么关于我们这个date啊U下的它来讲呢,咱们就关注两个构造器啊,哎,这个构造器。哎,构造器一啊,这个把这个我们粘一下吧,你看它还有呢,我们这个构造器二。
09:00
哎,这就OK了,这是咱们说的这个date啊,那这个date的话呢,嗯,其实呢,咱们现在还不用过多的接触它,嗯,这个呢在哪用呢?这个咱们,嗯其实目前用不着,到后边呢就会用着了,嗯,那就涉及到数据库了,我们说呢,这个java.circle下的这个date呢,它呢实际上是对应着啊我们数据库中的啊,日期类型的变量,嗯,什么意思呢?我们打开一个数据库啊。这个我先打开一下表,打开这个表当中呢,我们这有一个呃,员工的Bo生日,生日呢,你看这就是一个日期啊,你要看这你觉得不明显,我们可以打开叫改变表,在这呢,我能看到这个birth呢,是一个date类型。在数据库当中呢,它有一个类型呢,叫data,那比如说咱们回头呢,希望呢,把这个customer这个数据。
10:04
咱们希望把这个数据呢,像横向的这一条,咱们就可以翻译成Java层面的,是不是一个对象了,诶某一个对象ID呢,属性是1STRING name呢是叫汪峰,你看我这还放到头条了是吧?哎,汪峰上头条哈,嗯,然后这个呃,Email呢,呃也是一个string类型的,好到这了,到这呢,呃,数据库这块呢,叫date类型,咱们翻译成这个Java中的一个属性啊,那也叫date,这呢就涉及到我这个date是哪一个里边的date。哎,我们说啊这个啊,数据库里边这个data,如果要翻译到咱们Java层面呢,这个data呢,是circle下的data,哎,是它对应的是数据库中的这个日期类型啊,你一看这就知道是专门为了帮我们匹配这个数据库的啊,Circleq这块就是一个查询语言嘛,是吧,对应的是这个data啊。
11:02
嗯,就是它了,嗯就是它了,那这个data呢,咱们那也就稍微多说两句,嗯,跟数据库交互的时候呢,我们才会涉及到它,平常的话呢,用咱们一般呢,都还是用这个YouTube的data,嗯,那这个SQL这个data呢,我们关注它什么事呢?那稍微也关注一下怎么造对象呀,哎,那就涉及到还如何实例化。哎,这是第一个问题啊,那这块呢,说到了咱们就演示一下,那我们去new一个,这时候你别new data了。它俩这个类名一样,是不是得写全呀,哎,你data就它这时候呢,Ctrl alt斜杠就俩还删了一个。就一个了,那就跟我们这个勾造七二呢,其实一样,对,那就整一串数呗,哎,就是相当于就这个毫秒数了啊,那那我们再al enter一下,生成一个对象,这个我叫date一下三了。
12:08
那这呢,就是相当于创建了一个circle的data对象。哎,这样咱就造好这个对象了啊,那我这个对象呢,是不是也会有这个to string和get time这个方法呀,最不行的话呢,你就用负类的那个呗。哎,我们s out一下,嗯,这呢,我们去调它的兔S针,它这个兔S针呢,我们看一下这个情况,它呢光打印出来的年月日对吧,他没打这个十分秒啊,那要问一句它里边有十分秒吗。有吗?有这都毫秒了,那能没有吗?对吧,毫秒都知道,那肯定有,只是说呢,它输出的时候呢,它广哎让你显示年月日了。
13:04
啊,这个意思啊,行,嗯,这呢,我就不用他再去调该time了啊,你调该time呢,返回就你的毫秒数,那那就这个数呗,啊这就完了,那么咱们这是说的这个第一个事儿啊,再说一个事儿啊,如何实例化第一个第二问题呢,如果咱们现在有一个呢,嗯,如果我现在有一个Sq.data的对象,你说我怎么把它转换成嗯u.data对象。把侧后的一个对方转换成一个YouTube的data,直接复制就完了,多态嘛。是吧,哎,那所以这个就不说了啊,所以现在我想说的一个问题呢,就是说我们如何哎将一个哎U下的对对对象呢,转换为一个呃,Circle的data对象。
14:04
这个咱们严格来讲,把这个Java点也写上。嗯,把这个事呢,咱们说一下,咱们就不往下再讲了。诶,把一个U的date对象转化成S的date,嗯,这就相当于是,呃,这个从负类的往子类去转,有同学说那不就强转就完了,那强转的前提呢,是你这样写的,这样写行啊,你看我这写个四,咱们在这拗一个java.circle.data我这写一个时间,这呢是一个多肽了。子类负给负类对吧?啊子类对象然后呢,在这个位置呢,我们java.circle.data我写一个DATA5,哎,你把这个DATA4做一个强转,这个呢,OK吧,会不会报错,不会,你这不就是S的data多态上去,然后我们又强转下来嘛,这肯定不会错啊嗯,这呢还不是咱们要说的这个事啊,你要这么着转的话呢,那那是以前面向对象就能做啊,以前面向对象就能做,咱们现在说的不是这种情况,当然也可以归结为一种情况吧,情况一啊,那现在呢,实际想说的是这种情况。
15:30
情况二,我们现在呢,就是new了一个。U下的data。比如说我就这样写的。这个date呢,是我们U下的。就好比是咱们现在有这样一个需求,什么需求呢?嗯,我这呢是在咱们Java层面,我拗了一个U下的data,咱们现在呢,想把这个对应的时间我给你塞到数据库当中,你要塞到这,咱们说了人家这块这个date呢,是不是跟那个circle去搭配啊,哎,那言外之意呢,你需要呢,把你这个优秀下的date呢,你得转化为circle下的date。
16:14
啊,你你你这个时候呢,你要是硬转这个是不是肯定报错呀。没问题吧,这个报错吧。宝马。你说这这不没报吗?你要这都这,我要是问你这个问题,这不有点侮辱你吗?编译肯定不报是吧?运行报不报呀。哎,这个今天讲的时间有点长了,大家可能都脑袋都有点儿懵住了啊,肯定报吧。为啥肯定报呢?能不报吗?不可能不报啊,以前咱们不是讲过这个事,我这用了一个person,你硬把这个person呢,给他转化成一个student,用的就是person,他怎么可能转化成student呢?
17:11
啊,咱们强转征程以前讲的都是你new的是个student,你付给person了,你再往下转,那肯定可以是吧,你现在new的就是个person里边还有这个这个你这学生还有他自己的一些什么专业啊,这些属性你用的就是P,你能强转成,你要真成了,那这个属性你从哪给我整啊。对吧,也没有啊,所以这块呢,你的就是一个负类。你非得把它转化成此类,那他肯定成不了啊,这个是不行的,所以那要真能行,咱这个在这讲也没啥意思了啊,咱们现在讲的就是你现在就是一个复利对象,先转换成它这个其实没有什么新知识了,利用上面这个结构呢就可以做。啊,咱们不就是想需要一个circleq下的date吗?我叫DATE7,哎,怎么办呢?咱们上边这个DATE6,它有一个方法叫做get time,我就拿到这个毫秒数了,而恰好呢,咱们这个USO加的date呢,构造器,咱们说也就这一个可以用,哎,你把那个刚才的time扔进去不就完了吗?
18:15
这不就搞定了,因为他们共通的一个就是这个毫秒数。把这个环保数拿过来作为我们这个data的一个构造器的参数,哎,这就成了。哎,这就是一个转换啊,哎,这是这个转换的问题。啊,这已经写过了,行,那么关于这个date他俩呢,大家就掌握这几个事儿就行了啊。
我来说两句