没有合适的资源?快使用搜索试试~ 我知道了~
JavaSE_柴林燕_阶段21
需积分: 0 1 下载量 73 浏览量
2022-08-08
19:22:44
上传
评论
收藏 5.3MB DOCX 举报
温馨提示
试读
181页
第五章 面向对象基础一、面向对象编程思想首先解释一下“思想”。思想 Java编程思想 都成了编程思想呢 先问你个问题:你想做个怎样的人?很厉害的人 不焦虑、有工
资源详情
资源评论
资源推荐
第五章 面向对象基础
一、面向对象编程思想
首先解释一下“思想”。
思想 Java 编程思想 都成了编程思想呢
先问你个问题:你想做个怎样的人?
很厉害的人 不焦虑、有工作的人 有妻子的 我可一直阅读 输入输出计算的吧
我想做个善良的人 想做个好人 孝敬父母 尊重长辈 关爱亲朋
可能你会回答:我想做个好人,孝敬父母,尊重长辈,关爱亲朋……
你看,这就是思想。这是你做人的思想,或者说,是你做人的原则。
这就是思想吗 就是做人的思想 做人的原则 原则不可
做人有做人的原则,编程也有编程的原则。这些编程的原则呢,就是编程思想。
编程的原则 编程思想 设计模式原则 设计模式
思想 面向对象编程思想 思想 你想做个怎样的人?
我想做个好人
POP OOP 面向过程编程思想 面向对象编程思想
常见的编程思想有:
1、面向过程(POP)编程思想
面向过程 POP(Process-Oriented Programming)强调的是系统的数据被加工处理的过程,数据仅仅作为输入和
输出存在,在程序设计中主要以函数或者过程为程序的基本组织方式。
比如说,C 语言中,数据与处理这些数据的函数是分离的,程序的最小单元是函数。
过程 process Process-oriented thinking ProcessOriented Thinking
2、面向对象(OOP)编程思想
前辈们说,这样不好,应该把数据和与这些数据相关的行为放在一起,用一个叫做类的东西装起来。于是,在
Java 中,程序的最小单元变成了类。——这种思想叫做面向对象编程。
面向对象(Object Oriented Programming)是以对象为中心,将对象的内部组织与外部环境区别开来,将表征对
象的内部属性数据与外部隔离开来,其行为与属性构成了一个整体,而系统功能则表现为一系列对象之间的相互作
用的序列,能更加形象的模拟或表达现实世界。
当然,会使用 Java 语言并不代表已经领会了面向对象的思想。面向对象有三大特性:封装、继承、多态。封装
有什么作用?封装时要注意什么?继承有什么优点和缺点?什么时候使用继承?多态有什么好处?什么时候使用
多态?……这些问题的解答有一些指导原则,比如单一职责原则、里氏替换原则、开闭原则、接口隔离原则、依赖
倒置原则等等。这些原则就是编程思想。
举个例子来说,你写了一个程序,现在用的是 SQLServer 的数据库,但客户说,将来也可能换成 MySQL、Oracle
数据库。那你可能就会考虑了:如何在现有的基础上,做最少的改动,就能从 SQLServer 换到 MySQL、Oracle。于
是,你就会开始想这些问题:如何能达到更少的变动?是否需要创建接口?在什么地方创建接口?接口中定义哪些
方法?如何让调用者更方便地获取接口的实现类的对象?……这个,就是你的编程思想。就是那些原则在你的实践
中的应用。
3、小结
面向过程:POP: Process-Oriented Programming
以函数(方法)为最小单位
以过程,步骤为主,考虑怎么做
面向对象:OOP: Object Oriented Programming
以类/对象为最小单位,类包括:数据+方法
以对象(谁)为主,考虑谁来做,谁能做
面向对象仍然包含面向过程,只不过关注点变了,关注谁来做
程序员的角色:
面向过程:程序员是具体执行者
面向对象:程序员是指挥者
面向对象的开发过程:其实就是不断创造对象,使用对象,指挥对象做事情
面向对象的设计过程:就是管理和维护对象之间的关系
4、举例说明
经典案例:把大象装进冰箱总共分几步?
面向过程:
(1)把冰箱门打开
(2)把大象放进去
(3)把冰箱门关上
面向对象:
人{
拉(冰箱){
冰箱.打开();
}
指挥(动物){
动物.进入();
}
推(冰箱){
冰箱.关闭();
}
}
冰箱{
打开(){ }
存储(){ }
关闭(){ }
}
大象{
进入(){ }
}
长颈鹿{
进入(){ }
}
面向对象更加注重前期的设计:
(1)就是类的设计
(2)设计类就是设计类的成员:属性、方法...等
面向对象的学习主线:
(1)类与对象
(2)面向对象的基本特征和高级特性
(3)相关关键字和 API
二、类与对象
1、类与对象的概念
将现实生活中一类事物的共性内容进行提取,抽象成相应的 Java 类,用 Java 类对其进行描述。
例如:柴老师、宋老师、张老师、苍老师
共性的内容:姓名、年龄、性别
吃饭、睡觉、讲课
类与对象是面向对象的核心概念:
类(class):对现实生活中一类事物的描述,抽象的
对象(object):是实际存在的该类事物的每个个体,因而也称实例(instance),是一个实实在在的个体,具体的,
public class TestOOP1 {
public static void main(String[] args) {
Teacher chai = new Teacher();
chai.name = "cai";
chai.age = 30;
chai.gender = '女';
System.out.println("姓名:"+chai.name + ",年龄:"+chai.age +",性别:"+chai.gender);
chai.eat();
chai.sleep();
chai.teach();
Teacher cang = new Teacher();
cang.name = "苍老师";
cang.age = 18;
cang.gender = '女';
System.out.println("姓名:"+cang.name + ",年龄:"+cang.age +",性别:"+cang.gender);
cang.eat();
cang.sleep();
cang.teach();
}
}
class Teacher{
String name;
int age;
char gender;
void eat(){
System.out.println("吃饭");
}
void sleep(){
System.out.println("睡觉");
}
void teach(){
System.out.println("讲授技术");
}
}
2、类与对象的关系
要描述特性或完成功能,需要拿具体的对象,而不能拿类来解决。
例如:要开车只能拿对象——实实在在的车,不能拿汽车类——汽车的设计图来开。
总结:类是创建对象的模板
3、类的设计
类的设计其实就是类的成员的设计,即事物的描述数据及其操作数据的行为方法等等的设计。
数据描述:用属性表示,对应类中的成员变量
行为描述:用方法表示,对应类中的成员方法
其他都是为了数据和行为服务的:对应类中的其他成员
类的定义格式
【修饰符】 class 类名{
成员声明;
}
【修饰符】 class 类名{
属性列表
方法列表
}
【修饰符】 class 类名{
属性列表
代码块
构造器列表
方法列表
内部类
}
示例代码:
class Teacher{
String name;
int age;
char gender;
void eat(){
System.out.println("吃饭");
}
void sleep(){
System.out.println("睡觉");
}
void teach(){
System.out.println("讲授技术");
}
void getInfo(){
System.out.println(name + "老师,今年" + age + "岁");
}
}
class Person{
//属性或成员变量
String name;
boolean isMarried;
//代码块
{
name = "匿名";
}
//构造器
Person(){}
Person(String n,boolean m){
name = n;
isMarried = m;
}
//方法
String display(){
return "姓名:" + name + ",婚否:" + isMarried;
}
//内部类
class Pet{
String name;
double weight;
}
}
4、对象的创建
(1)声明引用变量来引用对象:数据类型 变量名;
例如:Teacher tea;
因为该变量是用来引用对象的,因此也称为对象名。
(2)为引用变量赋值一个对象: 变量名 = new 类名();
例如:tea = new Teacher(); //通过 new 构造器()来创建对象
可以写成:Teacher tea = new Teacher();
(3)通过引用变量操作对象的属性和方法:对象名.属性、对象名.方法
tea.name = “柴林燕”;
tea.teach();
回忆之前接触的:
Scanner input = new Scanner(System.in); int age = input.nextInt();
Random rand = new Random(); int num = rand.nextInt(100);
剩余180页未读,继续阅读
SLHJ-Translator
- 粉丝: 27
- 资源: 297
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 高性能量化工具 hikyuu 2.0.3 python3.9 ubuntu 安装包
- Cyclone Version 9.51
- 高性能量化回测工具 hikyuu 2.0.3 python 3.12 windows 安装包
- 省级城乡居民基本养老保险情况数据集(2010-2022年).xlsx
- 舞队填写版.cpp
- 基于BP神经网络的多输入单输出回归预测.zip
- 高性能量化回测工具 hikyuu 2.0.3 python 3.9 windows 安装包
- 省级城镇职工基本养老保险情况2000-2022年.xlsx
- 高性能量化回测工具 hikyuu 2.0.3 python 3.10 windows 安装包
- 算法部署-使用OpenVINO+C#部署PaddleOCR字符识别算法-项目源码-优质项目实战.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0