java的类和对象 第5章(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
29
例题----方法调用测试
public class CircumferenceTester
{ public static void main(String args[])
{ Circle c1 = new Circle(); c1.radius = 50; Circle c2 = new Circle(); c2.radius = 10; double circum1 = c1.circumference(); //调用 double circum2 = c2.circumference(); System.out.println("Circle 1 has circumference " + circum1); System.out.println("Circle 2 has circumference " + circum2);
类的声明(3)
修饰符 可以有多个,用来限定类的使用方式 abstract 指明此类为抽象类,其概念和使用方法将在第6章 介绍。 final 指明此类为终结类,不能用最终类生成子类。
类声明体 数组成员及方法成员 数组成员说明了类的静态属性,而方法成员一般是 对类的静态属性进行一些相应的操作。 初始化体 可以有多个,具体的在5.3节介绍。
21
5.1.2 方法成员的定义及重载
方法成员 定义类的行为 一个对象能够做的事情 我们能够从一个对象取得的信息 可以没有,也可以有多个;一旦在类中声明了方 法,它就成为了类声明的一部分 分为实例方法和类方法
5.1.2 方法成员的定义及重载
声明格式: [访问控制符] [修饰符] 方法返回值类型 方法名([参数表]) { 方法体; }
类的声明——例1(钟表类)
public class Clock {
int hour ; int minute ; int second ;
// 成员变量
// 成员方法 public void setTime(int newH, int newM, int newS) { hour=newH ;
minute=newM ; second=news ; } public void showTime() { System.out.println(hour+":"+minute+":"+second); } }
27
方法调用
实例方法
表示特定对象的行为 声明时前面不加static修饰符 使用时需要发送给一个类实例
类方法
也称为静态方法,表示类中对象的共有行为 声明时前面需加static修饰符 不能被声明为抽象的 类方法可以在不建立对象的情况下用类名直接调用,
也可用类实例调用 28
例题----方法调用
public volatile static int count = 0; //共享变量

}
数据成员(4)
实例变量 没有static修饰的变量称为实例变量(instance variables) 用来存储所有实例都需要的属性信息,不同实例的属性 值可能会不同 可通过下面的表达式访问实例属性的值 <实例名>.<实例变量名>
类体由数据成员、方法成员和一些初始化块组 成。
数据成员(1)
•表示Java类的状态 •声明数据成员必须给出变量名及其所属的类型,同 时还可以指定其他特性 •在一个类中成员变量名是唯一的 •数据成员的类型可以是Java中任意的数据类型(简 单类型,类,接口,数组) •分为实例变量和类变量
数据成员(2)
Java程序设计
第5章 Java类和对象
主要内容
5.1 类的定义和使用 5.2 Java类的封装性 5.3 对象的初始化 5.4 对象销毁机制 5.5 综合运用实例
5.1 类的定义和使用
类与对象
类与对象的关系:类只是个抽象的称呼,而对象则是与 现实生活中的事物相对应的实体。
对象 映射
实体
抽象 实例化
final 修饰符修饰的成员将变为常量,在定义时必须为其指 定初值,指明变量的值不能被修改。
volatile 修饰符将会使得该成员允许在多线程环境中被异步访 问。用volatile修饰的变量,线程在每次使用变量的 时候,都会读取变量修改后的最的值。指明变量是一 个共享变量。
数据成员——例题
或: [public | protected | private] [static][ final][abstract] [native] [synchronized]返回值类型 方法名([参数表]) { 方法体; }
格式说明(1)
方法访问控制符 public protected private 缺省访问控制
//类变量
final String design="yangzi";
//常量
//局部变量
局部变量在Java中表现为两个方面:一种情况是指在方法 体内定义的变量;另一种情况是指方法中的形参。
在同一个作用域内,Java不允许定义两个不同名的局部变 量。(举例说明)
//成员方法
一个类或对象可以有多个成员方法,对象通过执行它的成员方法对传来的
具体作用在第二节介绍
public、protected、private 为存取控制符
24
格式说明(2)
方法修饰符
abstract 修饰的方法为抽象方法,所属类必为抽象类。
final 修饰的方法为最终方法,该方法不可覆盖。
static 修饰的方法为静态方法,与静态变量成员一样,静态方法不依 赖于具体的对象,通过类名或该类的对象名来调用,同时静态 方法体中不能访问类的非静态成员。
调用格式 <对象名>.<方法名>([参数列表]) 称点操作符“.”前面的<对象名>为消息的接收(receiver)
在Java程序中有一个基本的main方法,其方法声明如下:
public static void main(String[] args)
在调用方法时,程序的执行流程会进入方法的内部,当执行 到方法内部的return语句或执行完方法内部的代码以后,则 返回到调用该方法的位置继续向下执行。
抽象
类 逻辑实现
抽象数据类型
类与对象
在现实生活中,只使用类或对象并不能很好的描述一个 事物。
例如:一只鸟(模糊)
一只绿色的、会说话的鸟
绿色:对象的属性
会说话:对象的方法
由此可见,对象具有属性和方法,在面向对象中,用属 性来描述对象的状态,用方法来处理对象的行为。
类与对象
在程序中,对象是通过一种抽象数据类型来描述的, 这种抽象数据类型称为类(class)
19
数据成员(5)量
类变量 也称为静态变量,声明时需加static修饰符 不管类的对象有多少,类变量只存在一份,在整个类 中只有一个值 类初始化的同时就被赋值 引用格式 <类名 | 实例名>.<类变量名>
20
数据成员(6)
实例变量和类变量都可被声明为final final实例变量必须在每个构造方法结束之前赋初值,以保证使用之
10
// 成员变量(全局变量)
成员变量:在类体的变量部分中定义的变量,也称为属性。代码 中的实例变量、类变量、常量都属于成员变量,格式:
变量修饰符 类型 变量名; 变量修饰符 :public、private、static、final、 protected等。
修饰符 public protected private
举例:public static void main(String[ ] args) { int a=2,b=3; int z=a+b;
System.out.println("z="+z); }
5.1.1 类的定义
对于每个Java Application程序来说,程序的入口 总是从主类开始。所谓主类是指包含了一个main方 法的public类。 Java Application程序有且仅有一 个主类。
public class A { static int num=0;
//静态变量成员
private final String S="final实例变量S";
private final int A=100; public final int B=90;
//定义常量
final String name=new String(“类名:A”);
在Circle类中声明计算周长的方法 public class Circle {
static double PI = 3.14159265; int() {
return 2 * PI * radius; } }
由于radius是实例变量,在程序运行时,Java会自动 取其接收者对象的属性值
一个类是对一类对象的描述。
类是构造对象的模板,对象是类的具体实例。
5.1.1 类的定义
类的定义
在Java语言中,类是基本的构成要素,是对象的模版,Java 程序中所有的对象都是由类创建的。
Java中有8大内置数据类型(基本类型):byte、short、int、 long、float、double、char、boolean。
native 修饰的方法指出其方法体为其它的语言编写,在运行时需要加 载。用来集成Java代码和其它语言的代码。
synchronized 修饰的方法主要用在多线程环境下的同步访问。用来控制多个 并发线程对共享数据的访问。
格式说明(3)
返回类型 方法返回值的类型,可以是任意的Java数据类型 当不需要返回值时,返回类型为void
声明格式:
[访问控制符] [修饰符] 类型 变量名;
访问控制符
public protected private default
具体作用在第二节介绍
数据成员(3)----修饰符
Static 修饰的数据成员为类的静态数据成员,静态数据成员 不依赖于该类的任何对象,访问时通过类名或该类的 对象名直接访问,指明这是一个静态成员变量。
类的声明(2)
访问控制符 public 表明此类为公有类,则该类所在源文件的文件名必须 与该类名严格一致(包括字母的大小写),否则编译 将会出错。也就是说一个Java源文件中只能定义一个 public类。 缺省控制符 访问控制符位置为空,缺省访问控制定义的类不能单 独存储在源文件中。 举例说明
类的声明
[访问控制符][修饰符] class 类名 [extends父类名]
[implements 接口名称列表]
{
类声明体
数据成员及方法成员;
初始化块;
}
类的声明(1)
关键字 class 表明其后声明的是一个类。 extends 用来说明该类继承自哪个父类。如果所声明的类是从 某一父类派生而来,那么,父类的名字应写在 extends之后(举例说明) implements 如果所声明的类要实现某些接口,那么,接口的名字 应写在implements之后 子类和接口的概念和使用方法 会在第6章介绍。
参数类型 简单数据类型, 引用类型(数组、类或接口) 可以有多个参数,也可以没有参数,方法声明时的参 数称为形式参数
方法体 方法的实现 包括局部变量的声明以及所有合法的Java指令 局部变量的作用域只在该方法内部
26
方法调用
给对象发消息意味着调用对象的某个方法 从对象中取得信息 修改对象的状态或进行某种操作 进行计算及取得结果等
前会被初始化 final类变量必须在声明的同时初始化 当你在类中定义变量时,在其前面加上final关键字,即这个变量一
旦被初始化便不可改变,这里不可改变的意思对基本类型来说是 其值不可变,而对于对象变量来说其引用不可再变。 其初始化可以在两个地方,一是其定义处,也就是说在final变量定 义时直接给其赋值,二是在构造函数中。 当函数参数为final类型时,你可以读取使用该参数,但是无法改变 该参数的值。另外方法中的内部类在用到方法中的参变量时,此 参变也必须声明为final才可使用 static final int 一般用于常量定义
static
final
说明 成员变量可以被项目中的任何方法访问,建议尽量少用 不在同一个包中的类不能访问,但子类可以访问 只能在同一个类中使用
类变量,其值为该类的所有对象共享,不会因类的对象不 同而不同 最终成员变量,其值保持不变,即常量
Eg: private int size;
//实例变量
private static String depart;
消息作出响应,完成特定的功能。
格式: [修饰符] 返回值的类型 成员方法名([参数表]) { 说明部分 执行语句部分 }
成员方法的声明包括成员方法头和方法体两部分,其中:成员方法头确定 成员方法的名字、形式参数的名字和类型、返回值的类型等;方法体由包 括在花括号内的说明部分和执行语句部分组成,描述该方法的功能。
相关文档
最新文档