JAVA复习资料课件_第四章

合集下载

第四章Java面向对象特性课件

第四章Java面向对象特性课件
第4章 Java面向对象特性
对象的基本概念
面向对象程序语言三个关键特点: 封装 ( Encapsulation ) 多态 ( Polymorphism ) 继承 ( Inheritance )
1
第4章 Java面向对象特性
抽象数据类型
基本数据类型和聚集类型的变量与一些操作 (如+, -)之间不需特殊的联系。 在面向对象语言中,在数据类型的声明与操作
数据隐藏与封装举例
class Date{
private int day, month, year;
void setDate( int a, int b, int c){
day = a;
month = b;
year = c ;
}
}

Date d1;
d1=new Date( ); d1.setDate(30,9,2001);
4
第4章 Java面向对象特性
对象生命周期
创建对象 使用对象 清除不用的对象
5
第4章 Java面向对象特性
创建对象
创建对象的三个步骤: 声明 (Declaration ) 实例化(Instantiation) 初始化(Initialization)
例: Point origin_one ; origin_one = new Point(23, 94); Rectangle rect_one = new Rectangle(origin_one, 100, 200); Rectangle rect_two = new Rectangle(50, 100);
public void changeObjValue( PassTest ref){
ref.ptValue = 99.0f; }

JAVA课件lesson4PPT教学课件

JAVA课件lesson4PPT教学课件

例外处理机制
6
例外的产生(续)
4
编程抛出例外:
– 在程序的相应部分抛出例外:
– throw new XXXException();
– throw new XXXException(String describe);
例:String readData() throws EOFException {……………….. throw new EOFException(“error”); ………………….}
4
例外处理机制
主要内容
4
引入例外机制 Java的例外处理
– 例外的抛出、捕获与处理
自定义例外 使用finally
2020/12/10
例外处理机制
2
对错误的处理
程序执行的错误 处理错误
– 向用户通知错误 – 保存全部工作 – 让用户适当地退出程序
例外处理
– JAVA检测和报告错误的机制
2020/12/10
} //end of class Inheriting
2020/12/10
2020/12/10
例外处理机制
7
例外的捕获和处理
4
警戒区:可能会引起例外的代码段
try{ 警戒区代码
}catch(ExceptType e){ 例外处理代码
//引起例外 //捕获例外 //处理例外
}
例外处理代码(Exception handlers)相当于 一类特殊的方法调用
2020/12/10
顺序: 先具体、后一般)
2020/12/10
例外处理机制
9
例外处理过程
4
当程序执行发生异常或遇到关键字 throw 时就抛出一个例外

java 课件 第四章

java 课件 第四章

