文档章节

Java基础——面向对象

凯哥学堂
 凯哥学堂
发布于 2018/07/20 22:20
字数 1062
阅读 7
收藏 0

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。

Object的方法:
clone() Object 克隆
to String() String 转字符串
equals(Object) boolean 比较对象是否相等
get Class() Class 模板对象,通过此方法获得模板对象。
hashCode() int 转换成数字
gc 垃圾回收

hashCode(): int 转换成数字

hashCode()方法结构讲解:
首先传进来一个int hash值赋给h,然后if判断h等不等于0 ,并且长度大于0。大于0的话里面就有数据,小于0里面没有数据。
接着问char数组里面有没数据,没有直接return h 出去,有的话吧value char 数组交给 val变量,交给val变量后根据value的长度进行循环,循环过程中31*h + value 的第i个。(把char数组里面的数值取出来,进行累加,一直循环,循环累计后交给h ,return 反馈出去。)

image

hash值计算:拿“a,b,c”计算。hash 值:a = 97 b=98 c=99
计算过程:
31 * 0 + 97 = 97
31 * 97 + 98 = 3105
31 * 3105 + 99 = 96354

计算值在int范围内,超过int 就变负数,超过负数又变回正数。(正变负,负变正。围绕着int范围)

image

HashCode申请方式:

image

继承:
1.派生
2.规范:做一个父类,父类上只有空方法,要求子类重写这些方法。
实现一种编程方式,面向父类编程。(拿父类做类型,拿子类实现)

抽象类:
让你更好的实现父类编程。
父类上写了抽象方法子类就必须重写父类的抽象方法。

抽象类的规则:
1.抽象类不可以直接new对象。
2.java中不允许多继承。
3.要想创建抽象类对象,就必须有子类。

普通抽象类:有抽象方法,也有实现方法。(有抽象方法也有其他方法)
纯抽象类:只有抽象方法,无其他方法。(全部都是抽象方法)
定制了规范,要求子类必须实现。

抽象类申请方式:加abstract 关键字!
图1:父类 : 变成抽象方法可以不要大括号。

image

图2:子类:父类申请了抽象方法,必须要重写父类的抽象方法才可以,不然会报语法错误。
不是抽象方法可以不重写。

image

C++对抽象类的应用:多继承:
1.继承一个类
2.继承多个抽象类
接口:接口解释纯抽象类转变过来的。
java不能多继承,但是可以单一继承,可以实现更多接口。
里面只有方法声明没有方法实现:
JDK1.7以后(接口可以申请静态方法)
JDK1.9 (接口可以申请default实力方法)
接口是一个纯抽象类,java只可以单一继承,但是可以多继承多个抽象类(接口),这样更加的规范、严格。

接口的魅力:
数据库有很多个,每个数据库厂方数据库的访问方式都不一样,数据库会不定时更新,更新后的代码也会发生变动。
Java把数据库申请方式的方法申请到了接口之中,把接口做好了让数据库厂方去实现。就是java把接口的规范制定好了,让数据库厂方来实现接口的连接。
Java制定了游戏规则,至于完成的怎样就让业界的程序员来评价,评价好的就有市场,这样连接数据库出现问题,就与java无关,是数据库实现者没有实现好!
程序员只要学会一种接口的使用就可以了,不需要学习其他的连接方式就可以操作数据库。

image

© 著作权归作者所有

共有 人打赏支持
凯哥学堂
粉丝 18
博文 316
码字总数 284948
作品 0
东城
程序员
私信 提问
JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千!

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52724939 JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千! 经过了几...

Aduroidpc
2016/10/02
0
0
【Java学习路线】新手该如何一步步的学习 Java

新手该如何一步步的学习 Java? 如果真的想学Java,最好要循序渐进,有章有法的学习它! 今天小慕就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容。 首先,给大家分享一张以 企业...

Eddie_yang
2018/11/15
131
0
java 7 入门书籍

一、Java从入门到精通 《Java从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识。 《Java从入门到精通(第3版...

modernizr
2014/05/15
6.9K
9
在.NET平台上使用Scala语言(上):初尝

Scala是Java平台上的一门新兴起的语言,我也不止一次在博客上提到它。我非常希望它可以取代Java这种劣质语言,让Java平台的生产力上一个台阶。事实上,Scala从一开始——或者说“很早”就对生...

mj4738
2011/11/01
0
0
Java 程序员的错

编者注:可以喷语言,但不要搞人身攻击! BTW:我也是一名 Java 程序员,哈哈! Java程序员是有问题的。我使用Java编程已经有10多年的历史。同时,我还有过大量的使用其它语言开发的经历,比...

oschina
2014/07/29
7.8K
92

没有更多内容

加载失败,请刷新页面

加载更多

Flink 幕后之内存管理

Flink 幕后之内存管理 引言 目前很多大数据处理框架,例如Hadoop、Spark、Storm、Flink等。它们都基于JVM语言开发(java or scala),运行在JVM上。为了加速合并或者排序(基于磁盘的方式通常...

moyiguke
14分钟前
1
0
风起云涌,看云计算如何赋能媒体行业?

在媒体行业的转型升级中,云计算的出现多维度促进了媒体融合,打破传统媒体行业与新媒体的界限和竞争格局,在媒体素材管理、移动端功能演进的过程中扮演着重要角色,颠覆了传统媒体新闻采编、...

七牛云
16分钟前
0
0
Mybatis开发遇到问题汇总

mybatis 中![CDATA[...]] 在今天使用Mybatis的xml文件中写sql语句时写入了一些特殊字符 如 < > & 等,但解析xml文件的时候会被转义,事实上并不希望它被转义,可以使用<![CDATA[ ]]>. 这是XML...

wangwei2134
25分钟前
0
0
参数验证 @Validated 和 @Valid 的区别

来源:blog.csdn.net/qq_27680317/article/details/79970590 整编:Java技术栈(公众号ID:javastack) Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303 规范......

Java技术栈
27分钟前
0
0
JS实现继承的几种方式

前言 JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一。那么如何在JS中实现继承呢?让我们拭目以待。 JS继承的实现方式 既然要实现继承,那么首先我们得有一个父类,代码如下: ...

不负好时光
31分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部