JAVASE2020.10学习总结
Posted hupan56
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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虚拟机生成并抛出。大多数错误与代码编写者所执行的操作无关。
这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。
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是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常) 语法:
throw和throws的区别:
throw语句用在方法体内,表示抛出异常,由方法体内的语句处理。 throws语句用在方法声明后面,表示再抛出异常,由该方法的调用者来处理。
throws主要是声明这个方法会抛出这种类型的异常,使它的调用者知道要捕获这个异常。 throw是具体向外抛异常的动作,所以它是抛出一个异常实例。
throws说明你有那个可能,倾向。 throw的话,那就是你把那个倾向变成真实的了。
同时: 1、throws出现在方法函数头;而throw出现在函数体。 2、throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常。 3、两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
Idea快捷键生成try/catch/finally:
ctrl+alt+t。
自定义异常:
以上是关于JAVASE2020.10学习总结的主要内容,如果未能解决你的问题,请参考以下文章