JAVASE2020.10学习总结

Posted hupan56

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVASE2020.10学习总结相关的知识,希望对你有一定的参考价值。

javaSE2020.10学习总结

scanner的用途:

scanner.hasNext():读取之前可以用来判断用户还有没有字符串输入。

scanner.next():使用next方式接收

scanner.close():用完scanner后最好关掉(好习惯),[凡是属于io流(输入输出流)的类如果不关闭会一直占用资源,要养成好习惯用完就关掉。]

scanner.hasNextDouble():可用来判断是否输入的是整数和小数。

while(scanner.hasNextDouble){

}

for(int x:数组名):可达到遍历数组的目的。

Idea:alt+insert:自动生成get+set封装。

ctrl+H:层次树!

属性私有:get/set

继承:

继承:本质是对某一批类的抽象,从而实现对现实世界更好的建模。

所有的类都默认继承object类!

Java中类只有单继承,没有多继承!只有一个父亲,可以有多个儿子。但可间接继承多个父类!

super注意点:

1、super调用父类的构造方法,必须在构造方法的第一个

2、super必须只能出现在子类的方法和构造方法中!

3、super和this不能同时调用构造方法!

4、私有的东西无法被继承!

vs this:

代表的对象不同:

this:本身调用者这个对象

super :代表父类对象的应用

前提:

this:,没有继承也可以使用

super:只能在继承条件才可以使用

构造方法:this():本类的构造

super():父类的构造!

instance of用途

x instanceof y:x和y有父子关系则编译通过;或者x指向的类型和y有关系。

强制转换子类(向下转型):把父类转换为子类,如person是父类,student是子类—>

person obj=new student();

student obj1=(student) obj;

 

static关键字详解:

同一个类中,非静态方法可以调用静态方法里面的所有东西;静态方法可以调用静态方法里面的东西。

 

执行顺序:静态代码块,匿名代码块,构造方法。

静待代码块只执行一次

匿名代码块用途:赋初始值,随着对象的创建而执行,在方法之前,静态代码块之后。

 

import static java.....:静态导入包:导入方法后,可直接使用包中方法。

 

抽象:

抽象类中可以写普通方法。

抽象方法必须在抽象类中。

 

接口:

接口与普通类和抽象类的区别

普通类:只有具体实现。

抽象类:具体实现和规范(抽象方法)都有!

接口:只有规范!自己无法书写方法~专业的约束!约束和实现分离。

地位

面向接口编程。

接口定义:

接口就是规范,定义的是一组规则。接口的本质是契约,就像人间法则,制定好后大家都遵守。

关键字:interface

注意:

接口中的所有定义其实都是抽象的public abstract。

接口都需要实现类->implements关键词实现。如public class UserService implements user{},即UserService来实现user接口。

implement可以继承多个接口,不同接口之间用逗号隔开。

实现了接口中的类就必须实现接口中的方法。

接口中定义的属性都是常量(常量要大写)。

作用:

1、约束

2、定义一些方法,让不同的人实现

3、方法都是public abstract

4、定义的属性都是public static final

5、接口不能被实例化~,接口中没有构造方法~

6、implements可以实现多个接口

7、接口的实现类必须重写接口中的方法

内部类:

定义:

在一个类里面再写一个类就是他的内部类,而相对的,这个类是他内部类的外部类。

定义方法:

通过外部类来实现内部类。如:

Outer outer=new Outer();

Outer.Inner inner=Outer.new Inner();

内部类可以获得外部类的私有属性和方法

注意:

一个文件中只能有一个public class,但可以有多个class类。

局部内部类:

就是方法中的类。

匿名内部类:

没有名字初始化类,不用将实例保存到变量中!

异常:

处理思想:

异常处理框架思想,即所有的异常都可以用一个类来表示。即java.lang.Thowable作为所有异常的超类。超类之下分为Error和Exception两大子类,这两大子类下又有众多子类。

技术图片

Error:

Error类对象由Java虚拟机生成并抛出。大多数错误与代码编写者所执行的操作无关。

Exception:

这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。

Error和Expection两者区别:

Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程;Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常。

异常处理机制:

抛出异常、捕获异常

异常处理五个关键字:

try、catch、finally、throw、throws。

try:

监控区域

catch:

捕获异常。catch()中的参数就是你想要捕捉的异常类型。最高是Throwable。可以同时使用多个catch来捕获多个异常,但类似于if的多选择结构,只会出一个结果。

最大的异常要写在最后面,比如说Throwable要在最下面的catch中。

finally:

处理善后工作。可以不要finally,但像什么IO流,资源等需要关闭的工作,就需要使用finally进行善后工作进行关闭。

throw:

throw是语句抛出一个异常。 语法:throw (异常对象); throw e;

throws:

假设这个方法中处理不了这个异常,方法上抛出异常。

throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常) 语法:(修饰符)(方法名)([参数列表])[throws(异常类)]{......} public void doA(int a) throws Exception1,Exception3{......}

throw和throws的区别:

throw语句用在方法体内,表示抛出异常,由方法体内的语句处理。 throws语句用在方法声明后面,表示再抛出异常,由该方法的调用者来处理。

throws主要是声明这个方法会抛出这种类型的异常,使它的调用者知道要捕获这个异常。 throw是具体向外抛异常的动作,所以它是抛出一个异常实例。

throws说明你有那个可能,倾向。 throw的话,那就是你把那个倾向变成真实的了。

同时: 1、throws出现在方法函数头;而throw出现在函数体。 2、throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常。 3、两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。

Idea快捷键生成try/catch/finally:

ctrl+alt+t。

自定义异常:

用户自定义异常类,只需继承Exception类即可。

以上是关于JAVASE2020.10学习总结的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE set集合学习总结

JavaSE学习总结—— 集合

JavaSE学习总结

JavaSE课程知识体系总结

JavaSE学习总结——接口与抽象类

JavaSE视频学习阶段性总结 一(java入门,原生数据类型及使用注意,运算符)