马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
1 面向对象思想#
1.1 面向过程与面向对象
面向过程:procedure oriented programming POP
面向过程是分析解决问题的步骤,然后用函数把这些步骤一步一步的实现,然后在使用的时候一一调用则可,这强调的是过程动作。
file
面向对象:object oriented programming OOP
面向对象是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。对象由静态的属性(对象有什么)和动态的行为(对象能干什么)组成。
在面向对象的视角下,我们认为世界是由对象和对象之间的关系组成的,而世界上的所有东西都是对象。
例如 :人把大象装冰箱例子
file
面向对象相对面向过程的优点
1) 结构清晰。使人们的编程与实际的世界更加接近,所有的对象被赋予属性和方法,结果编程就更加富有人性化。
2) 封装性。减小外部对内部的影响。封装将对象有关的数据和行为封装成整体来处理,使得对象以外的部分不能随意存取对象的内部属性,从而有效地避免了外部错误对它的影响,大大减小了查错和排错的难度。
3) 容易扩展,代码重用率高。容易扩展,在大框架不变的情况下很容易就开发出适合自己的功能,实现简单,可有效地减少程序的维护工作量,软件开发效率高。
思维转变
万事万物皆对象,例如汽车、台灯、电脑、书本、教师,这些都是现实生活中的对象
把需求中要解决的问题,根据这个对象有什么属性、有什么行为,将其分解成多个有关联的对象
然后这些对象要学会用领导的思维去做事,而不是具体过程中的执行者
找到具有功能的对象,去实现需求
例如:
面向过程:吃.(猪八戒,西瓜); 面向对象:猪八戒.吃(西瓜);
2 类与对象#
对象概念:
一切客观存在的事物都能称之为对象。
对象都具有两个主要的要素:
“对象有什么”以及“对象能干什么”。其中,对象“有什么”称之为对象的属性;而对象“能干什么”称之为对象的方法。例如,对于一个汽车对象,这个对象有颜色、品牌、价格、最高时速等属性,有启动、加速、 转向、 刹车等方法。
对象和对象之间会通过某种方式产生联系
file
2.1 类与对象的关系
对象是客观的具体事物。对象有两个主要元素:属性和方法,其中属性表示对象“有什么”,方法表示对象“能干什么”。
“类”是对一“类”事物的总结,可以把类理解为:对大量对象共性的抽象,是对象的模板。
类的具体化就是对象,也可以说类的实例是对象。如有个人这个类,统称人类;对象就是具体的某个人。
类具有属性,它是对象的属性状态的抽象,用数据结构来描述类的属性,人类有姓名、年龄、性别等属性。
类具有操作,它是对象的操作行为的抽象,用操作名和实现该操作的方法来描述,人有吃()、说话()、学习()等方法。
file
面向对象具有各司其职、可重用、可扩展、弱耦合等特性。
2.2 类的定义
2.2.1 定义类
语法格式:
类名首字母大写,剩余单词遵循驼峰规则
file
2.2.2 定义类的属性
2.2.2.1 属性定义
类属性定义语法格式:
file
修饰符:修饰符可以省略,也可以是public、protected、private、static、final,其中public、protected、private三个最多只能出现其中一个,可以与static、final组合起来修饰属性。
示例:
file
2.2.2.2 类属性默认值
file
2.2.3 定义类的方法
2.2.3.1方法的定义
定义方法的语法格式:
file
修饰符:参考属性定义语法里的修饰符
方法返回值类型:返回值类型可以是基本类型也可以是引用类型。
如果声明了方法返回值类型,则方法体内必须有一个有效的return语句,该语句返回一个变量或表达式
如果一个方法没有返回值,则必须使用void来声明没有返回值
形参列表:可有可无。
file
2.2.4 方法参数传递
java里的方法是不能独立存在的,调用方法也必须使用类或 对象作为主调者。
如果声明方法时包含了形参声明,则调用方法时必须给这些形参指定参数值,调用方法时实际传给形参的参数值被称为实参。
方法参数传递规则
在 Java 中的方法参数传递中,基本类型传值,对象类型传地址。
3、对象的创建和使用#
3.1 对象的创建
创建的对象的根本途径是构造器(构造方法)
语法:
使用new + 构造器创建一个新的对象,如:
file
3.2 对象的使用
使用“对象名.对象成员”的方式访问对象成员(包括属性和方法)
访问属性:对象名.属性名
访问方法:对象名.方法名(实参列表)
如果static修饰的方法和属性(静态属性或静态方法),既可通过类来调用,也可通过对象实例来调用,建议通过类来调用。
示例:
file
file
file
3.3 对象的引用
关系通过堆栈的图来解释
file
4 成员变量和局部变量#
4.1 成员变量与局部变量
成员变量:在方法体外,类体内声明的变量
① 成员变量定义在类中,在整个类中都可以被访问
② 成员变量分为类成员变量(static修饰)和实例成员变量(非static修饰),实例变量存在于对象所在的堆内存中
③ 成员变量有默认初始化值
④ 成员变量的权限修饰符可以根据需要,选择任意一个
局部变量:在方法体内部或代码块内部声明的变量
① 局部变量只定义在局部范围内,如:方法内,代码块内等。
② 局部变量存在于栈内存中。作用的范围结束,变量空间会自动释放。
③ 局部变量没有默认初始化值,每次必须显式初始化。
④ 局部变量声明时不指定权限修饰符
file
什么时候用类成员变量(static修饰的成员变量)
当分析对象中所具备的成员变量的值都相同时,这是可以被static修饰为类成员变量。
如果是相同的数据,对象不需要做修改,只需要使用, 不需要存储在对象中,可以被static修饰为类成员变量。
4.2 成员变量的初始化及内存中的运行机制
file
file
5 构造方法#
构造方法(构造器)是比较特殊的方法。相比一般方法,构造方法有如下特点:
构造方法没有返回值类型。
构造方法的方法名与类名相同。
构造方法不能手动调用,只能在对象创建时自动调用一次。
5.1 构造方法定义
构造器定义语法格式:
file
file
file
5.2 对象的创建过程
分配空间
创建一个对象时在内存中为一个对象分配一块数据区域。同时会把对象所有的属性设为默认值。
初始化属性
如果我们在定义实例变量的同时,为实例变量进行了赋值。则赋值语句在这一步骤执行。
调用构造方法
当分配空间和初始化属性完成之后,最后一步是对该对象调用构造方法。
示例:
file
6 this关键字#
6.1 this表示引用
this 关键字表示的是“当前对象的引用”。 那么什么是“当前”对象呢?
所谓当前对象,指的是:对哪个对象调用方法,哪个对象就是当前对象,也就是说,谁调用这个方法,this就代表谁。
示例:
file
file
file
在使用“ this()” 这种语法时,要注意三个要点:
1、只能在构造方法中使用,并且只能调用本类的其他构造方法
2、在使用时, this()必须作为构造方法的第一个语句,否则编译出错
3、this()不能够递归调用
代码示例:
file
file
file
版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海牛部落-海牛博士,http://hainiubl.com/topics/151
|