第3章_抽象和封装.

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象的编程思维

ScoreCalc类 和 Test类
public static void main(String[ ] args) { Scanner input = new Scanner(System.in); Test ScoreCalc System.out.print("请输入Java成绩:"); int java = input.nextInt(); 一次还可以接受,如果 main(){ //程序入口 calcTotalScore() …… 类的方法实现某个特定的功能, //计算并输出总成绩 还要再执行这个功能, /*计算并显示输出 */ 其他类不需要知道它如何实现! 调用 难道还要重复再写? int total = java + c + db; 知道了实现此功能的类和它的方法名, calcDiffTime showTotalScore() double avg = total / 3; 就可以直接调用了,不用重复写代码! //计算并输出平均分 System.out.print("总成绩:" + total); 调用 System.out.print("\n 平均分: " + avg); calcAvg() }
构造方法 3-3

阅读代码,说出运行结果,并指出原因
class Penguin { String name; String sex; int health; 有返回值类型, public void Penguin() { 不是构造方法 health=10; sex="雄"; System.out.println("执行构造方法"); } public void print() { System.out.println("企鹅的名字是" + name + ",健康值是" + health + ",性别是" + sex); } Penguin pgn3=new Penguin(); } pgn3.print();
定义一个企鹅类?
class Penguin { //属性 String name; String sex; int love; int health; //成员方法 public void print() { System.out.println("我是一只企鹅"); } }
构造方法 3-1

对象初始化
第3章 类与对象(抽象与封装)
教师:李云平
本章目标



JAVA编程思想 掌握类和对象的概念 掌握构造方法及其重载 掌握封装的概念及其使用
JAVA编程思想 面向过程和面向对象的区别? JAVA程序结构? 面向对象程序设计的优点?
为什么使用面向对象2-1

现实世界是由什么组成的?
世界由对象组成
用面向对象描述世界3-2

第二步:发现类的属性
狗类共有的特征:
1. 品种 2. 年龄 3. 昵称 4. 健康情况 5. 跟主人的亲密度 ……
名词
class Dog { String name = "旺财"; // 昵称 int health = 100; // 健康值 int love = 0; // 亲密度 只放我关心 String strain = "拉布拉多犬"; // 品种 的属性 }
为什么使用面向对象2-2

软件出现的目的是为了:

用计算机的语言描述现实世界 用计算机解决现实世界的问题

出现了软件危机,如何解决 ? “问题”和
“解”一致
用面向对象的方式描述对象的世界 符合人类 思维习惯 … …
-----面向对象程序设计的优点
1、易维护 采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变 需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成 本的。 2、质量高 在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系 统满足业务需求并具有较高的质量。 3、效率高 在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。 使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提 高软件开发的效率和质量。 4、易扩展 由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构, 使得系统更灵活、更容易扩展,而且成本较低。
用面向对象描述世界3-3

第三步:发现类的方法
狗类共有的行为:
动词 1. 跑 2. 吠 3. 输出狗的信息 ……
只放我关心 的方法
class Dog { String name = "旺财"; // 昵称 int health = 100; // 健康值 int love =100; // 亲密度 String strain = "拉布拉多犬"; // 品种 /* 输出狗的信息 */ public
}
构造方法 3-2

构造方法
没有返回值 类型 与类名相同
public 构造方法名( ) { 可以指定 //初始化代码 参数 }
public Penguin() { name = "qq"; love = 20; sex = "Q仔"; System.out.println("执行构造方法"); }
使用构造方法: Penguin pgn = new Penguin(); Penguin pgn1 = new Penguin(); = "qq"; pgn.sex = "Q 仔"; { class Penguin
// 属性 构造方法 能否在创建对象的 /* 无参构造方法 */ public Penguin() { 同时就完成赋值 ? name = "qq"; love = 20; sex = "Q仔"; System.out.println("执行构造方法"); }
}
showAvg()
一个现实世界的问题

宠物——现实世界的对象

如何在计算机中描述它?
从现实中抽象出类分三步: 1. 找出它的种类 2. 找出它的属性 3. 找出它的行为
用面向对象描述世界3-1

用面向对象的思想描述世界

第一步:发现类
}
名词
各个狗对象
class Dog {
根据”对象”抽象出“类”
类图

使用类图描述类 用于分析和设计“类” 直观、容易理解 类名
属性名 “+”:public “-”:private
Dog
+ name:String + health:int + love:int + strain:String + print( ) : void
类型
方法名
返回值 类型
参数: 名字:类型,名字:类型
相关文档
最新文档