




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目项目4 学生基本信息管理学生基本信息管理-类和对象类和对象项目学生基本信息管理项目学生基本信息管理主要内容学习目标及重、难点1任务学习2课堂实践3总结与要求4任务介绍任务一 理解类和对象的概念及其关系,会分析和设计银行帐户对象和储户对象任务二 定义平面上任意两个点p1,p2,并计算p1到原点的距离,以及点p1到p2的距离任务三 定义和处理员工信息任务四 处理学生基本信息任务分析支撑知识讲解p 面向对象基本概念p 类的定义 、对象的创建p 构造方法项目学生基本信息管理项目学生基本信息管理学习目标 重点、难点重点类的概念、类和对象的关系类的定义对象的创建和使用类修饰符的使用难点类与实例的关系对
2、象的创建属性和方法访问控制权限学习目标掌握类和对象的概念理解并掌握面向对象分析和设计的方法掌握类定义的格式属性方法掌握对象的创建和使用掌握构造函数的作用和特点掌握方法重载掌握访问控制权限的使用学习内容面向对象的基本概念类的定义属性方法对象的创建和使用构造函数的使用方法重载实现访问控制权限项目学生基本信息管理项目学生基本信息管理回顾v Java 具有8种基本数据类型 boolean、char、byte、int、short、long、float 及 doublev Java 中的运算符可分为四类: 算术运算符、位运算符、关系运算符、逻辑运算符v 数据的输入输出v Java 支持下列控制结构 顺序、
3、选择、循环、跳转v 数组 可用来将同一类型的数据存储在连续的内存位置。 声明、初始化,引用,常见应用(数组长度、最值等)v main方法参数的使用v 字符串的使用 String StringBuffer/StringBuilder项目学生基本信息管理项目学生基本信息管理本章背景v本章将学习 面向对象的基本概念和特征,面向对象设计方法的基本思想。 如何自定义类,创建和使用对 然后实现方法重载v学习目标 掌握面向对象程序技术的基本概念 掌握类与现实世界的关系,并能根据需求正确对其进行抽象 通过自定义类的设计,掌握类成员变量,成员方法定义和使用,掌握构造函数的定义和使用,掌握方法重载项目学生基本信息
4、管理项目学生基本信息管理任务学习v任务描述任务描述 任务一:理解类和对象的概念及其关系,会分析和设计银行帐户对象和储户对象项目学生基本信息管理项目学生基本信息管理任务学习v 支撑知识介绍支撑知识介绍 面向对象的基本概念 类和对象的概念和关系 封装性、多态性、继承性 面向对象的分析和设计方法项目学生基本信息管理项目学生基本信息管理程序语言的发展人类更容易理解v面向机器面向机器(机器语言、汇编语言机器语言、汇编语言) 可读性、可维护性、移植性差;效率高v面向过程面向过程 核心:算法+数据结构 缺陷:随应用程序的规模扩大,操作与数据分离所带来的维护工作量越来越大 不适用于GUI界面、事件驱动编程v面
5、向对象面向对象 人类先进的模式应用到计算机模型。能更直接的描述客观存在的事物。 从现实世界中客观存在的事物出发来设计,并在软件开发中运用人类的自然思维方式。项目学生基本信息管理项目学生基本信息管理面向对象v对象对象 世界上所有的事物都可以称为对象。 包括有形(一台电视机等)和无形(帐户、一项记录等) 对象两大要素 属性(对象静态特征,可以用某些数据描述) 操作(对象动态特征、又称方法,具有的行为或功能) 如电视 属性有:品牌、尺寸、重量等 操作有:收视、选台、音量调节等 按照子类与父类的关系,把若干个对象类组成一个层次结构的系统 对象彼此之间仅能通过传递消息互相联系。项目学生基本信息管理项目学
6、生基本信息管理项目学生基本信息管理项目学生基本信息管理课堂思考思考:一只大雁要从北方飞往南方第一步:抽象出对象-大雁第二步:识别该对象的属性-一双翅膀,黑色的羽毛第三步:识别该对象的行为-飞行、觅食等第四步:封装属性和行为来描述大雁这类动物。总结:类是封装对象属性和行为的载体 对象是类的一个实例项目学生基本信息管理项目学生基本信息管理面向对象v类类 对具有相同基本特征对象的一种抽象,是同一类事物的统称 类也是Java中最重要的数据类型,自定义类型 由类定义生成的数据称为这个类的实例或对象。 类和对象关系 类是一个抽象的概念 对象是一个具体的类的实例一个类可以生成多个不同的对象,具有不同的属性值
7、项目学生基本信息管理项目学生基本信息管理例子项目学生基本信息管理项目学生基本信息管理面向对象例如:定义一个类圆class Circle /属性 String color; /颜色 int length; /半径 /方法 void expand() 方法体 /方法:放大 void reduce() 方法体 /方法:缩小对象具有属性和行为。与之相对应,类在定义时,需要声明类的变量(数据)和方法。Circle c1=new Circle() /生成类Circle的实例c1项目学生基本信息管理项目学生基本信息管理类v属性属性-成员变量成员变量 属性称为数据成员,或者成员变量 描述类中所定义的数据,对客
8、观世界实体所具有性质的抽象 类的每个实例都有自己特有的属性值例如Circle类中所定义的代表半径、颜色等的数据成员,就是Circle类的属性项目学生基本信息管理项目学生基本信息管理类v方法方法 在类中实现的操作,它是功能实现的基本单位。 方法描述了对象执行操作的具体实现算法一个方法有以下几个部分构成:n方法名n输入参数(可空)n 返回值(可空)n执行代码段为了使Circle类的对象可以在屏幕上显示自己,可以定义方法show()int show (int i,float j)/ 返回值 方法名 输入参数 /实现代码项目学生基本信息管理项目学生基本信息管理类v消息消息 软件对象通过相互间传递消息来
9、相互作用和通信,一个消息由三部分组成: 接受消息的对象 接收对象要采取的方法 方法需要的参数对象对象B对象对象 A消息消息项目学生基本信息管理项目学生基本信息管理任务学习v 完成任务步骤分析完成任务步骤分析 了解对问题的描述 建立使用实例,分析整个应用实现的场景ATM必须允许用户插入银行卡,选择合适的帐户,然后存钱、取钱、查询余额;一个银行帐户必须记录帐户的ID和当前余额;支票帐户和现金帐户必须支持存钱和取钱。“取钱“是ATM的一个应用实例(存钱、查询余额、验卡、取钱-数目超过余额等也是),步骤有:n选择银行列出的帐户类型n输入取钱的数额(不超过余额)n取出钱n取出卡项目学生基本信息管理项目学
10、生基本信息管理任务学习v 完成任务步骤分析完成任务步骤分析 提取候选类和方法(1)要发现对象以及对象的属性:n在以上使用实例中寻找名词,如帐户(2)要发现方法:n在使用实例中寻找动词,如查询(3)确定哪些是对象,哪些是对象的属性:n一般,属性是一些简单值,如余额。n而对象是由一些简单值组合而成,如帐户包括户名,余额,开户时间等。(4)把找到的方法分配对合适的对象,使其成为对象的成员方法。一些属性和对象:n银行、帐户、余额、银行卡等找到的方法包括:n取钱、选择帐户、查询余额、取卡等项目学生基本信息管理项目学生基本信息管理任务学习v 任务解决任务解决 确定银行帐户对象和储户对象:BankAccou
11、ntint accountid /帐号double balance/余额void credit(double money)/存入钱到帐户double getbalance(int id)/查询帐户中的余额void debit(double money) /从帐户中取钱Personint id /身份证号int age /年龄String name/姓名void pressButton() /按钮void inputCard()/插卡绿色绿色:属性:属性紫色紫色:方法:方法这两个对象之间存在的关系为:一个储户可以有多个银行帐户,一个帐户只能属于一个储户。项目学生基本信息管理项目学生基本信息管理面
12、向对象特性v三个主要特性三个主要特性 继承性 封装性 多态性继承性:指一个新的类继承原有类的基本特征,并可增加新的特性继承具有传递性,Java是单继承封装是一种信息隐蔽技术,封装的目的n隐藏类的实现细节n迫使用户通过接口去访问数据n增强代码的可维护性封装的实现nJava通过访问控制权限来实现封装,访问权限有4种:public, protected, 缺省, private多态性是指一个名称对应有多种不同的功能,提供灵活性类的多态性主要通过方法的重载,覆盖和接口来实现项目学生基本信息管理项目学生基本信息管理面向对象v课堂思考课堂思考 小王本来体重70kg,经过减肥,体重降到45kg,试从这个问题
13、领域中识别对象、类、属性、状态和状态的变化。 1) 类:人。 2) 对象:小王。 3) 属性:体重。 4) 状态:70kg。 5) 状态的变化:小王的减肥行为导致体重下降项目学生基本信息管理项目学生基本信息管理任务学习v 总结总结 介绍面向对象基础知识 类和对象 面向对象分析和设计的方法 三个主要特性: 继承性 封装性 多态性项目学生基本信息管理项目学生基本信息管理任务学习v任务描述任务描述 任务二: 定义平面上任意两个点p1,p2,并计算p1到原点的距离,以及点p1到p2的距离项目学生基本信息管理项目学生基本信息管理任务学习v 支撑知识介绍支撑知识介绍 类的定义 属性的定义 方法的定义 方法
14、定义 方法调用 方法重载 构造方法 主方法访问控制修饰符其他修饰符项目学生基本信息管理项目学生基本信息管理类的定义v类类 类是封装对象的属性和行为的载体 Java中最重要最基本的数据类型,由两种基本成员构成: 数据(属性) 可以是基本数据类型 也可以是某个类的实例 方法 表示对象具有的行为,与函数类似,只能在类内定义项目学生基本信息管理项目学生基本信息管理271 Java 类的定义-语法规范类的修饰符n 访问控制权限修饰符(public、缺省 、private和protected不能)n抽象和最终类修饰符(final,abstract,static不能用 )n类修饰符为可选项extendsn继
15、承父类implements n实现接口n类是组成Java程序的基本要素。它封装了一类对象的属性和方法,是这一类对象的原型。类的修饰符类的修饰符 class 类名称类名称 extends 父类名称父类名称implements 接口名称列表接口名称列表 成员变量定义及初始化;成员变量定义及初始化; 构造函数定义构造函数定义; 方法定义及方法体;方法定义及方法体;类体,其类体,其中定义了该类中所有的变量和中定义了该类中所有的变量和该类所支持的方法,称为成员变量和成该类所支持的方法,称为成员变量和成员方法。员方法。类体项目学生基本信息管理项目学生基本信息管理1 Java 类的定义v类名类名 必须符合J
16、ava标识符的命名规则 以字母、字符”_”或”$”开头 不能使用与Java关键字相同的类名 类名通常以大写字母开头,如果类名由多个单词组成,则每一个单词的开头字母要大写 类名应尽量有意义,便于程序阅读者的理解和程序的维护,养成良好的编程习惯。项目学生基本信息管理项目学生基本信息管理2、类的修饰符v 访问控制修饰符访问控制修饰符 public 公开类:类成员可以被本包和不同包的任何类、对象所用;反之非公开类通常为同一个包中其它非公开类或公开类服务。 缺省 只能被同一个 包中的其他类、对象引用或继承。 protected 不能用 private 不能用v 抽象类修饰符抽象类修饰符 abstract
17、 后面学v 最终类修饰符最终类修饰符 final 后面学注意:abstract和final是矛盾的,不能同时选择,要么都不用,要么只能选一个。项目学生基本信息管理项目学生基本信息管理3、成员变量定义-语法规范变量修饰字变量修饰字 变量数据类型变量数据类型 变量名变量名1,变量名变量名2=变量初值变量初值;public | protected |缺省缺省| private static final transient volatilen 成员变量的类型可以是基本类型也可以是引用类型(类,接口,数组)n 在一个类中的成员变量唯一n 变量必须先定义,后使用n 可以设置初值,如果没有设置,则会有默认值
18、整型 (byte、int、short、long)0字符型 (char)u0000布尔型 (boolean)false实型 (float double)0.0引用类型 (数组、类、接口)null项目学生基本信息管理项目学生基本信息管理3、成员变量定义例如例如: public class Date1 /类声明 int year,month,day; /成员变量声明 v 或者:或者:byte b;double d1=0.23,d2=56.7;boolean mycom=true;char mc=b;String s“abc”;项目学生基本信息管理项目学生基本信息管理成员变量定义-修饰符v访问控制修饰
19、符有4种 public、protected、缺省、 private,用来规定变量的访问权限vstatic 指明该变量是一个类变量(静态变量);若无,则为实例变量(属于对象)vfinal 指该变量是一个常量,不可改变项目学生基本信息管理项目学生基本信息管理334、访问修饰符的控制范围访问修饰符本类同一包中的类或子类不同包中的非子类不同包中的子类publicprivateprotected缺省 :可访问项目学生基本信息管理项目学生基本信息管理class A public int x;/任何类的对象都能对它读写完全暴露给使用者,除非特殊,一般不定义 protected int y;/同一个包中任何类
20、或不同包中子类方法能进行读写 private int z;/只有本类自身成员才能访问 int w;/同一个包中任何类对象可以进行读写 void setX(int a) z=a;/可以,在A类内部public class TestA public static void main(String args) A pt=new A();/通过new运算符生成一个A类对象 pt.x=10; /因为是public,可对A类的对象中x成员进行读写 pt.y=20;/如果在同一个包,是可以的。否则不可以 pt.z=30;/不行,只有在A类内部才可以访问,外部无权 项目学生基本信息管理项目学生基本信息管理假设
21、两个类定义在同一个包中Class Point static int x;/静态(类)变量静态(类)变量 int y; /实例变量实例变量Public class TeatPoint public static void main(String args) Point.x=10;/可以。可以。X一直存在,随时可用,与有无对象无关一直存在,随时可用,与有无对象无关 Point.y=10;/不可以,是实例变量,必须先创建对象后才能使用不可以,是实例变量,必须先创建对象后才能使用 Point p1=new Point(),p2=new Point(),p3=new Point(); p1.y=10;
22、/可以。可以。P1对象内部含有自己的变量对象内部含有自己的变量 p2.y=20; /可以。可以。P1对象内部含有自己的变量对象内部含有自己的变量 p3.y=30; /可以。可以。P1对象内部含有自己的变量对象内部含有自己的变量 p1.x=20;/可以,所有对象共享一个类成员变量可以,所有对象共享一个类成员变量x,它一直存在,随时可,它一直存在,随时可用用 项目学生基本信息管理项目学生基本信息管理示例:控制范围-1同一个类内可以访问任何访问权限的变量。package test;public class Demo2void test() Demo1 dm1=new Demo1(); dm1.pri
23、Int=1; /错误 Int=1; dm1.defInt=1; dm1.pubInt=1;在同一个包下,但Demo2对Demo1中的private成员没有访问权限。package test;public class Demo1 private int priInt; protected int proInt; int defInt; public int pubInt; void test() priInt=1; proInt=1; defInt=1; pubInt=1; package test.t1;import test.Demo1;public class Demo4vo
24、id test() Demo1 dm1=new Demo1(); dm1.priInt=1; /错误 Int=1;/错误 dm1.defInt=1;/错误 dm1.pubInt=1;不同包下,只能访问Demo1中的public成员。项目学生基本信息管理项目学生基本信息管理5、方法定义-语法规范方法修饰字方法修饰字 返回类型返回类型 方法名称方法名称(参数参数1,参数参数2,) throws exceptionList (statements;) /方法体:方法的内容方法体:方法的内容public | protected|缺省 | private static final | ab
25、stract native synchronizedn 返回类型可以是任意的Java数据类型当一个方法不需要返回值时,返回类型为void。n 参数的类型可以是简单数据类型也可以是引用数据类型(数组、类或接口)参数传递方式是值传递。n 方法体对方法的实现包括局部变量的声明以及所有合法的Java指令。局部变量的作用域只在该方法内部。项目学生基本信息管理项目学生基本信息管理举例:方法定义v 举例:举例:final void move(int dx,int dy) throws IOException x+=dx; y+=dy; v 举例:举例:class Test int a,b; void cha
26、nge(Test obj) obj.a=50; obj.b=40; /可以在函数中改变可以在函数中改变对象状态对象状态 void setTest(int x,int y)void setTest(int x,int y) a=x; a=x; b=y; b=y; 项目学生基本信息管理项目学生基本信息管理6、方法定义-修饰符v 方法命名 符合标识符规则 Java中允许同名方法存在,但方法的参数列表应不同(方法的重载)v 访问控制权限 public 、pretected、缺省、private含义同成员变量v 其他修饰符static 类方法(静态方法),可直接用类名来调用,随时可用。abstract
27、抽象方法,只有声明部分,方法体由子类来实现final 最终方法,不能被子类重构native 本地方法,由本地其他语言代码实现synchronized 同步,将在“多线程”中介绍项目学生基本信息管理项目学生基本信息管理v static 用于修饰类的数据成员和方法,表示该成员为静态成员 基本形式: static 数据类型 变量名; static 返回类型 方法名(参数列表) /方法体 修饰符staticclass A static int b=0; /静态成员变量 static void get() /静态方法 n static修饰的 类成员或静态成员 在定义时就静态分配了内存空间,在生成类对象之
28、前就可以使用静态成员 静态成员是属于整个类的,一个类的多个对象可以共享共享该静态成员n 无static修饰的 实例成员 属于某个对象或实例,必须要定义对象才能使用项目学生基本信息管理项目学生基本信息管理修饰符staticv对静态成员的访问方法对静态成员的访问方法 先生成该类的实例(对象),然后再通过点运算符访问 A a=new A(); a.b=5; a.get() 是不生成实例,直接在类名后加上点运算符和静态成员名 A.b=5; A.get()static方法内部随时可以访问static成员变量和方法,要访问非static成员变量或方法,必须先创建一个对象。非static方法随时访问静态方法
29、不能被重载和重写项目学生基本信息管理项目学生基本信息管理修饰符staticv对静态成员的访问方法对静态成员的访问方法 static方法内部 可以访问static成员变量和方法 不能访问非static成员变量或方法,必须先创建一个对 非static方法 可以访问static成员变量和方法 可以访问非static成员变量和方法class Point static int x; int y; public static void main(String args) x=10;/可以,类变量随时可以使用 y=20;/不可以。必须先创建一个类对象 Point pt=new Point(); pt.y=2
30、0;/可以通过对象pt来访问pt对象中的变量y 项目学生基本信息管理项目学生基本信息管理修饰符-finalvfinal关键字关键字 最终的,不能修改 可以修饰类,成员变量和方法。 最终类,不能再有子类; 最终方法,不能再被重写; 最终属性,初始化后,不能再被赋值。常量final class A final double PI=3.1416; final double area(double r) return (PI*r*r); class FinalTest static public void main(String arg) A a = new A( ); System.out.prin
31、tln(area= +a.area(5.0); a.PI=100或重写方法area()都是错误的项目学生基本信息管理项目学生基本信息管理修饰符 abstractv抽象方法 用abstract修饰的方法, 抽象方法只有方法的返回值、名称和参数列表,没有函数体。v抽象类 用abstract修饰的类 抽象类是一种没有完全实现的类。 不能用它产生具体的实例项目学生基本信息管理项目学生基本信息管理7、方法v类成员方法 方法定义 方法调用 方法重载 构造方法 主方法项目学生基本信息管理项目学生基本信息管理方法定义v 返回值类型返回值类型 可以是基本数据类型、数组或类 如果方法不返回任何值,必须声明为voi
32、d(空)v 参数列表参数列表 由零个或多个参数构成,参数之间用逗号分隔,每个参数由一个数据类型和一个标识符构成v 方法体方法体 定义了该方法具体是如何实现的,是整个方法的核心和重点v 局部变量局部变量 方法体中定义的变量参数列表方法修饰符 返回值类型 方法名 (参数列表) 方法体项目学生基本信息管理项目学生基本信息管理方法调用v调用方法 实参在调用时会代替方法定义中的形参。 要求实参的类型、个数和顺序必须与定义中的形参表一致。 方法调用的形式有两种 一种是把方法调用作为一个表达式语句 另一种是作为一个表达式项目学生基本信息管理项目学生基本信息管理方法重载v方法重载 一个类中多个方法具有相同的方
33、法名,但参数的类型或参数的数量不同 静态多态:编译系统调用方法时,系统自动根据实际参数的数量和类型匹配public class MethodOverload public static void main(String args ) MethodOverload obj=new MethodOverload(); System.out.println(obj.square(3)+” ”+obj.square(1.5); int square( int x ) return x * x; double square( double y ) return y * y; 项目学生基本信息管理项目学生
34、基本信息管理构造方法v 类的特殊的方法,用来初始化对象类的特殊的方法,用来初始化对象 要求 构造函数的方法名与类名一致 构造函数没有返回类型,不能有void 只能通过new关键字在创建对象的时候调用 注意 在创建一个类的新对象时,系统会自动调用该类的构造函数为新对象初始化 每一个类至少都有一个构造方法 当某个类的没有声明构造方法时,系统会为其自动生成一个默认构造方法(无参数、无方法体)。 构造方法使用其参数初始化新对象的状态。 构造函数可以重载(参数序列不同)。当创建对象时,首先用new分配该对象的内存空间,然后调用某一个构造方法,对该对象内存空间初始化。项目学生基本信息管理项目学生基本信息管
35、理Main方法v主方法主方法 是Java应用程序执行的起点 与其它方法相似,它必须在类的内部定义 注意: 一个Java源文件可以包含一个或多个类 但在Java的Application中 必须有而且只能有一个类包含main方法 且该程序文件的名称必须与包含main方法的类的类名一致。main方法必须是公有的(public),静态的(static),没有返回值,有一个字符串数组参数,用于进行参数的传递。项目学生基本信息管理项目学生基本信息管理任务学习v 完成任务步骤分析完成任务步骤分析 一是如何通过类定义描述一个具体的点 一个类Point表示抽象的点,定义两个成员变量x, y表示点对应的具体位置
36、二是如何计算点到原点的距离 Math中已经实现了求平方根的方法sqrt() 三是如何计算点与点之间的距离 同上 编写主类,测试调用项目学生基本信息管理项目学生基本信息管理任务学习v 任务解决任务解决 编写程序 递交项目学生基本信息管理项目学生基本信息管理任务学习v 总结总结 类的定义主要包括成员变量和成员方法的定义 一般语句不能单独放在类中,必须放到方法中 成员变量的作用范围为整个类 成员方法(方法的返回值,方法的局部变量,可以重载) 主方法 访问控制修饰符 public 、protected、缺省、private 修饰类 修饰成员变量或成员方法 其他修饰符 static final abst
37、ract项目学生基本信息管理项目学生基本信息管理任务学习v任务描述任务描述 任务三:定义和处理员工信息项目学生基本信息管理项目学生基本信息管理任务学习v 支撑知识介绍支撑知识介绍 成员变量和局部变量 作用范围 变量隐藏this关键字对象 对象创建 访问对象 对象消除包 package Import再淡static成员变量和成员方法项目学生基本信息管理项目学生基本信息管理成员变量和局部变量v 成员变量成员变量 在类体中定义 在整个类中都有效v 局部变量局部变量 在方法中定义 方法体中声明 方法中的形参 只在本方法中有效class Data int x=12,y=5; /成员变量 public v
38、oid sum() int s; /局部变量 s=x+y; class Data int x=12,y=5; public void sum() int x=3; /局部变量x屏蔽了成员变量 int s; s=x+y; 名字隐藏:局部变量名与成员变量名相同,则成员变量被屏蔽 项目学生基本信息管理项目学生基本信息管理名字隐藏和this关键字v名字隐藏名字隐藏 局部变量与类的成员变量同名,则局部变量会隐藏成员变量,称为名字隐藏。 若要访问被隐藏的成员变量,则必须使用this来访问。 this 用于代表当前正在使用或访问的对象 每一个对象内部都有一个this变量,用于指明自身地址Public cla
39、ss Point private int x; private int y; public Point()x=0;y=0; public Point(int x)/int x为局部变量与成员变量x同名,成员x隐藏 this.x=x;y=0;/局部变量x的值赋给成员变量x public Point(int x,int y) this.x=x;this.y=y; public int getX()return x; public int getY()return y; public void setX(int x)this.x=x; public void setY(int y)this.y=y;
40、 public void setPoint(int x,int y)this.x=x;this.y=y; public void setPoint(Point pt)x=pt.x;y=pt.y;项目学生基本信息管理项目学生基本信息管理this关键字vthis 表示对当前对象的引用 表示使用类的成员变量,而非局部变量,尤其是()在成员变量(名字隐藏)与局部变量同名时 用于构造方法中引用满足指定参数类型的构造方法 只能用一个,且必须放在方法体的第一个语句public class Employee private String name; private int salary; public Emp
41、loyee() this(“Unknown”); public Employee(String n, int s) name = n; salary = s; public Employee(String n) this(n,0); /引用本类的构造方法,只能放在第一 项目学生基本信息管理项目学生基本信息管理对象v对象对象 是类的实例;创建类的目的是以类为模板创建对象。 对象的声明周期 创建对象 使用对象 删除对象一个类可以一个类可以有多个实例有多个实例对象的创建对象的使用对象的清除项目学生基本信息管理项目学生基本信息管理对象的创建v 对象的创建对象的创建 需要两个步骤需要两个步骤 对象创建之
42、前要先进行声明,但没有分配空间,为null,不能使用 Car demoCar; 然后通过new操作符创建一个对象实例,真正引用一个对象:demoCar = new Car(); 也可以两步合一: Car demoCar new Car();v 对象的构造过程对象的构造过程 为对象开辟空间,并对对象的成员变量进行缺省的初始化; 对成员变量进行指定的初始化; 调用构造方法。new 先为该对象从堆中申请内存空间,自动调用构造行数对该对象内存进行初始化,最后返回对象的引用,若内存不够,返回null。项目学生基本信息管理项目学生基本信息管理对象的使用v对象的使用对象的使用 访问对象的成员变量和方法 对象
43、做类的成员 方法中使用对象 对象数组项目学生基本信息管理项目学生基本信息管理对象的使用访问对象的成员变量和方法v 访问对象的成员变量和方法访问对象的成员变量和方法 通过运算符“.”进行访问对象的成员变量和方法 例如: MyDate date = new MyData(); int day; day = date.day; /引用date的成员变量day date.tomorrow(); /调用date的方法tomorrow()项目学生基本信息管理项目学生基本信息管理引用对象类型v 复合(引用)类型 类数组接口 v 引用类型指向一个对象在内存中的位置,本质上它是一种带有很强的完整性和安全性限制的
44、指针v 引用型变量只支持有限的逻辑判断:相等判断(是否同一个对象的引用):= 和!=类型判断(是否为一个类的实例):instanceof项目学生基本信息管理项目学生基本信息管理示例:使用对象1class Pointpublic int x=0, y=0;public Point(int x,int y)this.x=x;this.y=y;public int getX() return x;public int getY() return y;public void setXY(int x,int y) this.x=x; this.y=y; class Testppublic static
45、void main(String args)Point pa=new Point(23,94);pa.x=44; /如 x声明为private则无法使用此句,改为 setXY(44,2);System.out.println(pa=(+pa.getX()+ ,+pa.getY()+);项目学生基本信息管理项目学生基本信息管理示例:使用对象2/ Date1( )是构造方法, main()方法是类Date1中的方法 public class Date1 int year,month,day; Date1(int y,int m,int d) year=y; month=m; day=d; void
46、 print() System.out.println(year+ +month+ +day); public static void main(String args) Date1 a=new Date1(2004,9,20); a.year=2005; a.print(); 项目学生基本信息管理项目学生基本信息管理示例:使用对象3/ main()方法是类UseDate2中的方法, main()使用类另一个 类Date2的对象class Date2 int year,month,day; void setDate(int y,int m,int d) year=y; month=m; day
47、=d; void print() System.out.println(year+ +month+ +day); public class UseDate2 public static void main(String args) Date2 b=new Date2(); b.setDate(2004,9,1); b.print(); 项目学生基本信息管理项目学生基本信息管理对象的使用对象作为类的成员v类的成员变量可以是对象v注意:在使用前必须为该对象分配空间class Date int year,month,day; Date(int y,int m,int d) year=y;month=
48、m;day=d; void showDate() System.out.println(year+”,”+month+”,”+day);public class Student String no,name; Date birth; void setStu(String s1,String s2,int y,int m,int d) no=s1; name=s2; birth=new Dare(y,m,d);/为成员变量对象分配空间项目学生基本信息管理项目学生基本信息管理对象的使用方法中使用对象v对象作为方法的参数和返回值v注意:是引用传递。/passObject.java类对象作为方法参数,
49、并且在方法中改变对象class Aint x=5;void change(A a)System.out.println(a.x=+a.x);a.x=331;System.out.println(a.x=+a.x);class passObjectpublic static void main(String args) A aa=new A();aa.change(aa);System.out.println(aa.x= +aa.x);项目学生基本信息管理项目学生基本信息管理对象的使用对象数组v数组中的每个元素是对象。 public class ObjectArray public static
50、 void main() Date d=new Date(2); d0=new Date(1999,12,31); d1=new Date(2000,1,1); d0.showDate(); 项目学生基本信息管理项目学生基本信息管理对象的清除v 定义对象时,必须用new分配空间,但使用后的释放是系统自动完成的。 Java运行时系统通过垃圾收集(Garbage Collection)周期性地监测释放无用对象所使用的内存,完成对象的清除。 除了自动垃圾收集外,通过调用方法System.gc()要求进行垃圾收集时。 当一个对象的内存空间被回收时,系统自动调用该对象的方法finalize(),进行删除
51、工作。项目学生基本信息管理项目学生基本信息管理包v包包 是类和接口的集合,提供一种高层访问保护和名空间管理 包得作用:避免同名冲突 包名本身又对应一个目录(用一个目录表示)。 包名可以有层次,以小数点分割。包名一般全小写项目学生基本信息管理项目学生基本信息管理包( package)v package package pk1. pk2.pk3.; 如package first.second.third ,则系统对应在磁盘上建立目录:根路径firstsecondthird 包名建议 package cn.js.ccit.www; /命名要注意唯一性,可使用WWW域名的倒写 public class
52、 ComplexNumber 如果package未指定,则所有的 class都被组合到一个未命名的缺省default package包中,不能被其他包中的类引用 package说明必须是非注释非空行的第一行package语句后对应的是包的层次结构,包名之间是通过点号来分隔的项目学生基本信息管理项目学生基本信息管理包( package)v使用包使用包 使用import语句 import pk1.pk2.pk3(类名或*) 注意:import语句要放在程序的最前面。 使用前缀包名 在每个要引入的类前,给出该类所在的包名。import java.applet.Applet; /引入包java.app
53、let中的类Appleimport java.io.*; /引入包java.applet中的类Apple java.applet.Applet a=new java.applet.Applet()import java.applet.Applet;Applet a=new Applet();项目学生基本信息管理项目学生基本信息管理使用其他包中的类v import语句 将指定包中的类引入当前的程序中,即告诉编译到哪去找程序中使用的类。v import语句 必须出现在所有类定义之前。 例:import java.util.* ; 该语句引入整个utility 类库(标准Java库的一部分) 例:i
54、mport java.util.Vector ; 该语句只引入Vector类,但utility类库中的其他类不可用。项目学生基本信息管理项目学生基本信息管理主要包介绍项目学生基本信息管理项目学生基本信息管理再谈staticvstatic 类(静态)成员变量 类(静态)方法v例子v不正确的使用项目学生基本信息管理项目学生基本信息管理类方法和类变量 staticv类方法(静态方法)或类变量(静态变量) static 用在变量或方法之前,表明它们是属于类的v实例的方法和变量 若无static修饰,则变量和方法分别是某个实例对象的class ABCD char data; static int sha
55、re_data;class Demo ABCD a,b,c,d;object achar dataobject cchar dataObject bchar datastatic intshare_dataobject dchar data项目学生基本信息管理项目学生基本信息管理类方法和类变量 staticvstatic 类变量 生存期不依赖于对象,无需创建实例对象,可以直接通过类名访问。 也可以通过该类的实例对象访问 任何一个类的实例访问或操作这个成员,都是对这同一个内存单元的访问和操作 类方法 可以直接通过类名访问 只能访问该类的类变量和类方法,不能直接访问实例的变量和方法(无static)v若无static修饰,则变量和方法分别是实例的方法和变量 实例(非static)方法可以访问该类的类变量和类方法 遵循对象的生命周期,随着对象的创建而创建,随着对象的消亡而消亡项目学生基本信息管理项目学生基本信息管理static示例:使用静态变量public class StaticExstatic int gCount=0;public stat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社交媒体与跨境电商品牌传播
- 白酒行业转型升级未来展望及发展趋势
- 智能农业设备在油菜种植中的创新应用
- 2025年英语专业八级文学批评阅读理解能力测试卷
- 新一代信息技术在农业产业中的应用展望
- 智能化健康管理系统的构建与实践
- 货场仓储物流项目风险管理
- 老旧市政供水管网更新改造项目选址
- 优雅交往艺术
- 2025年中外合资企业土地租赁合同范本
- 2025年行政执法人员执法资格考试必考题库及答案(共232题)
- 银行从业资格证考试题库
- 水电人员劳务合同范例
- GB/T 4740-2024陶瓷材料强度试验方法
- 新环境保护法
- 2024年工厂股权转让尽职调查报告3篇
- 2025手术室年度工作计划
- 建筑行业建筑工程验收与保修服务方案
- 名著阅读《红楼梦》(解析版)-2025年高考语文一轮复习(天津专用)
- 《电力建设工程施工安全管理导则》(NB∕T 10096-2018)
- 商业综合体场地平整施工方案
评论
0/150
提交评论