摘要:
前面我们学习了面向对象处理异常的两种方式,一个是抛出异常,一个是捕捉异常。但是在异常处理当中还有一个关键字我们没有讲到,就是finally关键字。这个关键字的作用是在其后的关键字无论是什么都会被执行到。比如我们先来看一个例子: 1 class DemoE3 2 { 3 4 int [] arr = {2,3,4,5}; 5 int index = 0; 6 7 DemoE3(int index) 8 { 9 10 this.index = index;11 12 }13 14 void method()15 {16 1... 阅读全文
摘要:
我们知道当我们处理异常的时候,一个是声明,另外一个是捕捉。捕捉:异常处理的捕捉方式,这是可以对异常进行针对性处理的方式。具体格式是: 1 try 2 { 3 4 //需要被检测的异常 5 6 } 7 catch(异常类 变量)//类似于函数,变量用来接受发生异常的对象的(参数) 8 { 9 10 //处理异常的代码块11 12 }13 finally14 {15 16 //一定会被执行的代码17 18 }那么什么时候用捕捉,什么时候用声明呢?有的是把异常暴露出去,有的是不暴露异常。我定义合理的功能,功能没有问题,你胡乱传入参数出现的异常,这个时候我就得把异常信息返回... 阅读全文
摘要:
一、异常的概述: 什么是异常?在我们编写java程序的时候,会出现一些问题,比如内存溢出啊或者数组索引超出最大索引啊,这些编程当中出现的这些个问题就是异常。但是异常也分为可以处理的和不可以处理的。比如JVM虚拟机出现的异常就是不可以处理的。可以处理的异常就是指,在我们java程序当中的数组最大索引超出啊,这些问题我们是可以处理的。同时异常也分为Error和Exception。从字面意义上来理解的话,可以理解成错误和异常。Error指在JVM运行当中出现异常,程序自动退出。下面我们来写个例子看下什么是异常? 1 class Demo1 2 { 3 4 int[] arr = ... 阅读全文
摘要:
之前我们提到“匿名”这个字眼的时候,是在学习new对象的时候,创建匿名对象的时候用到的,之所以说是匿名,是因为直接创建对象,而没有把这个对象赋值给某个值,才称之为匿名。匿名对象回顾:class NoObject{ void method() { System.out.println("Hello NoNameObj"); }}class NoName{ public static void main(String[] args) { new NoObject().method();//这里创建完对象之后,并没有把对象直接赋值给某个值,而是创建完对象之后,直接调用对象,之后这 阅读全文
摘要:
什么是面向对象内部类呢?所谓的内部类,即从字面意义上来理解的话,就是把类放到类当中。那么内部类都有什么特点呢?1、内部类可以访问包裹他的类的成员。2、如果包裹他的类想访问被其包裹的类的话就得实例化,才可以访问。代码示例: 1 class Outer 2 { 3 4 int num = 10; 5 6 void show() 7 { 8 9 System.out.println("Outer Show method!!");10 11 }12 13 void method()14 {15 16 Inne... 阅读全文
摘要:
如何理解多态,让我们举个例子来描述一下,因为单纯的说多态大家可能不理解: 1 abstract class Animal 2 { 3 4 public int age = 10; 5 6 abstract void eat(); 7 8 public void run() 9 {10 11 System.out.println("I Run!");12 13 }14 15 }16 17 class Dog extends Animal18 {19 20 public void eat()21 {22 23 ... 阅读全文
摘要:
上一节当中我们说道抽象类,抽象类当中的方法可以是抽象的也可以是非抽象的,那么当抽象类中所有方法都是抽象的时候,我们就可以把它重新定义为接口。代码示例:1 abstract class Animal2 {3 4 abstract void eat();5 abstract void goToBed();6 7 }上述代码写成接口的形式为:1 interface Animals2 {3 4 public void eat();5 public void goToBed();6 7 }在接口当中的方法,也只能是方法名称,没有方法体。类与类当中存在的关系是继承关系,那么... 阅读全文
摘要:
什么是抽象类,之所以说抽象就是具体的反义词喽~抽象离我们最近的距离也就是初中的时候学过的美术课,抽象画派。拿一桶画彩就这么往画布上一泼,那就是抽象。那么java世界当中什么是抽象呢?我们再拿动物还有狗的这个例子来讲吧,因为这个非常的好理解。比如说,你可以说狗吃饭吧,然后小狗狗就去吃饭了。那么你能说,动物你去吃饭吧?这个就搞的我们有点迷糊了,动物怎么吃饭,动物是一个类的概括。就向你去菜市场买鸡吃,你冲老板说:我来买个动物。动物只是个概念而不是一个具体到某一个具体的类别的动物,这里动物这个概念就是抽象的,我们并不能具体知道,别人的所指是一个具体的什么东西。还有,我们在一个类当中,比如拿动物这个类来 阅读全文
摘要:
之前我们讲过继承的相关知识了,继承就是子类继承父类的属性和方法并且还可以覆盖父类的方法。但是这样有一个缺陷是什么呢,就是当我们一个类当中涉及一些封装的核心的东西或者对整个系统非常关键的方法或者类的时候,这个时候如果子类覆盖掉父类的方法将会对我们带来安全隐患。为了能够继承父类的方法,同时又能够保证我们类的安全性,这个时候我们就用到了final这个关键字。final关键字之一: final从字面意思上来理解的话,就是最后的意思,也就是说这个方法一经定义之后,就是最后的,不能更改的。当我们用这个关键字修饰一个类的方法的时候,任何继承自这个类的子类,都不能够在自己的方法当中来覆盖他父类的这个方法。代. 阅读全文
摘要:
在之前讲到java面向对象继承的时候,我们只讲到了两个比较重要的知识点,一个是父子类当中有同名的成员变量,这个时候,我们引入了super这个关键字来区分这两个同名成员变量,除此之外,我们还讲到了父子同名函数的覆盖,这父子同名函数必须是参数类型、个数相同,返回值也相同才可以,同时子类要覆盖后的成员方法的访问权限要大于等于父类当中的同名函数权限。那么还有一个地方我们没有讲到,那就是父子当中的构造函数是怎样的?class Fu{ Fu() { System.out.println("Fu chu shihua "); }}class Zi extends Fu{ Zi() { S 阅读全文