在大学校园里学的东西很杂,很多,但是汗颜的是不精。最终我决定再次选择走Java深入这条路。于是开始复习Java,最近我讲对基础知识做一个总结,记录下我的Java复习中的重难点。
JAVA中的一个最基本最重要的概念就是类的概念.Java是面向对象的高级开发语言。而面向对象有三个基本的特性:封装性,继承和多态。封装是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式,这样有利于安全性,及协作分工;继承主要是将多个类中的相同属性和行为抽取出来,并将这些内容封装起来,她可以提高代码的复用性,让类与类之间产生了关系,为多态提供了前提。由于类的继承关系,导致了某一类事物的多种形态的存在,具体体现在父类或接口的引用指向或者接受自己的子类对象,她提高了程序的扩展性和后期的可维护性,因此我们可以看出多态的前提是存在继承或者实现的关系,以及覆盖操作。
类实际上是一个实体的体现,这个实体可以是一个一些方法,变量的集合体。而她最主要的功能是把生活中要处理的问题或者对象抽象成计算机可以识别的抽象物,说白了,就是数据,比特流。实体中属性,对应着成员变量,而实体的行为相当于成员方法。成员变量不同于我们程序中的局部变量,那是因为局部变量之定义在局部范围内,存在于栈的内存中,作用的范围结束,也就自动释放空间。而成员变量定义在类中,在整个类中都可以被访问,随着对象的生命周期而运转。存在于堆中,有默认的初始值。从另一个方面上讲,我们可以把申请的对象可以看成是计算机包装生产出来的资源。而类则刻画了一个种类资源的模板。而在JAVA中使用new关键字去申请一个实体对象的,同时我们可以用构造函数来对我们要生产的所有实体进行统一初始化,他是对象在创建的时就会调用与之对应的构造函数。当一个类中没有构造函数时,那么系统就会默认加入一个空参数的构造函数,当自定义了无参数的构造函数后就会把系统的默认的构造函数覆盖掉。构造函数的与一般函数写法上有点不同他必须以类名作为方法名。可以有多个重载的构造函数。其格式为:
Public Class_name(参数列表(可以没有参数) ){
......
}
值得注意的是,个人认为主要是为了安全性,作为对象的简化形式,匿名对象一般使用的情况在于:当对象仅进行一次调用时和仅仅是为了产生一个可以传递的实际参数。在对实体的封装的过程中,我们会发现封装在类中恶意使代码变化的部分隔离在某一个类中而不会或少量的去影响其他的数据和代码。
作为一种对实体资源的保护,我们可以用private这个权限修饰符控制访问的方式。因为被private修饰后,该成员变量或者成员方法只在本类中有效,此时我们可以控制对外提供访问的接口,例如可以对恶性数据进行过滤等等,保证了代码的健壮性。
在java中我们可以用this关键字表示实体自身,用于构造函数之间进行互相调用。当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象,但凡本类功能内部使用了了本类对象,都用this表示。