equalsIgnoreCase()如果两个字符串的内容完全 一致 (不计大小写),那么该方法返回true,否则返 回false. 例:String s1=”aBc”; String s2=“abc”; System.out.println(s1.equalsIgnoreCase(s2));
equals()如果两个字符串的内容完全一致 (包括大 小写),那么该方法返回true,否则返回false. 例:String s1=”This is a string”; String s2=“this is a string”; System.out.println(s1.equals (s2));
型变量的数组 list,然后顺序访问每个数组元素.
int list[ ]=new int[5]; for(int i=0;i<=list.length-1;i++){ //进行相应处理的代码. }
优点:使得程序更加健壮,修改更加方便.
举例:
public class ArrayDemo1{
public static void main(String args[]){ int i; int a[]=new int[5]; for(i=0;i<=4;i++){ a[i]=i; } for(i=a.length-1;i>=0;i--) System.out.println(“a[”+i+“] =”+a[i]); }
格式: 举例: int a1[ ]; double a2[ ]; char[ ] a3; date []p1; string p2[]; 注意:声明数组时并不为数组元素分配内存,所以不必指 定它的长度。 数组元素类型 数组名[ ]; 数组元素类型 [ ] 数组名;

JAVA课件第4章

JAVA课件第4章

//成员方法, //成员方法, 计算到原点的距离 成员方法
{ return Math.sqrt(x*x+y*y); }
例4-2 学生类
//定义学生类 public class Student //定义学生类 //学生姓名 {public String name; //学生姓名 //学生编号 public String number; //学生编号 //学生年龄 private int age; //学生年龄 private int math,physics; //两门课程成绩 //两门课程成绩 public Student(String na, String nu, int a, int m, int p) {name=na; number=nu; age=a; math=m; physics=p; } public void setMath(int m) {math=m; } public void setPhysics(int p) {physics=p;} public void getMath() {return math;} public void getPhysics() {return physics;} //计算平均成绩 public int average() //计算平均成绩 { return (math + physics)/2; } }
public(公共 公共) (2) public(公共)
public修饰的成员变量可以被程序中的任何类所访问.由于public成 public修饰的成员变量可以被程序中的任何类所访问.由于public成 修饰的成员变量可以被程序中的任何类所访问 public 员变量不受限制, 这易使类的对象引起不希望的修改, 员变量不受限制, 这易使类的对象引起不希望的修改,建议成员变量尽 量不要使用public修饰符. 量不要使用public修饰符. public修饰符

JAVA课件第四章

JAVA课件第四章

第4章Hibernate应用Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的封装(未完全封装),使Java程序员可以使用面向对象的编程思想来操纵数据库。

Hibemate是一个对象/关系映射的解决方案,简单地说就是将Java中对象与对象之间的关系映射至关系数据库中的表与表之间的关系。

Hibernate提供了整个过程自动转换的方案。

4.1 Hibernate概述Hibernate是一个轻量级的映射框架,下面先简单介绍ORM(对象/关系映射)及Hibernate的体系结构。

1.ORM简介对象/关系映射ORM(Object-Relation Mapping)是用于将对象与对象之间的关系对应到数据库表与表之间的关系的一种模式。

简单地说,ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据库中。

对象和关系数据是业务实现的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。

内存中的对象之间存在着关联和继承关系。

而在数据库中,关系数据无法直接表达多对多关联和继承关系。

因此,ORM系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

一般的ORM包括四个部分:对持久类对象进行CRUD操作的API、用来规定类和类属性相关查询的语言或API、规定mapping metadata的工具,以及可以让ORM实现同事务对象一起进行dirty checking、lazy association fetching和其他优化操作的技术。

目前,很多厂商和开源社区都提供了持久层框架的实现,但其中Hibernate的轻量级ORM模型逐步确立了在Java ORM架构中的领导地位。

2.Hibemate体系结构Hibernate作为模型层/数据访问层。

它通过配置文件(hibernate.cfg.xml或hibernate.properties)和映射文件(*.hbm.xml)把Java对象或持久化对象(Persistent Object,PO)映射至擞据库中的数据表,然后通过操作PO,对数据库中的表进行各种操作,其中PO就是POJO(普通Java对象)加映射文件。

java第4章PPT教学课件

java第4章PPT教学课件
应用软件开发的起点是用户的实际问题和需求,终 点是一个可较好解决用户的实际问题和满足用户原始 需求的应用软件。从起点到终点的整个开发过程,若采 用面向对象的方法,软件开发过程可以大体划分为以 上的三个阶段。当然这个过程并不是线形的,通常会包 括一些反馈和某些步骤的修改,呈现一种螺旋型上升的 曲线。
2020/12/12
2020/12/12
3
图示:类与对象的关系
2020/12/12
4
4.2 面向对象软件开发的基本过程
1、面向对象的软件开发过程 2、面向对象的分析阶段 3、面向对象的设计阶段 4、实现阶段
2020/12/12
5
1、面向对象的软件开发过程ቤተ መጻሕፍቲ ባይዱ
用面向对象的方法来解决实际问题,是一个比较复 杂的过程,它包括面向对象的分析(OOA)、面向对象的 设计(OOD)和面向对象的编程(OOP)。
这些需求进行分析和筛选,与用户协商,去掉用户的需求中 的不合理元素,形成一个合理的方案。
需求分析的过程是一个复杂、烦琐、甚至艰难的过程, 通常需要反复讨论、协商和修改,才能达成最后的一致。需 求分析非常重要,如果做的不好, 会形成隐患和障碍,影响
整个开发工作。需求分析最后应形成书面的需求陈述。
2020/12/12
2020/12/12
2
2、什么是类
在Java程序中,类是创建对象的模板,对象是类的实例, 任何一个对象都是隶属于某个类的。
类是同种对象的集合与抽象。分类所依据的原则是抽象, 即抽象出能反映与当前目标有关的本质特征,而忽略那些与当 前目标无关的非本质特征,从而找出事物的共性,把具有共同 性质的事物归结为一类,得出一个抽象的概念——类。
6
图示
2020/12/12

java精装课件第4章

java精装课件第4章

7.大小写转换
public String toLowerCase(); public String toUpperCase();
8.与另一字串连接
public String concat(String str);
4.3.2
StringBuffer类
StringBuffer对象的内容是可以修改 的字符串。
(4)java.awt Java抽象工具包,是 Java语言用来构建图形用户界面(GUI) 的类库 。 (5)java.awt.event处理、调整、监 听和封装各种(尤其是涉及鼠标、键盘) 事件。 (6)java.awt.image包中的类和接口 参与低级的图像操作。
(7)java.awt.peer包是程序代码与平 台之间的中介,它将不同的平台包裹、隐 藏起来,使这些平台在用户程序面前呈现 相同的面貌。 (8)java.applet用于创建Applet小程 序,处理与浏览器的相互作用,播放声音。
1.构造函数
(1)public Hashtable(); (2)public Hashtable(int initialCapacity); (3)public Hashtable(int initialCapacity,float loadFactory);
2.实例方法
(1)public void clear(); 删除表中的全部内容。 (2)public Boolean contains(Object value); (3)puby); 如果找到指定的元素或键,返回true。
boolean hasNext() 迭代对象仍然拥有可供访问对象,返回 true,否则为false。 void remove() 删除上次调用next时返回的元素。

Java基础第4章.ppt

Java基础第4章.ppt
DataType varName[=value[,varName[=value]…];
如:int count; char c='a';
4.1.1 变量及其作用域
3. 变量的作用域:
一个变量从被创建、使用一直到 销毁的这一段时间称为变量的生 存期
一个变量的有效使用范围称为作 用域
4.1.1 变量及其作用域
}
4.4.3 switch语句
switch (表达式) { case c1: 语句组1; break; …… case ck: 语句组k; break;
[default: 语句组; break;]
}
计算结果必 须是int型 或字符型
c1,c2,…,ck 是int型或 字符型常量
4.4.3 条件运算符?:
2. public static void main(String args[ ]) {
3.
int result = 0;
4.
for(int i=1; i<=100; i++) {
5.
result += i;
6.
}
7.
System.out.println("result=" + result);
8. }
逻辑值,不能以数值来代替。
注意:
1. 语句1和语句2既可以是单语句,也 可以是语句块。
2. if语句可以嵌套,嵌套时,规定else 子句属于离它最近的if语句。
示例:
if(exp1) { statement1;
} else if(exp2) { statement2;
} elห้องสมุดไป่ตู้e statement3;

java 课件 第四章

java  课件 第四章


类的一般声明形式:
[public] class <clsName> extends <supCls> implements <intf> ◦ class是表示创建类的关键字; ◦ <clsName>是Java合法标识符; ◦ [public]是可选项,表示该类是public类;类的可选项还有 abstract、final等等; ◦ extends <superCls>则是继承性表示,该类继承了类 <superCls> ◦ implements <intf>则是对接口实现表示,该类实现了接口 <intf>


方法声明 [accessControl] returnType methodName(paraList)
◦ [accessControl]是可选项,为访问控制修饰符,限定访问权限. ◦ returnType是方法返回数据类型,它表示方法返回时返回数据 的类型. ◦ mothodName是方法名,它是Java合法标识符. ◦ paraList是方法参数列表,表示方法调用时所带参数。称为形 式参数。

在类的构造器中对成员变量的赋初值。
◦ 例:Point(){ ◦ x = 10; //x赋初值10 ◦ y = 20; //y赋初值20 ◦ }


使用修饰符final修饰的变量就像常量一样地使用, 称其为常量符号。 常量符号数据只能读取,不能改变。通常常量符号 标识符全用大写字母,单词间用“_”分隔。
◦ 接收消息的对象(目标对象); ◦ 接收者采用的方法(目标方法); ◦ 方法所需传递的参数。



类定义了对象的类型。包括对象内部的数据,它是 对象的特性,和对象对自己的数据上的操作功能。 因此类就是对象的模板。 类是某种对象共有的状态和行为的原型。 一个类可以有许多的对象,每一个对象都是这个类 的一个实例,它们也就都具有相同的特征。

java课件——第四章

java课件——第四章
20102010-7-18
教学公共群:81246901 教学公共邮箱:ldxylmj@ 教学公共群:81246901 教学公共邮箱:ldxylmj@
类与对象
4.1.5 数组
语言中, 对象来实现的. 在Java语言中,数组是作为类 对象来实现的.一个 语言中 数组是作为类/对象来实现的 数组的大小( 数组的大小(也就是一个数组能保存的元素的数 ),可以在它的 可以在它的length实例变量中找到. 实例变量中找到. 目),可以在它的 实例变量中找到
20102010-7-18
初始值 0 0L 0.0f 0.0d '\u0000' null
类与对象
教学公共群:81246901 教学公共邮箱:ldxylmj@ 教学公共群:81246901 教学公共邮箱:ldxylmj@
4.1.4 对象的声明
对象是类的实例. 对象是类的实例.在程序中创建一个对象将在内 存中开辟一块空间. 存中开辟一块空间. 创建对象使用关键字运算符new 创建对象使用关键字运算符new 对象名称; 类的名称 对象名称; 对象名称= 类名(); 对象名称=new 类名(); Box mybox; mybox=new Box(); 对象名称= 类名(); 或 类的名称 对象名称=new 类名(); Box mybox=new Box();
20102010-7-18
教学公共群:81246901 教学公共邮箱:ldxylmj@ 教学公共群:81246901 教学公共邮箱:ldxylmj@
类与对象
class classname { instance-variable1 type instance-variable1; instance-variable2 type instance-variable2; // ... instance-variableN; type instance-variableN; methodname1(parametertype methodname1(parameter-list) { // body of method } methodname2(parametertype methodname2(parameter-list) { // body of method } // ... methodnameN(parameter (parametertype methodnameN(parameter-list) { // body of method } }

Java实用PPT课件第4章.ppt

Java实用PPT课件第4章.ppt

2020/10/8
3
3.简单的Circle类
面向对象的一个重要思想就是通过抽象得到类,即将某些数据以及针对这些 数据上的操作封装在一个类中,也就是说,抽象的关键点有两点一是数据,二 是数据上的操作。
我们对所观察的圆做如下抽象:
☃圆具有半径之属性。
☃可以使用半径计算出圆的面积。
现在根据如上的抽象,编写出如下的Circle类。
Circle circle; 为Circle类声明的circle对象分配变量的代码如下:
circle = new Circle(); 对象通过使用“.”运算符操作自己的变量和调用方法。 对象操作自己的变量的的格式为:对象.变量;
例如,circle.radius=100; 调用方法的格式为: 对象.方法;
(1)封装:面向对象编程核心思想之一就是将数据和对数据的操作封装在 一起。通过抽象,即从具体的实例中抽取共同的性质形成一般的概念,比如 类的概念。
人们经常谈到的机动车类就是从具体的实例中抽取共同的属性和功能形成 的一个概念,那么一个具体的轿车就是机动车类的一个实例,即对象。
一个对象将自己的数据和对这些数据的操作合理有效地封装在一起,例 如,每辆轿车调用“加速”、“减速”改变的都是自己的运行速度。
第4章 类与对象
本章导读
类声明和类体及其构成 构造方法与对象的创建 对象的引用与实体 成员变量、方法和方法重载 关键字this 包
本章导读 import语句 访问权限 对象的组合 基本类型数据的类包装 反编译和文档生成器 JAR文件的使用
2020/10/8
1
4.1 面向对象编程
1. 面向对象编程的三个特性
2020/10/8
2
2.提出一个简单的问题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

天津职业技术师范大学
可利用
public class Manager extends Employee{ } public class TestExtends { public static void main(String[] args) { Manager m=new Manager(); m.setSalary(1000); m.getIncome(); } }
Lion 类
Tiger 类
Cow 类
Coat 类
子类
天津职业技术师范大学
4.1 类的继承
继承是为了重用,子类可利用、修改父类中的方
法,也可添加需要的新方法。
使用extends可以定义一个类的子类:
访问修饰符 class 子类名 extends 父类名{ … } 例:public class Manager extends Employee{ … }
访问控制修饰符一览
存取修饰 同一类 同一包 子类 外部
private
(default) protected public
OK
OK OK OK OK OK OK OK OK OK
天津职业技术师范大学
可修改
public class Employee{ protected String name; protected int age; protected double salary; Employee (String name, int age,double salary){ =name; this.age=age; this.salary=salary; } Employee (){ this(null,0,0); } ……
天津职业技术师范大学
可添加
当父类的属性和方法不能满足子类使用时,可以 在子类增加属性和方法。 可以重载父类中的方法。
天津职业技术师范大学
可添加
public class Manager extends Employee{ private double bonus; public void setBonus(double bonus){ this.bonus = bonus; } …… } public class TestExtends { public static void main(String[] args) { Manager m=new Manager(); m.setBonus(5000); } }
天津职业技术师范大学
可利用
public class Employee{ private String name; private int age; private double salary; Employee (String name, int age,double salary){ =name; this.age=age; this.salary=salary; } Employee (){ this(null,0,0); }
天津职业技术师范大学
可利用
public double getSalary(){ return salary; } public void setSalary(double salary){ this. salary = salary; } public double getIncome(){ return salary; } }
public class Employee{ private String name; private int age; private double salary; Employee (String name, int age,double salary){ =name; this.age=age; this.salary=salary; } Employee (){ this(null,0,0); }
重用
重用也叫复用——reuse 重用的目的是更高效,更简单。 重用的方式大致有两种: 组合 继承
天津职业技术师范大学
组合式重用
public class Manager{ private Employee employee; private double bonus;
Manager (String name, int age,double salary,double bonus){ employee =new Employee(name,age,salary); this.bonus=bonus; } 1. 组合是在类中,定义要复用 Manager (){ this(null,0,0,0); 的类的对象,作为属性。 } 2. 通过这个属性达到复用目的。 …… 类似于一种代码组合。 } 3. 它们之间的关系是has-a关系
天津职业技术师范大学
可修改
public class Manager extends Employee{ private double bonus; public void setBonus(double bonus){ this.bonus = bonus; } …… //重写父类中的方法 public double getIncome(){ return getIncome() +bonus; } public static void main(String[] args) { } Manager m=new Manager(); double v=m.getIncome(); } 天津职业技术师范大学
可修改
使用super关键字调用父类 中定义的方法
public class Manager extends Employee{ private double bonus; public void setBonus(double bonus){ this.bonus = bonus; } …… //重写父类中的方法 public double getIncome(){ return super.getIncome() +bonus; } public static void main(String[] args) { } Manager m=new Manager(); double v=m.getIncome(); } 天津职业技术师范大学
天津职业技术师范大学
Employee.java
public double getSalary(){ return salary; } public void setSalary(double salary){ this. salary = salary; } public double getIncome (){ return salary; } }
public class Manager{ private String name; private int age; private double salary; private double bonus;
重复定义许多相同属性和 方法,低效。
Manager (String name, int age,double salary,double bonus){ =name; this.age=age; this.salary=salary; this.bonus=bonus; } Manager (){ this(null,0,0,0); } 天津职业技术师范大学
天津职业技术师范大学
可利用
子类从父类继承所有成员变量和方法,但只能直 接使用父类中用public和protected修饰的成员。
对于这些变量和方法,就好象它们是在子类中直
接声明一样,可以被子类中自己声明的任何实例 方法操作。(java继承类似于C++的public继承) 父类中的私有成员也被子类继承,但只能被从父 类继承的方法调用。
天津职业技术师范大学
可修改
如果希望属性或方法能够被子类访问,同时又不 被外部类访问,可以使用访问修饰符protected。 protected修饰的成员可以被子类和同一个包中的 类访问。
天津职业技术师范大学
可修改
public class Employee{ protected String name; protected int age; protected double salary; Employee (String name, int age,double salary){ =name; this.age=age; this.salary=salary; } Employee (){ this(null,0,0); } ……
天津职业技术师范大学
继承式重用
public class Manager extends Employee{ private double bonus; Manager (String name, int age,double salary,double bonus){ super(name,age,salary); this.bonus=bonus; } 1. 继承通过extends关键字实现。 Manager (){ this(null,0,0,0); 2. 被继承的类叫父类或超类 3. 继承后的类叫派生类或子类 } …… 4. 子和父类间的关系是is-a关系
继承与多态
刘烁 admin@
练习
请编写一个职工类Employee,要求其包含name、 age和salary(月薪),并且完成构造方法、相应的 getter、setter方法以及获得收入方法(getIncome) 注,职工的收入就是工资。
天津职业技术师范大学
Employee.java
天津职业技术师范大学
可修改
public double getSalary(){ return salary; } public void setSalary(double salary){ this. salary = salary; } public double getIncome(){ return salary; } }
相关文档
最新文档