07面向对象程序设计1-zw
时间:2025-07-14
时间:2025-07-14
07面向对象程序设计1-zw
Softeem Consultancy Service
面向对象程序设计1 面向对象程序设计
ID:SCSJ001-Java Basic Syntax
07面向对象程序设计1-zw
Softeem Consultancy Service
课程目标
信息的隐藏和封装 this关键字 关键字 访问控制 对象的构造和初始化 方法的重载(overload) 方法的重载 静态域与静态方法(static) 静态域与静态方法
2011-7-15
2
07面向对象程序设计1-zw
Softeem Consultancy Service
信息的隐藏和封装
隐藏:指的是对象的一种保护机制,使得它的属性或方法不被外 隐藏:指的是对象的一种保护机制, 部的程序直接访问 封装指的是将对象的状态信息(属性)和行为(方法)捆绑为一 封装指的是将对象的状态信息(属性)和行为(方法) 个逻辑单元的机制。 个逻辑单元的机制。 public class Student{
public int age; }
public class StudentTest{
public static void main(String args[]){ Student s = new Student(); //合“法”但不合理的设置 s.age = 1000; } }
2011-7-15
3
07面向对象程序设计1-zw
Softeem Consultancy Service
为什么需要封装 ?
编写一个类,代表softeem学员,要求: 编写一个类,代表 学员, 学员 要求:
– – – 具有属性:姓名、 具有属性:姓名、年龄 具有行为:自我介绍 具有行为: softeem学员的最小年龄要求:18岁 学员的最小年龄要求: 岁 学员的最小年龄要求
public class SofteemStudent{ public String name; // 学员姓名 public int age; //年龄 年龄 /** * 返回自我介绍的内容 */ public String introduction() { return “大家好!我是” + name + “,我今年”+ age+“岁! 大家好! 大家好 我是” ,我今年” 岁 "; } }
2011-7-15 4
07面向对象程序设计1-zw
Softeem Consultancy Service
编写一个测试类,要求: 编写一个测试类,要求:
– 实例化一个学员对象,并对其初始化 实例化一个学员对象, – 在控制台输出该学员的自我介绍
public class SofteemStudent1Test { public static void main(String[ ] args) { SofteemStudent sstu = new SofteemStudent (); http:// = “周博通 周博通"; 周博通 sstu.age =8; System.out.println(sstu.introduction()); } } 大家好!我是周博通,我今年8 大家好!我是周博通,我今年8岁! 要满足学员的最小年龄要求, 要满足学员的最小年龄要求,可以通过对属性的封装来实现
2011-7-15 5
07面向对象程序设计1-zw
Softeem Consultancy Service
程序中, 在java程序中,我们可以这样实现封装: 程序中 我们可以这样实现封装:
将属性私有化, 将属性私有化,提供公有方法访问私有属性 通过这些公有方法访问私有属性
public class SofteemStudent2{ private String name; // 学员姓名 // 返回学员姓名 public String getName() { return name; } // 设定学员姓名 public void setName(String name) { http:// = name; } } this代表当前类的实例, 代表当前类的实例, 代表当前类的实例 方法的调用者本身 通过setter、getter
方法 通过 、 方法 SofteemStudent2 sstu = new 访问name属性 访问 属性 SofteemStudent2(); 周博通"); sstu.setName (“周博通 周博通 String sName = sstu.getName();
2011-7-15
6
07面向对象程序设计1-zw
Softeem Consultancy Service
封装的实现: 封装的实现:
1、修改属性的可见性来限制对属性的访问 、 2、为每个属性创建一对赋值 和取值(getter) 的公共方法, 的公共方法, 、为每个属性创建一对赋值(setter) 和取值 用于对这些属性的访问 3、在setter和getter方法中,加入对属性的存取限制 方法中, 、 和 方法中
public class SofteemStudent2{ private String name; //学员姓名 学员姓名 //年龄 年龄 1 private int age;
2
3
public int getAge() { return age; } public void setAge(int age) { if (age<18) { System.out.println("错误!最小年龄应为 岁!"); 错误! 错误 最小年龄应为18岁 this.age = 18; //如果不符合年龄要求,则赋予默认值 如果不符合年龄要求, 如果不符合年龄要求 } else { this.age = age; } } //此处省略对 此处省略对name属性的 属性的setter、getter方法 此处省略对 属性的 、 方法
7
}
2011-7-15
07面向对象程序设计1-zw
Softeem Consultancy Service
测试类通过调用setter方法,为对象的各个属性赋值 方法, 测试类通过调用 方法
public class SofteemStudent2Test { public static void main(String[ ] args) { SofteemStudent2 sstu = new SofteemStudent2(); 周博通"); sstu.setName (“周博通 周博通 sstu.setAge(8); System.out.println(sstu.introduction()); } } 错误!最小年龄应为 岁 错误!最小年龄应为18岁! 大家好!我是周博通 我今年18岁 周博通, 大家好!我是周博通,我今年 岁!
2011-7-15
8
07面向对象程序设计1-zw
Softeem Consultancy Service
1
隐藏一个类的实现细节 2 3 4 防止对封装数据的未经授权的访问 有利于保证数据的完整性 便于修改, 便于修改,增强代码的可维护性
封装 的 好处
5
有选择地向外界提供数据
2011-7-15
9
07面向对象程序设计1-zw
Softeem Consultancy Service
this关键字 关键字
Java中为解决变量的命名冲突和不确定性问题 , 引入 中为解决变量的命名冲突和不确定性问题, 中为解决变量的命名冲突和不确定性问题 关键字 …… 此处隐藏:3119字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:防雷装置设计审核办事指南