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中设计模式。单例设计模式的作用:使一个类在内存中只存在一个对象。程序:单例设计模式有两种写法:
相关文章推荐
- [零基础学JAVA]Java SE面向对象部分-07.面向对象基础(02)
- 第三讲 Java的面向对象特征(继续基础部分......)
- [零基础学JAVA]Java SE面向对象部分-12.面向对象基础(07) 推荐
- 《跟我学Java 26日通》第6天面向对象基础(1)
- 传智播客_张孝祥_Java基础4_面向对象下_学习笔记
- 第二天----Java基础---面向对象上
- [零基础学JAVA]Java SE面向对象部分-19.面向对象高级(07) 推荐
- 《跟我学Java 26日通》第6天面向对象基础(1)
- [零基础学JAVA]Java SE面向对象部分-21.包及访问权限 推荐
- 传智播客_张孝祥_Java基础3_面向对象上_学习笔记
- [零基础学JAVA]Java SE面向对象部分-10.面向对象基础(05)
- [零基础学JAVA]Java SE面向对象部分-18.面向对象高级(06) 推荐
- [零基础学JAVA]Java SE面向对象部分-15.面向对象高级(03) 推荐
- 初学Java---面向对象基础1
- 理解Java面向对象的程序设计思想-Java基础-Java-编程开发
- [零基础学JAVA]Java SE面向对象部分-11.面向对象基础(06) 推荐
- [零基础学JAVA]Java SE面向对象部分-14.面向对象高级(02) 推荐
- [零基础学JAVA]Java SE面向对象部分-17.面向对象高级(05) 推荐
- Java 面向对象程序设计的基础知识
- Java面向对象基础2