Java面向对象思想
目录
面向过程思想概述
面向对象思想概述
举例
1:面向对象思想
2:面向对象的思想特点
3:把大象装进冰箱
4:开发,设计,特征
类与对象关系
类的定义
成员变量和局部变量的区别
类和对象的内存关系
总结
面向过程思想概述
l我们来回想一下,这几天我们完成一个需求的步骤:首先是搞清楚我们要做什么,然后在分析怎么做,最后我们再代码体现。一步一步去实现,而具体的每一步都需要我们去实现和操作。这些步骤相互调用和协作,完成我们的需求。
l在上面的每一个具体步骤中我们都是参与者,并且需要面对具体的每一个步骤和过程,这就是面向过程最直接的体现。
l那么什么是面向过程开发呢? 面向过程开发,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。
l面向过程的代表语言:C语言
面向对象思想概述
l当需求 单一,或者简单时,我们一步一步去操作没问题,并且效率也挺高。可随着需求的更改,功能的增多,发现需要面对每一个步骤很麻烦了,这时就开始思索,能不能把这些步骤和功能在进行封装,封装时根据不同的功能,进行不同的封装,功能类似的封装在一起。这样结构就清晰了很多。用的时候,找到对应的类就可以了。这就是面向对象的思想。接下来我们看看面向对象到底是什么?
l面向对象思想概述
•面向对象是基于面向过程的编程思想
l面向对象思想特点
•是一种更符合我们思想习惯的思想
•可以将复杂的事情简单化
•将我们从执行者变成了指挥者
•角色发生了转换
举例
1:面向对象思想
面向对象是基于面向过程的编程思想。
面向过程:强调的是每一个功能的步骤
面向对象:强调的是对象,然后由对象去调用功能
2:面向对象的思想特点
A:是一种更符合我们思想习惯的思想
B:可以将复杂的事情简单化
C:将我们从执行者变成了指挥者
举例:
买电脑:
面向过程:我的了解电脑--了解我自己的需求--找对应的参数信息--去中关村买电脑--讨价还价--买回电脑
面向对象:我知道我要买电脑 -- 班长去给我买 -- 班长就买回来了
洗衣服:
面向过程:把衣服脱下--找一个盆--放点洗衣粉--加点水--把衣服扔进去--搓一搓--清洗衣服--拧干--晾起来
面向对象:把衣服脱下--打开全自动洗衣机--扔进去--一键即可--晾起来
吃饭:
面向过程:去超市买菜--摘菜--洗菜--切菜--炒菜--盛起来--吃
面向对象:上饭店吃饭,你--服务员(点菜)--厨师(做菜)--服务员(端菜)--吃
家常事物,买洗衣机和去饭店太不划算了,所以,找个对象。
但是,你不跟我好好学习,你将来4000,你对象8000。
3:把大象装进冰箱
面向过程:
动作有哪些呢?
A:打开冰箱门
B:装进大象
C:关闭冰箱门
代码体现;
class Demo {public static void main(String[] args) {/*System.out.println("打开冰箱门");//打开冰箱门的东西,我现在仅仅是为了演示,就写了一个输出语句//其实,它可能需要做很多操作。//这个时候代码就比较多一些了//假设我要多次打开冰箱门,//代码一多,每次都写一遍,麻烦不//我们就应该用方法改进System.out.println("装进大象");System.out.println("关闭冰箱门");*///写了方法以后,调用就改变了open();in();close();}public static void open() {System.out.println("打开冰箱门");}public static void in() {System.out.println("装进大象");}public static void close() {System.out.println("关闭冰箱门");}}
面向对象:
我们怎么才能更符合面向对象思想呢?
A:有哪些类呢?
B:每个类有哪些东西呢?
C:类与类直接的关系是什么呢?
把大象装进冰箱的分析? (如何分析有哪些类呢?UML。名词提取法。)
A:有哪些类呢?
大象
冰箱
Demo
B:每个类有哪些东西呢?
大象:
进去
冰箱:
开门
关门
Demo:
main方法
C:类与类直接的关系是什么呢?
Demo中使用大象和冰箱类的功能。
代码体现:
class 大象 {public static void in() {System.out.println("装进大象");}}class 冰箱 {public static void open() {System.out.println("打开冰箱门");}public static void close() {System.out.println("关闭冰箱门");}}class Demo {public static void main(String[] args) {冰箱调用开门大象调用进去冰箱调用关门}}
4:开发,设计,特征
面向对象开发
就是不断的创建对象,使用对象,指挥对象做事情。
面向对象设计
其实就是在管理和维护对象之间的关系。
面向对象特征
封装(encapsulation)
继承(inheritance)
多态(polymorphism)
类与对象关系
l我们学习编程语言,就是为了模拟现实世界的事物,实现信息化。比如:去超市买东西的计费系统,去银行办业务的系统。
l我们如何表示一个现实世界事物呢:
•属性 就是该事物的描述信息
•行为 就是该事物能够做什么
•举例:学生事物
l我们学习的Java语言最基本单位是类,所以,我们就应该把事物用一个类来体现。
l类:是一组相关的属性和行为的集合
l对象:是该类事物的具体体现
l举例:
•类 学生
•对象 班长就是一个对象
类的定义
l现实世界的事物
•属性 人的身高,体重等
•行为 人可以学习,吃饭等
lJava中用class描述事物也是如此
•成员变量 就是事物的属性
•成员方法 就是事物的行为
l定义类其实就是定义类的成员(成员变量和成员方法)
现实世界中是如何描述一个事物的呢?
举例:学生
姓名,年龄,性别...
学习,吃饭,睡觉
属性:该事物的描述信息
行为:该事物能够做什么
我们学习编程语言,是为了模拟现实世界的事物的。
而我们学习的编程语言Java中最基本的单位是:类。
所以,我们就应该把事物通过类来体现出来:
由此,我们就得到了现实世界事物和类的对应关系:
事物: 类:
属性 成员变量
行为 成员方法
类:是一组相关的属性和行为的集合。是一个抽象的概念。
对象:是该类事物的具体表现形式。具体存在的个体。
举例:
学生:类
班长:对象
/*手机类的测试
*/
class Phone {//品牌String brand;//价格int price;//颜色String color;//打电话的方法public void call(String name) {System.out.println("给"+name+"打电话");}//发短信的方法public void sendMessage() {System.out.println("群发短信");}//玩游戏的方法public void playGame() {System.out.println("玩游戏");}
}class PhoneDemo {public static void main(String[] args) {//创建手机对象//类名 对象名 = new 类名();Phone p = new Phone();//直接输出成员变量值System.out.println(p.brand+"---"+p.price+"---"+p.color);//给成员变量赋值p.brand = "诺基亚";p.price = 100;p.color = "灰色";//再次输出System.out.println(p.brand+"---"+p.price+"---"+p.color);//调用方法p.call("林青霞");p.sendMessage();p.playGame();}
}
/*在一个java文件中写两个类:一个基本的类,一个测试类。注意:文件名称和测试类名称一致。如何使用呢?创建对象使用。如何创建对象呢?格式:类名 对象名 = new 类名();如何使用成员变量呢?对象名.变量名如何使用成员方法呢?对象名.方法名(...)
*/
//这是学生类
class Student {//姓名String name; //null//年龄int age; //0//地址String address; //null//学习public void study() {System.out.println("学生爱学习");}//吃饭public void eat() {System.out.println("学习饿了,要吃饭");}//睡觉public void sleep() {System.out.println("学习累了,要睡觉");}
}//这是学生测试类
class StudentDemo {public static void main(String[] args) {//类名 对象名 = new 类名();Student s = new Student();//输出成员变量值//System.out.println(s.name);//System.out.println(s.age);//System.out.println(s.address);//改进写法System.out.println(s.name+"---"+s.age+"---"+s.address);//给成员变量赋值s.name = "林青霞";s.age = 27;s.address = "北京";//赋值后的输出System.out.println(s.name+"---"+s.age+"---"+s.address);//调用方法s.study();s.eat();s.sleep();}
}
成员变量和局部变量的区别
l在类中的位置不同
•成员变量 类中方法外
•局部变量 方法内或者方法声明上
l在内存中的位置不同
•成员变量 堆内存
•局部变量 栈内存
l生命周期不同
•成员变量 随着对象的存在而存在,随着对象的消失而消失
•局部变量 随着方法的调用而存在,随着方法的调用完毕而消失
l初始化值不同
•成员变量 有默认的初始化值
•局部变量 没有默认的初始化值,必须先定义,赋值,才能使用。
类和对象的内存关系
总结
1:二维数组(理解)
(1)元素是一维数组的数组。
(2)格式:
A:数据类型[][] 数组名 = new 数据类型[m][n];
B:数据类型[][] 数组名 = new 数据类型[m][];
C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};
D:数据类型[][] 数组名 = {{...},{...},{...}};
(3)案例(掌握):
A:二维数组的遍历
B:二维数组的求和
C:杨辉三角形
2:两个思考题(理解)
(1)Java中的参数传递问题
Java中只有值传递。
基本类型:形式参数的改变不影响实际参数
引用类型:形式参数的改变直接影响实际参数
(2)数据加密问题
综合的小案例。
3:面向对象(掌握)
(1)面向对象
面向对象是基于面向过程的编程思想
(2)面向对象的思想特点
A:是一种更符合我们思考习惯的思想
B:把复杂的事情简单化
C:让我们从执行者变成了指挥者
举例:
买电脑
洗衣服
做饭
...
万事万物皆对象
(3)把大象装进冰箱(理解)
A:面向过程实现
B:面向对象实现
注意:如何让我们的操作更符合面向对象思想呢?
A:有哪些类
B:每个类有哪些成员
C:类与类的关系
(4)类与对象
A:现实世界的事物
属性 事物的基本描述
行为 事物的功能
B:Java语言中最基本的单位是类。所以,我们要用类来体现事物
C:类
成员变量 事物属性
成员方法 事物行为
D:类:是一组相关的属性和行为的集合。是一个抽象的概念。
对象:是该类事物的具体存在,是一个具体的实例。(对象)
举例:
学生:类
班长:对象
(5)类的定义及使用
A:类的定义
成员变量 定义格式和以前一样,就是位置不同,在类中,方法外。
成员方法 定义格式和以前一样,就是去掉了static。
B:使用类的内容
a:创建对象? 格式
类名 对象名 = new 类名();
b:如何使用成员变量和成员方法呢
对象名.成员变量
对象名.成员方法()
(6)案例:
A:学生类的定义和使用
B:手机类的定义和使用
(7)内存图
A:一个对象的内存图
B:二个对象的内存图
C:三个对象的内存图
(8)Java程序的开发,设计和特征
A:开发:就是不断的创建对象,通过对象调用功能
B:设计:就是管理和维护对象间的关系
C:特征
a:封装
b:继承
c:多态
Java面向对象思想相关推荐
- java面向对象思想编写原谅帽小游戏 原谅帽游戏思路解析
java面向对象思想编写原谅帽小游戏 原谅帽游戏思路解析: 面向对象思想 作品展示 类(游戏端)继承Frame: 首先要创建一个方法去让游戏开始和结束 使用text执行这个游戏的方法(需要有游戏标题和 ...
- java有无参数求长方形的周长面积_用java面向对象思想编程求长方形的周长和面积...
//面向的重要体现就是接口的使用 //甲 interface zfx { double mianji(); double zhchang(); } //乙 class zfxing implement ...
- Java面向对象思想精华(二)
Java面向对象核心思想 一.对象创建的内存模型 (一).栈.堆.方法区存储的内容 二.子类与继承 1.作用 2.通过 extends 关键字来实现继承. 3.子类和父类的结构 4.继承的注意事项 5 ...
- Java面向对象思想、类的定义、对象的使用、对象内存图、成员变量和局部变量的区别、封装、private关键字、this关键字、构造方法、JavaBean-day06
目录 第1节 面向对象思想 1.1 面向对象思想概述 概述 举例 特点 1.2 类和对象 什么是对象 类与对象的关系 1.3 类的定义 事物与类的对比 类的定义格式 1.4 对象的使用 对象的使用格式 ...
- Java面向对象思想以及原理以及内存图解
文章目录 什么是面向对象 面向对象和面向过程区别 创建一个对象用什么运算符? 面向对象实现伪代码 面向对象三大特征 类和对象的关系. 基础案例 代码实现 实例化 创建car对象时car引用的内存图 对 ...
- java面向对象思想如何理解
Java 的核心是面向对象编程 . 所有的 java 程序都是面向对象的. 以前总听老师说 c 语言是面向过程的, c++ 和 java 是面向对象的,这些糊涂老师却从来不说明何为面向过程,何为 ...
- 谈谈java面向对象思想_对于Java面向对象思想的理解
在Java中,除了8种基本数据类型.其他皆为对象! 面向对象主要有 三个基本特征:封装,继承,多态. 封装 主要概念是指:隐藏对象的属性和实现细节,仅对外暴露公共的访问方式.封装是面向对象最基本的特征 ...
- 后端程序设计课设,基于Java面向对象思想,MySQL数据库,Tomcat服务器实现网上商城网站。前后端分离开发思想,实现前后端信息交互。
文章目录 项目展示 开发环境 使用关键技术 项目实现的主要功能 项目完成效果 项目技术核心介绍 MVC开发模式 Ajax实现前后端通信 MySQL数据库连接(使用连接池) 自动生成验证码程序 项目源代 ...
- Java面向对象思想OOP理解 东海陈光剑 剑魔书仙读书录
/****/ package iSword;import java.util.Scanner;/*** @author root**///*****************************主类 ...
- java基础(一)-面向对象思想
前言 java是一门面向对象的语言,在学习java前,先要理解面向对象这个概念,区别于c这类的面向过程语言,面向对象有着什么一样的特点呢?先上一张思维导图吧: 对象 什么是对象 问题空间中的元素及其在 ...
最新文章
- Go 学习笔记(26)— Go 习惯用法(多值赋值,短变量声明和赋值,简写模式、多值返回函数、comma,ok 表达式、传值规则)
- python难度如何_入门Python学习难吗怎样规划学习路线
- eclipse中提交git总是要求输入用户名、密码
- Redis模式匹配删除key
- 学习 wxpython_序
- qt设置行编辑器不可编辑
- json转换成dart类 JSON to Dart
- 修改MYSQL数据库表的字符集
- 大数据处理分为哪些步骤
- 文件系统读写Linux文件系统损坏的修复技术Strut2教程-java教程
- CentOS 8使用 Kickstart配置 UEFI PXE 启动
- secureCRT 7.3.6 winxp版本
- [NLP]OpenNLP词性标注器的使用
- 网络爬虫pandas
- 计算机网络线接法,电脑网线插座接法图文详解
- Keyshot渲染-关于导入提示:未检索到几何图形的解决方法。
- 计算机模拟量与数字量的转换,PLC开关量与模拟量编程数值转换原理
- MSCI宣布与Royalty Pharma结成战略联盟,推出生命科学指数
- MCM/ICM(美国大学生数学建模竞赛)报名指南
- C语言流控制命令的总结
热门文章
- java窗口布局_Java窗口(JFrame)从零开始(4)——流布局+边界布局+网格布局
- python可以500x1000_Python练习题 一. 使用匿名函数对1~1000求和,代码力求简洁。...
- php正则多个字段,正则表达式,grep_linux shell中如何实现对多个关键字段的排除?,正则表达式,grep,linux,shell - phpStudy...
- python中object类的源码在哪里-[Python之路] object类中的特殊方法
- 查询数据总数_Web | Django 与数据库交互,你需要知道的 9 个技巧
- web 流程图工具_要什么第三方流程图制作软件,微软的Visio 2016不香吗?
- mysql 主节点挂机_云服务器如何重启MySQL服务,正确重启mysql
- aspose word 删除空行_Word:删除空行
- 李彦宏宣布百度架构调整:智能云事业部升级
- 算法:从上往下打印二叉树