Java之面向对象(上)
2016-07-28 11:21
281 查看
一、面向对象的概念
1、面向对象和面向过程
面向对象和面向过程都是一种思想,不同之处在于面向对象是相对于面向过程而言的,面向过程强调的是功能行为,面向对象是将功能封装进对象,强调的是具备了功能的对象,面向对象是基于面向过程的,面向对象能把复杂的问题简单化,能让我们从执行者变成指挥者。
2、类和对象
类是对现实生活中事物的描述,定义类就是在描述事物,就是在定义事物的属性和行为,属性和行为共同成为类中的成员,对象是这类事物实实在在存在的个体,描述对象就是提取对象的共性内容,对具体的抽象描述用类实现,对象通过new产生实体(在堆内存中)。
3、匿名对象
匿名对象是对对象的简写,使用方式有两种:(1)当对对象的方法只调用一次时,可以使用匿名对象。
(2)匿名对象可以作为实际参数进行传递。
4、成员变量和局部变量
成员变量存在于堆内存中,局部变量存在与栈内存中,成员变量一被创建就有默认初始化值,就可以参与运算,而局部变量必须要进行初始化后才能参与运算
二、面向对象三大特征之封装
1.封装的概述:封装就是隐藏对象的属性和实现细节,仅对外提供公共访问方式,它的好处在于能够将变化隔离,便于使用,提高了重用性和安全性,封装的原则是将不需要对外提供的内容都隐藏起来,将属性都隐藏起来,提供公共的访问方法对其访问,封装的方法为使用私用修饰符private,它是一种权限修饰符,用于修饰类中的成员,值得注意的是私有只是封装的一种体现形式,并不代表封装就是用private修饰。对外提供访问方法的原因是在其中加入逻辑判断等语句,对访问的数据进行操作,提高代码的健壮性。
2、构造函数和构造代码块:构造函数的特点是函数名与类名相同,不用定义返回值类型,不用写return语句,作用是给对象进行初始化,当类中没有定义构造函数时,系统默认加一个空参数的构造函数,如果定义了构造函数,则就不会加上这个空参数的构造函数。
构造函数与一般函数的区别不仅写法不同, 运行方式也不同,构造函数对象一被建立就执行,用于给对象进行初始化,一般函数只有被调用才执行,用于给对象添加对象具备的功能,构造函数在创建对象时只执行一次,一般函数能够被对象多次调用
构造代码块用于定义不同对象的共性初始化内容,给对象进行初始化,对象一被建立就运行,而且优于构造函数,与构造函数的区别是构造函数是给对应的对象进行初始化,而构造代码块是给所有对象进行统一初始化。
3、this关键字:代表的是本类对象,用于方法中时是指所在函数所属对象的引用,this语句用于构造函数间调用,且放在第一行,因为初始化语句要先执行。
4、static关键字和static代码块:static是一个修饰符,用于修饰成员,静态修饰的内容被对象所共享,它可以被类名直接调用。
static的特点:(1)随着类的加载而加载 (2)优先于对象存在 (3)被所有对象共享 (4)可以被类名所调用
静态成员变量/类变量与成员变量/实例变量的区别:(1)类变量随着类的加载而加载,存在于方法区中,实例变量随着对象的创建而加载,存在于堆内存中。
(2)类变量随着类的消失而消失,生命周期长,实例变量随着对象的消失而消失。
static使用注意事项:(1)静态方法只能访问静态成员,非静态方法可以访问静态成员 (2)静态方法中不能使用this、super关键字,因为静态优于对象存在(3)主函数是静态的
static的使用:(1)什么时候使用静态成员变量:当对象中出现了共享数据时,该数据被静态修饰,对象的特有数据定义成非静态。
(2)什么时候定义静态函数:当功能内部没有访问到非静态成员时,该功能可以被静态。
static的利弊:好处是对对象的共享数据进行单独空间的存储,解约内存,可以被类名直接调用,坏处是声明周期长,访问出现局限性。
static代码块:随着类的加载而运行,用于给类进行初始化,只能运行一次,优先于主函数
5、主函数:它是一个特殊的函数,作为程序的入口可以被JVM所调用,public代表主函数的访问权限是最大的,static代表主函数随着类的加载就已经存在了,void代表主函数没有具体的返回值,main不是关键字,但是是一个特殊的单词,能够被JVM所识别,主函数的参数是String[] args,参数的类型是一个String类型的数组参数个数为0
6、说明文档的创建:通过/** */这种注释方式完成,其中加入@author作者、@version 版本信息 、@param 变量、@return 结果等几种信息,通过javadoc命令完成,形式为javacdoc -d -author -version 文件名,注意类需要被public或者protected所修饰。
1、面向对象和面向过程
面向对象和面向过程都是一种思想,不同之处在于面向对象是相对于面向过程而言的,面向过程强调的是功能行为,面向对象是将功能封装进对象,强调的是具备了功能的对象,面向对象是基于面向过程的,面向对象能把复杂的问题简单化,能让我们从执行者变成指挥者。
2、类和对象
类是对现实生活中事物的描述,定义类就是在描述事物,就是在定义事物的属性和行为,属性和行为共同成为类中的成员,对象是这类事物实实在在存在的个体,描述对象就是提取对象的共性内容,对具体的抽象描述用类实现,对象通过new产生实体(在堆内存中)。
3、匿名对象
匿名对象是对对象的简写,使用方式有两种:(1)当对对象的方法只调用一次时,可以使用匿名对象。
(2)匿名对象可以作为实际参数进行传递。
4、成员变量和局部变量
成员变量存在于堆内存中,局部变量存在与栈内存中,成员变量一被创建就有默认初始化值,就可以参与运算,而局部变量必须要进行初始化后才能参与运算
二、面向对象三大特征之封装
1.封装的概述:封装就是隐藏对象的属性和实现细节,仅对外提供公共访问方式,它的好处在于能够将变化隔离,便于使用,提高了重用性和安全性,封装的原则是将不需要对外提供的内容都隐藏起来,将属性都隐藏起来,提供公共的访问方法对其访问,封装的方法为使用私用修饰符private,它是一种权限修饰符,用于修饰类中的成员,值得注意的是私有只是封装的一种体现形式,并不代表封装就是用private修饰。对外提供访问方法的原因是在其中加入逻辑判断等语句,对访问的数据进行操作,提高代码的健壮性。
2、构造函数和构造代码块:构造函数的特点是函数名与类名相同,不用定义返回值类型,不用写return语句,作用是给对象进行初始化,当类中没有定义构造函数时,系统默认加一个空参数的构造函数,如果定义了构造函数,则就不会加上这个空参数的构造函数。
构造函数与一般函数的区别不仅写法不同, 运行方式也不同,构造函数对象一被建立就执行,用于给对象进行初始化,一般函数只有被调用才执行,用于给对象添加对象具备的功能,构造函数在创建对象时只执行一次,一般函数能够被对象多次调用
构造代码块用于定义不同对象的共性初始化内容,给对象进行初始化,对象一被建立就运行,而且优于构造函数,与构造函数的区别是构造函数是给对应的对象进行初始化,而构造代码块是给所有对象进行统一初始化。
3、this关键字:代表的是本类对象,用于方法中时是指所在函数所属对象的引用,this语句用于构造函数间调用,且放在第一行,因为初始化语句要先执行。
4、static关键字和static代码块:static是一个修饰符,用于修饰成员,静态修饰的内容被对象所共享,它可以被类名直接调用。
static的特点:(1)随着类的加载而加载 (2)优先于对象存在 (3)被所有对象共享 (4)可以被类名所调用
静态成员变量/类变量与成员变量/实例变量的区别:(1)类变量随着类的加载而加载,存在于方法区中,实例变量随着对象的创建而加载,存在于堆内存中。
(2)类变量随着类的消失而消失,生命周期长,实例变量随着对象的消失而消失。
static使用注意事项:(1)静态方法只能访问静态成员,非静态方法可以访问静态成员 (2)静态方法中不能使用this、super关键字,因为静态优于对象存在(3)主函数是静态的
static的使用:(1)什么时候使用静态成员变量:当对象中出现了共享数据时,该数据被静态修饰,对象的特有数据定义成非静态。
(2)什么时候定义静态函数:当功能内部没有访问到非静态成员时,该功能可以被静态。
static的利弊:好处是对对象的共享数据进行单独空间的存储,解约内存,可以被类名直接调用,坏处是声明周期长,访问出现局限性。
static代码块:随着类的加载而运行,用于给类进行初始化,只能运行一次,优先于主函数
5、主函数:它是一个特殊的函数,作为程序的入口可以被JVM所调用,public代表主函数的访问权限是最大的,static代表主函数随着类的加载就已经存在了,void代表主函数没有具体的返回值,main不是关键字,但是是一个特殊的单词,能够被JVM所识别,主函数的参数是String[] args,参数的类型是一个String类型的数组参数个数为0
6、说明文档的创建:通过/** */这种注释方式完成,其中加入@author作者、@version 版本信息 、@param 变量、@return 结果等几种信息,通过javadoc命令完成,形式为javacdoc -d -author -version 文件名,注意类需要被public或者protected所修饰。
相关文章推荐
- Java之运算符和程序流程控制
- java锁之CountDownLatch(等待最后一个完成)
- java 定时器实现
- java锁之Semaphore(信号量,限制并发数量)
- Java compiler level does not match the version of the instal
- java中生成伪随机数的一些简单实现方法
- 序列化与反序列化
- Myeclipse 最新注册码
- commandButton action onclick
- Java中的回车换行符/n /r /t
- 《Java多线程之CAS》
- 1、Java多线程基础:进程和线程之由来
- javaweb中使用百度、谷歌地图进行定位
- springboot 配置多数据源
- 开源 java CMS - FreeCMS2.5 标签 infoSearch
- RxJava的使用
- Java递归
- 在eclipse中生成签名文件
- Java基础——基本类型和包装类、基本类型和字符串之间的转换
- ContextLoaderListener和Spring MVC中的DispatcherServlet加载内容的区别