本文主要是介绍J2SE之面向对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
J2SE面向对象这一块的内容还是较为简单的。之前面向对象的知识已经有了一定的了解与深入。到了Java这一块,换汤不换药。
在这里我将其与C#进行对比,分为新知识与就旧知识。图片比文字更加直观生动形象容易理解,晒一下:
首先声明一点,内存分析贯穿始终,也是我这次学习收获的最大的一个知识点。
面向对象:
面向对象有三部曲:考虑有哪些对象,类和对象有哪些属性和方法以及类和类之间有什么关系。
类的成员变量有八种,除了这八种,那么其它就为引用(一小块内存指向一大块内存).对象的创建和使用,类和对象的关系,构造方法相信我们已非常熟练,这里不过多介绍。
约定俗成命名规则:
类明首字母大写,变量名和方法名首字母小写,要遵循驼峰标识法(出现若干个单词的情况下,单词首字母大写,其他为小写)。
内存解析:
内存解析对于面向对象代码的学习大有帮助,学好了,代码的分析会达到事半功倍的效果。
内存分为栈区和堆区。声明定义的对象放在栈桥区,实例化出来的对象放在堆区。在这里要注意操作完堆区中留出的对象如果没有引用指向它,那么就会被垃圾收集器收集。
继承和权限控制:
附一张图胜千言万语。
注意一点,对于class的权限修饰只可以用public和default。
重写:
重写大家已经很熟悉了,说几点注意的地方。除了重些方法必须和被重写方法具有相同的方法名称、参数列表和返回类型,它还不能使用比被重写方法更严格的访问权限。
Java不同于C#的一点是在Java类中使用super来引用基类的成分
构造方法:
子类的构造的过程中必须调用基类的构造方法。子类可以在自己的构造中使用super(argument list)调用基类的构造方法。将super换成this代表调用本类的另外的构造方法,如果调用super,必须写在子类构造方法的第一行。
除此之外,如果子类的构造方法中没有显示地调用基类构造方法,则系统默认调用基类无参数的构造方法。如果基类没有无参的构造方法那么就会出错。
Hashcodes table
附图一张 :
从图中可以看出,独一无二代表了一对象,并且通过哈希码可以找到对象位置。
Object类和equals方法
public boolean equals(Object obj)方法,提供定义对象是否相等的逻辑。
Object的equals方法定义为:x.equals(y)当x和y是同一个对象的应用时返回true否则返回false.
Final关键字
这是新接触的一个知识点,理解一下:
final的变量的值不能够被改变(final的成员变量,final的局部变量(形参))
final的方法不能够被重写
final的类不能够被继承
小结:
面对对象的知识学过来学过去也就这么多,精通了一门语言,再去学别的语言,用上两三天研究一下语法就完全可以掌握。这次学习让我收获最大的就是要有宏观意识,不能够一头扎进某个难点出不来,造成学习效率的低下,使自信心大打折扣。学习前期要讲究囫囵吞枣,有时间和量的规定,前期先强迫自己高效完成,以后就会养成习惯。
补充:关于接口,我们都知道一个对象可以实现多个接口。但是会有多个接口方法一样的问题,为了避免混淆,是不去同时实现的。
这篇关于J2SE之面向对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!