您的位置:首页 > 编程语言 > Java开发

Java基础---面向对象

2015-02-10 12:44 162 查看

一、面向对象的理解

面向对象是Java语言区别于c语言的一个重要特点,c语言是一中面向过程的思想,而面向对象也就是相对于面向过程来说的,面向过程强调的是功能行为,面向对象强调具有功能的对象。面向对象特点:1、是一种符合人们思考习惯的思想。2、可以将复杂的事情简单化。3、将程序员从执行者转换成了指挥者4、完成需求步骤:  a)首先找具有所需功能的对象。 b)如果不存在这样的对象,那么就创建一个具有所需功能的对象。 c)这样能简化开发并且提高程序的复用性。简单来说Java的开发过程就是不段的创建对象,使用对象,指挥对象完成所需功能,创建新对象,管理和维护已存在的对象,和处理对象之间的关系。面向对象有封装、继承、多态三个特征。

二、类和对象

1、类和对象之间的关系类的定义:使用计算机语言就是为了不断描述现实中的事物,而Java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。生活中描述事物无非就是描述事物的属性和行为,如人的年龄、身高、跑步、讲话等。而Java描述一个人的话。就用一个类来表示。人的年龄身高等属性就用java中的变量来描述,人的行为如跑步就用java中的方法来描述。对象就是一类事物中实实在在存在的一个个体。例


上图中就定义了一个以人为对象的类,类中包含年龄属性,以及说话的功能。而主函数中p就是类的一个具体对象,可以通过p.属性或者方法的形式对对象进行操作。2、成员变量和局部变量简单来说成员变量就是定义在类中的变量。局部变量就是定义在方法或者语句中的变量。区别:作用范围和内存分配不一样:成员变量在整个类中都可以访问,随着对象的建立而建立存放在堆内存中,有默认的初始值。    局部变量存在于栈内存中作用范围结束变量会被释放,并且没有默认初始值。3、匿名对象匿名对象是对象的简化形式。具体来说有两种使用情况:1、当对对象方法仅进行一次调用时。2、匿名对象可以作为实际参数进行传递。例 new Person();

三、对象的封装

什么是封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。封装的好处:将变化隔离,简化使用,提高复用性,安全封装的原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共的访问方法。封装的表现形式之一:private 关键字-权限修饰符,用于修饰类中的成员,私有只在本类中有效。常用形式:如上图,将Person类中的年龄属性,私有化,对外提供共有的get、set方法对其访问,提高了数据访问的安全性。

四、构造函数

特点:函数名与类名相同,不用定义返回值类型,不可以写return语句。当函数中没有定义构造函数时,系统会给该类加一个默认的参数为空的构造函数,如果自定义了构造函数,默认的构造函数就没有了。作用:给对象进行初始化。构造函数式在对象一建立,就给对象初始化,一般函数是对象调用才执行,一个对象建立构造函数只运行一次,而一般函数可以调用多次。构造函数的使用:分析事物时,该事物存在就具备一些特性或者行为,那么将这些内容定义在构造函数内。构造代码块:也是给对象进行初始化,对象一建立就运行,而且优先于构造函数。构造代码块和构造函数的区别:格式上不一样。构造代码块:{}。构造代码块中定义的是不同对象共性的初始化内容。                                                         构造代码块是给所有对象进行初始化,构造函数是给对应的对象初始化。

五、this关键字

先看小程序




当定义类中的功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。只要本类功能内部用到本类对象都用this来表示这个对象。this语句:用于构造函数之间进行互相调用。注:this语句只能定义在构造函数的第一行,因为初始化要先执行,一般函数不能直接调用构造函数,因为this语句不能在一般函数中,只能用在构造函数。总结:用法一:用于区分同名变量的情况,也就是区分同名成员变量和局部变量的时候。二:用于构造函数之间调用。

六、static(静态)关键字

  static是一个修饰符,用于修饰类中的成员。当成员被静态修饰以后,就多了一个调用方式,除了可以被对象调用以外,还可以直接被类名调用。格式:类名.静态成员。特点:随着类的加载而加载,也就是说随着类的消失而消失,生命周期长。优先于对象存在,也就是说先存在静态,在存在对象。被所有对象所共享。可以直接被类名所调用。静态变量也叫类变量。非静态变量也叫实例变量,二者的区别:类变量随着类的加载而存在于方法区中,实例变量随着对象的建立存在于堆内存中。静态的利与弊:利-对不同对象的共享数据进行单独空间的存放,节省空间,可以被类名直接调用。                            敝-生命周期过长,访问出现局限性。静态虽好只能访问静态。什么时候用静态:当对象中出现共享数据时,该数据被静态所修饰,当函数功能内部没有访问到非静态数据,那么该功能可以定义成静态的。注:静态方法只能访问静态成员,非静态方法既可以访问静态成员也可以访问非静态成员。静态方法中不可以定义this等关键字,因为静态优先于对象而存在。主函数是静态的。静态代码块:格式:static{ 静态代码块中的语句 }特点:随着类的加载而执行,执行一次,并优先于主函数,用于给类进行初始化。对象的初始化过程:1、把类名.class文件加载到内存中。2、执行该类中的static代码块,如果有的话,给该类进行初始化。3、在堆内存中开辟空间,分配内存地址给对象。4、在堆内存中建立对象的特有属性,并进行默认初始化。5、对属性进行显示初始化。6、对对象进行构造代码块初始化。7、对对象进行对应构造函数初始化。8、将内存地址赋给栈内存中的对象变量。静态的应用——文档说明书。   每个应用程序中都共性的功能,可以将这些功能进行抽取,独立封装,以便复用。下边以数组工具类为例,制作一个文档说明书。程序:






在dos命令行中输入命令:javadoc -d Myhelp -author -version ArrayTool.javaJava中的doc工具就会帮我们完成说明文档的API制作。这个就是属于我们自己的API了。


知识拓展:主函数:主函数是一个特殊的函数,作为程序的入口,可以被JVM调用。主函数的定义:public:代表着该函数的访问权限是最大的。static:代表主函数随着类的加载就已经存在。void: 主函数没有具体的返回值。main:不是关键字,但是是一个特殊的单词,可以被JVM识别。                (String [] args): 函数的参数,参数类型是一个数组,该数组中的元素是字符串,字符串类型的数组。  args: arguments参数,唯一可以改写的地方,主函数是固定格式呗JVM识别。

七、单例设计模式

设计模式的概念:解决某一问题最行之有效的方法。java中共有23中设计模式。单例设计模式的作用:使一个类在内存中只存在一个对象。程序:


单例设计模式有两种写法:


                                                         
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: