Java编程语言——知识点总结

Java编程语言——知识点总结

(1)main()方法有好几种定义格式,不管哪种方式,都必须保证main()方法的返回值有void,并且有public和static杆件自修饰。不能用abstract修饰!

(2)每个程序中,main()方法是程序的入口,但是最先被执行的不一定是main()方法。在Java中,最先被调用的是静态块,即用static修饰的。

(3)Java初始化的顺序如下:父类静态变量> 父类静态代码块 > 子类静态变量 > 子类静态代码块 > 父类非静态变量 > 父类非静态代码块 > 父类构造函数 > 子类非静态变量 > 子类非静态代码块 > 子类构造函数。

原则:父类先,子类后;静态先,非静态后;变量(对象),代码块,构造函数依次排列。

(4)一个Java可以定义多个类,但是最多只能有一个类被public修饰,并且这个类的类名必须与文件名相同。

(5)构造函数必须以类名相同,并且不能有返回值(返回值也不能为void);每个类可以有多个构造函数,构造函数总是伴随着new一起调用;构造函数不能被继承,但是可以被重载(overload)。

(6)Java不支持多重继承,即一个类只能有一个父类,为了解决单继承的缺点,Java引入了接口(interface)的概念,通过多个接口来达到多重继承的目的。接口包含方法的定义,没有方法的实现。接口中所有的方法都是抽象的,接口中的成员的作用域修饰符都是public(因为用static和final修饰的接口是不能被继承的)。

(7)Java创建对象的方法有4个:①通过new语句实例化一个对象;②通过反射机制创建对象;③通过clone()方法创建一个对象;④通过反序列化的方法创建对象。

(8)面向对象的主要特征包括:抽象,继承,封装和多态。

(9)面向对象的有点:①较高的开发效率;②保证软件的鲁棒性;③确保软件的高可维护性。

扫描二维码关注公众号,回复: 2745112 查看本文章

(10)子类只能继承父类的非私有(public和protected)成员变量与方法。

(11)当子类中定义的成员变量与父类中定义的成员变量或者方法名字相同时,子类中的成员变量会覆盖父类中的成员变量或者方法,而不会继承。

(12)搞清楚组合和继承的区别,前者是has-a关系,后者是is-a关系。不要单纯的为了代码的的重用而使用继承,因为过多的使用继承会破坏代码的可维护性,当父类被修改时,会影响所有继承自它的子类,从而增加程序的维护难度和成本;不要仅仅为了实现多态而使用继承,采用接口和组合的方式会比采用继承的方式具有更好的可扩展性。(在Java中,能使用组合就尽量不要使用继承。)

(13)多态的表现方式:①方法的重载(overload),重载是指同一个类中有多个同名的方法,但这些方法有着不要的参数,因此在编译时就可以确定到底是调用哪个方法。这是一种编译时的多态,重载可以被看成一个类中的方法多态性。②方法的覆盖(override),也有翻译成重写的,子类可以覆盖父类的方法,因此同样的方法在子类和父类中有着不同的表现形式。通过这种动态绑定的方法实现了多态,由于只有在运行时才能确定调用哪个方法,因此通过方法覆盖实现的多态也可以被称为运行时的多态。(PS:只有类中的方法才有多态的概念,类中的成员变量没有多态的概念)

(14)抽象类和接口的异同:

【相同点】

①都不能被实例化;

②接口的实现类或者抽象类的子类都只有实现了接口或者抽象类中的方法后才能被实例化。

【不同点】

①接口只是定义,其方法不能在接口中实现,只有实现接口的类才能实现接口中的定义的方法,而抽象类可以有定义与实现,即其方法可以在抽象类中被实现。

②接口需要实现(用implements),但抽象类只能被继承(用extends)。一个类可以实现多个接口,但一个类只能继承一个抽象类,因此使用接口可以间接地达到多重继承的目的。

③接口强调特定功能的实现,其设计理念是“has-a”关系,而抽象类强调所属关系,其设计理念为“is-a”关系。

④接口中定义的成员变量默认为public,static,final,只能有静态的不能被修改的数据成员。抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native等访问修饰符修饰,同时方法必须以分号结尾,并且不带花括号。当功能需要累积时,用抽象类;不需要累积时,用接口。

⑤接口被用于比较常用的功能,便于日后维护或者添加删除方法;而抽象类更倾向宇充当公共类的角色,不适于日后重新对里面的代码进行修改。

⑥接口可以继承接口,抽象类可以实现接口,抽象类也可以继续继承具体类。抽象类也可以有静态的main方法。


不定期更新中

猜你喜欢

转载自blog.csdn.net/Ryan_lee9410/article/details/80210557