Day 13开篇:
"今天java基础主要学习了接口的问题,四种访问权限的修饰符,关于返回值深入的问题,代理设计模式,Object,Object的常用方法, Scanner等同时总结了面向对象的知识点。 "
知识点反馈:
今天的知识点总结的思维导图
一.接口的问题:
1. 注意:
(1)JDK8版本之前,接口中的所有方法都是也只能是抽象方法
(2)JDK8版本之后,接口当中允许出现默认方法,因为某些接口本身来说就可以具备一些默认的行为
public default int show3(){
}
(3)JDK8版本之后,接口当中也允许出现静态方法。
public static int show3(){
}
(4) 如果接口允许存在非抽象,那么也就意味着N个接口都可以存在一个重名且具体的默认方法,当实现类进行多接口实现的时候,就会造成一个接口冲突的问题
(5)如何去解决?
类优先原则(在类中重写一个跟接口声明一模一样的方法)然后根据重写方法,来进行选择性调用 A2.super.help();
2. 四种访问权限的修饰符:
二. 关于返回值深入的问题:
1. 返回值类型的问题:
(1)接口:要的是这个接口任意实现类的对象
(2)抽象类:要的的该抽象类具体子类对象
(3)具体类:要的是该类的具体对象
2.形式参数的问题:
(1)接口:要的是这个接口任意实现类的对象
(2)抽象类:要的是这个抽象的具体子类对象
(3)具体类:要的是该类的具体对象
三.代理设计模式:
1.例子:
在程序的开发当中,我们也经常需要隐藏一些信息,比如说,我的服务端连接其他的服务端,我不想让别人获取到我们服务端的信息,咋办?
这种情况,我们既要保证代码能够正常运行,又不能让对方获取信息,所有使用一个中间代理进行完成
2. 分类:
(1)静态代理模式:就是一个类的对象的任务,自己不想处理,交给另外的一个类的对象去处理
(2)动态代理模式:代理类不重写接口的方法,在程序运行中动态绑定要代理的方法
四.Net
1. Object:类Object是类层次结构的根类。每个类都使用Object作为超类;所有对象(包括数组)都实现这个类的方法,(只有是一个类,都是Object的子类)
2. Object的常用方法:
(1)int hashCode():返回该对象的哈希码值
(2)哈希码值其实是根据哈希算法算出来的一个值,这个值和我们的内存地址值相关,但是不是实际地址
(3)只不过是实际地址转换的一个虚拟地址
Class getClass():
返回此 Object 的运行时类
3. Scanner:
(1)public boolean hasNextXXX():判断你输入是否为某一种数据类型
(2)出现了问题:
<1>当我们使用Scanner的时候。在使用nextLine的时候,发现只输入了一位就已经结束了
<2> next:如果字符串当中包含了首尾空格,next不会进行识别
<3>nextLine:如果字符串包含了空格,nextLine依旧保留
<4>由于nextLine会的空格或者换行等转义字符都会进行识别,当我们上一次输入完毕之后,其实会产生一个/n的转义字符
<5>在转义字符产生之后nextLine以为自己获取到了数据,所以直接结束掉了
<6> 怎么解决掉这个问题?
无法解决,除非你新建一个Scanner对象。
![](https://i-blog.csdnimg.cn/blog_migrate/f65cf6540908a08d6d63f40028dd45d3.png)
面向对象总结:
知识点一:
1.概念:
一种基于面向过程的编程思想,顾名思义,就是站在对象的角度上面去考虑问题,不需要在乎每一个功能是如何实现的,强调的某些具备完成功能的对象。
2.面向对象的三大特征:
(1)封装(Encapsulation):封装是把客观事物抽象成类,并且把自己的属性和方法让可信的类或对象操作,对不可信的隐藏。
(2)继承(Inheritance):继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
(3)多态性(polymorphisn):多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。
3.面向对象思想:
(1)是一种更加符合我们思想习惯的思想
(2)将复杂的事情简单化
(3)我们从原来的执行者变换为了指挥者
(4)万事物皆对象
4.事物,类和对象:
(1)事物:事物是对现实生活当中的描述
(2)类:其实就是分门别类意思,他是一组相关属性的行为和集合,是一个抽象的概念
(3)对象:是某一个事物的具体表现形式,是一个真正且具体存在的东西
(4)一个对象内存的走向图
5.属性和行为:
(1)属性:属性其实是对一个事物的描述,比如人有高、眼睛是什么颜色
(2)行为:行为其实是这个事物能完成的功能,,比如人可以学习,人可以打篮球
6.成员变量和成员方法:
(1)成员变量:和我们之前定义的变量是一样的,只不过位置不同,在类中方法方法外。
(2)成员方法:和我们之前定义的方法是一样的,只不过先不写static
知识点二:
一.匿名对象:
1. 概念:就是没有名字的实体,也就是说这个这个实体只存在了堆内存地址,并没有栈空间(就是没有名字的对象)
2. 匿名对象的用途:
(1)当对象对方法只进行一次调用的时候,可以使用匿名对象进行简化
(为什么?因为匿名对象没有栈空间,所以只能使用一次,第二次使用一定会产生新的空间出来,如果你的方法被多次调用,且要求使用 的是同一个对象的时候,匿名就不合适了,他只适合这个对象一次性使用的时候。)
(2)可以作为实际参数进行传递或者返回(前提是你对于这个对象的使用度只有一次的时候)
3. 匿名对象的好处:
(1) 使用完毕就是垃圾,等着GC来回收
(2) 语法简洁,不需要创建对象
4. 匿名对象的缺点:就是一次性使用的
二.封装:
1. 概念:隐藏内部实现细节,提供对外的公共访问方式;一般来说,一个即将被