Java面向对象
终于学习完了Java了。唉。这个Java好是好,但是我就是不太喜欢啊。下面总结这个月的学习把。
Java和C#一样都是只支持单继承的。不像C++那样可以多继承,Object类是所有类的父类。
在子类中可以通过super关键字调用父类的方法。以可以通过this关键字调用自己本身的方法。但是在构造函数中super和this关键字只可以存在一个,并且是放在构造函数的第一句,
Very import。
抽象类是不可以实例化的。抽象类中可以没有,可以有一个或者多个抽象方法。继承抽象的抽象类的子类必须重写这些方法。除非子类自己本身也是一个抽象类。
使用final修饰的类,不可以被任何类继承的。Final修饰的变量是最终变量,是常量;final修饰的方法是不可以被子类重写的。
第三章:
多态的理解:同一种对象在不同环境下执行同一种方法所得到的结果不一样,或者,不同对象在完成同一件事情所得到的结果不同。
在多态中:将子类转换为父类称之为向上转型,不需要强制转换,而反之将父类转换为子类就是向下转型,必须要强制转换。
向上转型后可以通过变量调用子类的覆盖了父类的方法。通过父类引用变量无法调用子类自己的方法。
向下转型必须转换为子类真正的对象。转换失败会引起ClassCastException转换异常。
Instead of 运算符是判断一个对象是不是属于某个类或者实现了某个接口
使用父类作为方法的形参是使用多态的常用方式。
--------------------------------------------------------------------------------------
接口:接口表示一总能力或者是一总约束,它是一些抽象方法集合和全局静态常量集合的类。
Java与C#接口的区别:
1.Java中接口通过extends继承父接口,类通过implements 实现接口,C#中通过“:”来实现这两个功能。
2.Java中的成员变量(属性)一般是常量,自动用public static final修饰,C#接口中不允许存在成员变量,但是可以有属性。
3.Java接口中的属性和方法都是使用public修饰符的。C#中默认是public,但是不允许显示使用public修饰符。
4.Java接口中可以第一静态常量和方法。但是C#接口中不允许包含任何的静态成员。
----------------------------------------------------------------------------------------------
类只可以继承一个类,但是可以同时实现多个接口,但是一定要实现接口中所有的方法。
通过面向接口编程,可以降低代码间的耦合型。提高代码的可扩展性和可维护性。
面向接口变成意味着:开发系统是,主体构架使用接口,接口构成系统的骨架,这样就可以通过更改实现接口的类来更换系统的实现。
继承是Java中实现代码重用的手段之一。
Java和C#一样都是只支持单继承的。不像C++那样可以多继承,Object类是所有类的父类。
在子类中可以通过super关键字调用父类的方法。以可以通过this关键字调用自己本身的方法。但是在构造函数中super和this关键字只可以存在一个,并且是放在构造函数的第一句,
Very import。
抽象类是不可以实例化的。抽象类中可以没有,可以有一个或者多个抽象方法。继承抽象的抽象类的子类必须重写这些方法。除非子类自己本身也是一个抽象类。
使用final修饰的类,不可以被任何类继承的。Final修饰的变量是最终变量,是常量;final修饰的方法是不可以被子类重写的。
第三章:
多态的理解:同一种对象在不同环境下执行同一种方法所得到的结果不一样,或者,不同对象在完成同一件事情所得到的结果不同。
在多态中:将子类转换为父类称之为向上转型,不需要强制转换,而反之将父类转换为子类就是向下转型,必须要强制转换。
向上转型后可以通过变量调用子类的覆盖了父类的方法。通过父类引用变量无法调用子类自己的方法。
向下转型必须转换为子类真正的对象。转换失败会引起ClassCastException转换异常。
Instead of 运算符是判断一个对象是不是属于某个类或者实现了某个接口
使用父类作为方法的形参是使用多态的常用方式。
--------------------------------------------------------------------------------------
接口:接口表示一总能力或者是一总约束,它是一些抽象方法集合和全局静态常量集合的类。
Java与C#接口的区别:
1.Java中接口通过extends继承父接口,类通过implements 实现接口,C#中通过“:”来实现这两个功能。
2.Java中的成员变量(属性)一般是常量,自动用public static final修饰,C#接口中不允许存在成员变量,但是可以有属性。
3.Java接口中的属性和方法都是使用public修饰符的。C#中默认是public,但是不允许显示使用public修饰符。
4.Java接口中可以第一静态常量和方法。但是C#接口中不允许包含任何的静态成员。
----------------------------------------------------------------------------------------------
类只可以继承一个类,但是可以同时实现多个接口,但是一定要实现接口中所有的方法。
通过面向接口编程,可以降低代码间的耦合型。提高代码的可扩展性和可维护性。
面向接口变成意味着:开发系统是,主体构架使用接口,接口构成系统的骨架,这样就可以通过更改实现接口的类来更换系统的实现。
第八章:
异常:1.Checked异常
2.运行时异常
Checked异常必须捕获或者声明抛出。否则编译器是无法通过编译的。运行时的异常不一定是要求捕获或者声明抛出的。但是最好不要出现运行时异常,这样感觉你做事不够谨慎。
Java的异常总共只有五个关键字。
Try
Catch
Finally
Throw
Throws
------------------------------------------
Try catch块中的语句都存在return的时候finally块中的语句都会执行的。除非遇到了。System.exit(1);-不正常退出。
Catch块的放置顺序也是也是不同的。子类必须放在父类的前面,可以嵌套try catch块,但是这样是不好的。不要嵌套超过两层的try catch 语句块。
第九章:
集合:一个不固定类似数组的可变存储空间。
在Java中集合可以分为很多种,主要的有Set集合,List集合,map集合。
Set集合接口存储的是一组唯一(不允许重复)、无序的对象。
List集合接口存储的是不唯一(允许重复)、有序(以元素插入的顺序来存放,不会重新排列)的对象。
Map集合接口主要是→key和value 组成的。其中key 不要求有序,不允许重复的。Value同样不要求有序,但是允许重复。
ArrayList和数组是采用的相同的存储方式。
对于它的一些使用方法在这边不进行叙说了。LinkedList采用的是链表存储方式,对于插入和删除比较快。
HashMap是实现了Map接口的具体实现类,他的存储方式是通过哈希表的。它的操作方式有点类似于字典,所以有时候也称之为字典。
迭代器:Iterator接口是Java集合框架中的一个成员。它的作用主要就是用来遍历Collection集合中的元素的。不可以迭代Map中的元素的。
当使用迭代器进行读取的时候,是不可以改变集合。只有通过Iterator的remove方法来删除上一次next方法返回的集合元素才可以。否则会引发java.util.ConcurrentModificationException。