海牛部落 java 系列教程:(6)对象和类

资料 青牛 ⋅ 于 2017-09-15 12:59:03 ⋅ 最后回复由 数里淘金 2018-11-09 10:11:24 ⋅ 2989 阅读

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 对象的引用

回复帖子,然后刷新页面即可查看隐藏内容

版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海牛部落-青牛,http://hainiubl.com/topics/151
本帖由 情爱侣 于 1年前 取消置顶
回复数量: 52
暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter