Java-项目4学生基本信息管理.ppt

上传人:xin****828 文档编号:6232699 上传时间:2020-02-20 格式:PPT 页数:89 大小:1.89MB
返回 下载 相关 举报
Java-项目4学生基本信息管理.ppt_第1页
第1页 / 共89页
Java-项目4学生基本信息管理.ppt_第2页
第2页 / 共89页
Java-项目4学生基本信息管理.ppt_第3页
第3页 / 共89页
点击查看更多>>
资源描述
项目4学生基本信息管理 类和对象 CompanyLogo 主要内容 学习目标重点 难点 CompanyLogo 回顾 Java具有8种基本数据类型boolean char byte int short long float及doubleJava中的运算符可分为四类 算术运算符 位运算符 关系运算符 逻辑运算符数据的输入输出Java支持下列控制结构顺序 选择 循环 跳转数组可用来将同一类型的数据存储在连续的内存位置 声明 初始化 引用 常见应用 数组长度 最值等 main方法参数的使用字符串的使用StringStringBuffer StringBuilder 本章背景 本章将学习面向对象的基本概念和特征 面向对象设计方法的基本思想 如何自定义类 创建和使用对然后实现方法重载学习目标掌握面向对象程序技术的基本概念掌握类与现实世界的关系 并能根据需求正确对其进行抽象通过自定义类的设计 掌握类成员变量 成员方法定义和使用 掌握构造函数的定义和使用 掌握方法重载 任务学习 CompanyLogo 任务描述任务一 理解类和对象的概念及其关系 会分析和设计银行帐户对象和储户对象 任务学习 CompanyLogo 支撑知识介绍面向对象的基本概念类和对象的概念和关系封装性 多态性 继承性面向对象的分析和设计方法 程序语言的发展 人类更容易理解 面向机器 机器语言 汇编语言 可读性 可维护性 移植性差 效率高面向过程核心 算法 数据结构缺陷 随应用程序的规模扩大 操作与数据分离所带来的维护工作量越来越大不适用于GUI界面 事件驱动编程面向对象人类先进的模式应用到计算机模型 能更直接的描述客观存在的事物 从现实世界中客观存在的事物出发来设计 并在软件开发中运用人类的自然思维方式 面向对象 对象世界上所有的事物都可以称为对象 包括有形 一台电视机等 和无形 帐户 一项记录等 对象两大要素属性 对象静态特征 可以用某些数据描述 操作 对象动态特征 又称方法 具有的行为或功能 如电视属性有 品牌 尺寸 重量等操作有 收视 选台 音量调节等按照子类与父类的关系 把若干个对象类组成一个层次结构的系统对象彼此之间仅能通过传递消息互相联系 CompanyLogo CompanyLogo 课堂思考 CompanyLogo 思考 一只大雁要从北方飞往南方 第一步 抽象出对象 大雁第二步 识别该对象的属性 一双翅膀 黑色的羽毛第三步 识别该对象的行为 飞行 觅食等第四步 封装属性和行为来描述大雁这类动物 总结 类是封装对象属性和行为的载体对象是类的一个实例 面向对象 类对具有相同基本特征对象的一种抽象 是同一类事物的统称类也是Java中最重要的数据类型 自定义类型由类定义生成的数据称为这个类的实例或对象 类和对象关系类是一个抽象的概念对象是一个具体的类的实例 CompanyLogo 一个类可以生成多个不同的对象 具有不同的属性值 例子 CompanyLogo 面向对象 CompanyLogo 例如 定义一个类圆classCircle 属性Stringcolor 颜色intlength 半径 方法voidexpand 方法体 方法 放大voidreduce 方法体 方法 缩小 对象具有属性和行为 与之相对应 类在定义时 需要声明类的变量 数据 和方法 Circlec1 newCircle 生成类Circle的实例c1 类 属性 成员变量属性称为数据成员 或者成员变量描述类中所定义的数据 对客观世界实体所具有性质的抽象类的每个实例都有自己特有的属性值 CompanyLogo 例如Circle类中所定义的代表半径 颜色等的数据成员 就是Circle类的属性 类 方法在类中实现的操作 它是功能实现的基本单位 方法描述了对象执行操作的具体实现算法 CompanyLogo 一个方法有以下几个部分构成 方法名输入参数 可空 返回值 可空 执行代码段 为了使Circle类的对象可以在屏幕上显示自己 可以定义方法show intshow inti floatj 返回值方法名输入参数 实现代码 类 消息软件对象通过相互间传递消息来相互作用和通信 一个消息由三部分组成 接受消息的对象接收对象要采取的方法方法需要的参数 CompanyLogo 任务学习 CompanyLogo 完成任务步骤分析了解对问题的描述建立使用实例 分析整个应用实现的场景 ATM必须允许用户插入银行卡 选择合适的帐户 然后存钱 取钱 查询余额 一个银行帐户必须记录帐户的ID和当前余额 支票帐户和现金帐户必须支持存钱和取钱 取钱 是ATM的一个应用实例 存钱 查询余额 验卡 取钱 数目超过余额等也是 步骤有 选择银行列出的帐户类型输入取钱的数额 不超过余额 取出钱取出卡 任务学习 CompanyLogo 完成任务步骤分析提取候选类和方法 1 要发现对象以及对象的属性 在以上使用实例中寻找名词 如帐户 2 要发现方法 在使用实例中寻找动词 如查询 3 确定哪些是对象 哪些是对象的属性 一般 属性是一些简单值 如余额 而对象是由一些简单值组合而成 如帐户包括户名 余额 开户时间等 4 把找到的方法分配对合适的对象 使其成为对象的成员方法 一些属性和对象 银行 帐户 余额 银行卡等找到的方法包括 取钱 选择帐户 查询余额 取卡等 任务学习 CompanyLogo 任务解决确定银行帐户对象和储户对象 绿色 属性紫色 方法 这两个对象之间存在的关系为 一个储户可以有多个银行帐户 一个帐户只能属于一个储户 面向对象特性 三个主要特性继承性封装性多态性 CompanyLogo 继承性 指一个新的类继承原有类的基本特征 并可增加新的特性继承具有传递性 Java是单继承 封装是一种信息隐蔽技术 封装的目的隐藏类的实现细节迫使用户通过接口去访问数据增强代码的可维护性封装的实现Java通过访问控制权限来实现封装 访问权限有4种 public protected 缺省 private 多态性是指一个名称对应有多种不同的功能 提供灵活性类的多态性主要通过方法的重载 覆盖和接口来实现 面向对象 课堂思考小王本来体重70kg 经过减肥 体重降到45kg 试从这个问题领域中识别对象 类 属性 状态和状态的变化 1 类 人 2 对象 小王 3 属性 体重 4 状态 70kg 5 状态的变化 小王的减肥行为导致体重下降 CompanyLogo 任务学习 CompanyLogo 总结介绍面向对象基础知识类和对象面向对象分析和设计的方法三个主要特性 继承性封装性多态性 任务学习 CompanyLogo 任务描述任务二 定义平面上任意两个点p1 p2 并计算p1到原点的距离 以及点p1到p2的距离 任务学习 CompanyLogo 支撑知识介绍类的定义属性的定义方法的定义方法定义方法调用方法重载构造方法主方法访问控制修饰符其他修饰符 类的定义 类类是封装对象的属性和行为的载体Java中最重要最基本的数据类型 由两种基本成员构成 数据 属性 可以是基本数据类型也可以是某个类的实例方法表示对象具有的行为 与函数类似 只能在类内定义 CompanyLogo ccit 27 1Java类的定义 语法规范 类的修饰符访问控制权限修饰符 public 缺省 private和protected不能 抽象和最终类修饰符 final abstract static不能用 类修饰符为可选项extends继承父类implements实现接口 类是组成Java程序的基本要素 它封装了一类对象的属性和方法 是这一类对象的原型 类体 1Java类的定义 类名必须符合Java标识符的命名规则以字母 字符 或 开头不能使用与Java关键字相同的类名类名通常以大写字母开头 如果类名由多个单词组成 则每一个单词的开头字母要大写类名应尽量有意义 便于程序阅读者的理解和程序的维护 养成良好的编程习惯 2 类的修饰符 访问控制修饰符public公开类 类成员可以被本包和不同包的任何类 对象所用 反之非公开类通常为同一个包中其它非公开类或公开类服务 缺省只能被同一个包中的其他类 对象引用或继承 protected不能用private不能用抽象类修饰符abstract后面学最终类修饰符final后面学 注意 abstract和final是矛盾的 不能同时选择 要么都不用 要么只能选一个 3 成员变量定义 语法规范 变量修饰字 变量数据类型变量名1 变量名2 变量初值 public protected 缺省 private static final transient volatile 成员变量的类型可以是基本类型也可以是引用类型 类 接口 数组 在一个类中的成员变量唯一变量必须先定义 后使用可以设置初值 如果没有设置 则会有默认值整型 byte int short long 0字符型 char u0000 布尔型 boolean false实型 floatdouble 0 0引用类型 数组 类 接口 null 3 成员变量定义 例如 publicclassDate1 类声明 intyear month day 成员变量声明 或者 byteb doubled1 0 23 d2 56 7 booleanmycom true charmc b Strings abc 成员变量定义 修饰符 访问控制修饰符有4种public protected 缺省 private 用来规定变量的访问权限static指明该变量是一个类变量 静态变量 若无 则为实例变量 属于对象 final指该变量是一个常量 不可改变 ccit 33 4 访问修饰符的控制范围 可访问 classA publicintx 任何类的对象都能对它读写完全暴露给使用者 除非特殊 一般不定义protectedinty 同一个包中任何类或不同包中子类方法能进行读写privateintz 只有本类自身成员才能访问intw 同一个包中任何类对象可以进行读写voidsetX inta z a 可以 在A类内部 publicclassTestA publicstaticvoidmain String args Apt newA 通过new运算符生成一个A类对象pt x 10 因为是public 可对A类的对象中x成员进行读写pt y 20 如果在同一个包 是可以的 否则不可以pt z 30 不行 只有在A类内部才可以访问 外部无权 假设两个类定义在同一个包中 ClassPoint staticintx 静态 类 变量inty 实例变量 PublicclassTeatPoint publicstaticvoidmain String args Point x 10 可以 X一直存在 随时可用 与有无对象无关Point y 10 不可以 是实例变量 必须先创建对象后才能使用Pointp1 newPoint p2 newPoint p3 newPoint p1 y 10 可以 P1对象内部含有自己的变量p2 y 20 可以 P1对象内部含有自己的变量p3 y 30 可以 P1对象内部含有自己的变量p1 x 20 可以 所有对象共享一个类成员变量x 它一直存在 随时可用 示例 控制范围 1 同一个类内可以访问任何访问权限的变量 packagetest publicclassDemo2 voidtest Demo1dm1 newDemo1 dm1 priInt 1 错误dm1 proInt 1 dm1 defInt 1 dm1 pubInt 1 在同一个包下 但Demo2对Demo1中的private成员没有访问权限 packagetest publicclassDemo1 privateintpriInt protectedintproInt intdefInt publicintpubInt voidtest priInt 1 proInt 1 defInt 1 pubInt 1 packagetest t1 importtest Demo1 publicclassDemo4 voidtest Demo1dm1 newDemo1 dm1 priInt 1 错误dm1 proInt 1 错误dm1 defInt 1 错误dm1 pubInt 1 不同包下 只能访问Demo1中的public成员 5 方法定义 语法规范 方法修饰字 返回类型方法名称 参数1 参数2 throwsexceptionList statements 方法体 方法的内容 public protected 缺省 private static final abstract native synchronized 返回类型可以是任意的Java数据类型当一个方法不需要返回值时 返回类型为void 参数的类型可以是简单数据类型也可以是引用数据类型 数组 类或接口 参数传递方式是值传递 方法体对方法的实现包括局部变量的声明以及所有合法的Java指令 局部变量的作用域只在该方法内部 举例 方法定义 举例 finalvoidmove intdx intdy throwsIOException x dx y dy 举例 classTest inta b voidchange Testobj obj a 50 obj b 40 可以在函数中改变对象状态voidsetTest intx inty a x b y 6 方法定义 修饰符 方法命名符合标识符规则Java中允许同名方法存在 但方法的参数列表应不同 方法的重载 访问控制权限public pretected 缺省 private含义同成员变量其他修饰符static类方法 静态方法 可直接用类名来调用 随时可用 abstract抽象方法 只有声明部分 方法体由子类来实现final最终方法 不能被子类重构native本地方法 由本地其他语言代码实现synchronized同步 将在 多线程 中介绍 static用于修饰类的数据成员和方法 表示该成员为静态成员基本形式 static数据类型变量名 static返回类型方法名 参数列表 方法体 修饰符static classA staticintb 0 静态成员变量staticvoidget 静态方法 static修饰的类成员或静态成员在定义时就静态分配了内存空间 在生成类对象之前就可以使用静态成员静态成员是属于整个类的 一个类的多个对象可以共享该静态成员无static修饰的实例成员属于某个对象或实例 必须要定义对象才能使用 修饰符static 对静态成员的访问方法先生成该类的实例 对象 然后再通过点运算符访问Aa newA a b 5 a get 是不生成实例 直接在类名后加上点运算符和静态成员名A b 5 A get CompanyLogo static方法内部随时可以访问static成员变量和方法 要访问非static成员变量或方法 必须先创建一个对象 非static方法随时访问 静态方法不能被重载和重写 修饰符static 对静态成员的访问方法static方法内部可以访问static成员变量和方法不能访问非static成员变量或方法 必须先创建一个对非static方法可以访问static成员变量和方法可以访问非static成员变量和方法 CompanyLogo classPoint staticintx inty publicstaticvoidmain String args x 10 可以 类变量随时可以使用y 20 不可以 必须先创建一个类对象Pointpt newPoint pt y 20 可以通过对象pt来访问pt对象中的变量y 修饰符 final final关键字最终的 不能修改可以修饰类 成员变量和方法 最终类 不能再有子类 最终方法 不能再被重写 最终属性 初始化后 不能再被赋值 常量 CompanyLogo finalclassA finaldoublePI 3 1416 finaldoublearea doubler return PI r r classFinalTest staticpublicvoidmain Stringarg Aa newA System out println area a area 5 0 a PI 100或重写方法area 都是错误的 修饰符abstract 抽象方法用abstract修饰的方法 抽象方法只有方法的返回值 名称和参数列表 没有函数体 抽象类用abstract修饰的类抽象类是一种没有完全实现的类 不能用它产生具体的实例 CompanyLogo 7 方法 类成员方法方法定义方法调用方法重载构造方法主方法 CompanyLogo 方法定义 返回值类型可以是基本数据类型 数组或类如果方法不返回任何值 必须声明为void 空 参数列表由零个或多个参数构成 参数之间用逗号分隔 每个参数由一个数据类型和一个标识符构成方法体定义了该方法具体是如何实现的 是整个方法的核心和重点局部变量方法体中定义的变量参数列表 CompanyLogo 方法修饰符 返回值类型方法名 参数列表 方法体 方法调用 调用方法实参在调用时会代替方法定义中的形参 要求实参的类型 个数和顺序必须与定义中的形参表一致 方法调用的形式有两种一种是把方法调用作为一个表达式语句另一种是作为一个表达式 CompanyLogo 方法重载 方法重载一个类中多个方法具有相同的方法名 但参数的类型或参数的数量不同静态多态 编译系统调用方法时 系统自动根据实际参数的数量和类型匹配 CompanyLogo publicclassMethodOverload publicstaticvoidmain Stringargs MethodOverloadobj newMethodOverload System out println obj square 3 obj square 1 5 intsquare intx returnx x doublesquare doubley returny y 构造方法 类的特殊的方法 用来初始化对象要求构造函数的方法名与类名一致构造函数没有返回类型 不能有void只能通过new关键字在创建对象的时候调用注意在创建一个类的新对象时 系统会自动调用该类的构造函数为新对象初始化每一个类至少都有一个构造方法当某个类的没有声明构造方法时 系统会为其自动生成一个默认构造方法 无参数 无方法体 构造方法使用其参数初始化新对象的状态 构造函数可以重载 参数序列不同 当创建对象时 首先用new分配该对象的内存空间 然后调用某一个构造方法 对该对象内存空间初始化 Main方法 主方法是Java应用程序执行的起点与其它方法相似 它必须在类的内部定义注意 一个Java源文件可以包含一个或多个类但在Java的Application中必须有而且只能有一个类包含main方法且该程序文件的名称必须与包含main方法的类的类名一致 CompanyLogo main方法必须是公有的 public 静态的 static 没有返回值 有一个字符串数组参数 用于进行参数的传递 任务学习 CompanyLogo 完成任务步骤分析一是如何通过类定义描述一个具体的点一个类Point表示抽象的点 定义两个成员变量x y表示点对应的具体位置二是如何计算点到原点的距离Math中已经实现了求平方根的方法sqrt 三是如何计算点与点之间的距离同上编写主类 测试调用 任务学习 CompanyLogo 任务解决编写程序递交 任务学习 CompanyLogo 总结类的定义主要包括成员变量和成员方法的定义一般语句不能单独放在类中 必须放到方法中成员变量的作用范围为整个类成员方法 方法的返回值 方法的局部变量 可以重载 主方法访问控制修饰符public protected 缺省 private修饰类修饰成员变量或成员方法其他修饰符staticfinalabstract 任务学习 CompanyLogo 任务描述任务三 定义和处理员工信息 任务学习 CompanyLogo 支撑知识介绍成员变量和局部变量作用范围变量隐藏this关键字对象对象创建访问对象对象消除包packageImport再淡static成员变量和成员方法 成员变量和局部变量 成员变量在类体中定义在整个类中都有效局部变量在方法中定义方法体中声明方法中的形参只在本方法中有效 CompanyLogo classData intx 12 y 5 成员变量publicvoidsum ints 局部变量s x y classData intx 12 y 5 publicvoidsum intx 3 局部变量x屏蔽了成员变量ints s x y 名字隐藏 局部变量名与成员变量名相同 则成员变量被屏蔽 名字隐藏和this关键字 名字隐藏局部变量与类的成员变量同名 则局部变量会隐藏成员变量 称为名字隐藏 若要访问被隐藏的成员变量 则必须使用this来访问 this用于代表当前正在使用或访问的对象每一个对象内部都有一个this变量 用于指明自身地址 PublicclassPoint privateintx privateinty publicPoint x 0 y 0 publicPoint intx intx为局部变量与成员变量x同名 成员x隐藏this x x y 0 局部变量x的值赋给成员变量x publicPoint intx inty this x x this y y publicintgetX returnx publicintgetY returny publicvoidsetX intx this x x publicvoidsetY inty this y y publicvoidsetPoint intx inty this x x this y y publicvoidsetPoint Pointpt x pt x y pt y this关键字 this表示对当前对象的引用表示使用类的成员变量 而非局部变量 尤其是 在成员变量 名字隐藏 与局部变量同名时用于构造方法中引用满足指定参数类型的构造方法只能用一个 且必须放在方法体的第一个语句 CompanyLogo publicclassEmployee privateStringname privateintsalary publicEmployee this Unknown publicEmployee Stringn ints name n salary s publicEmployee Stringn this n 0 引用本类的构造方法 只能放在第一 对象 对象是类的实例 创建类的目的是以类为模板创建对象 对象的声明周期创建对象使用对象删除对象 一个类可以有多个实例 对象的创建 对象的创建需要两个步骤对象创建之前要先进行声明 但没有分配空间 为null 不能使用CardemoCar 然后通过new操作符创建一个对象实例 真正引用一个对象 demoCar newCar 也可以两步合一 CardemoCar newCar 对象的构造过程为对象开辟空间 并对对象的成员变量进行缺省的初始化 对成员变量进行指定的初始化 调用构造方法 new先为该对象从堆中申请内存空间 自动调用构造行数对该对象内存进行初始化 最后返回对象的引用 若内存不够 返回null 对象的使用 对象的使用访问对象的成员变量和方法对象做类的成员方法中使用对象对象数组 对象的使用 访问对象的成员变量和方法 访问对象的成员变量和方法通过运算符 进行访问对象的成员变量和方法例如 MyDatedate newMyData intday day date day 引用date的成员变量daydate tomorrow 调用date的方法tomorrow 引用对象类型 复合 引用 类型类数组接口引用类型指向一个对象在内存中的位置 本质上它是一种带有很强的完整性和安全性限制的指针引用型变量只支持有限的逻辑判断 相等判断 是否同一个对象的引用 和 类型判断 是否为一个类的实例 instanceof 示例 使用对象1 classPoint publicintx 0 y 0 publicPoint intx inty this x x this y y publicintgetX returnx publicintgetY returny publicvoidsetXY intx inty this x x this y y classTestp publicstaticvoidmain Stringargs Pointpa newPoint 23 94 pa x 44 如x声明为private则无法使用此句 改为setXY 44 2 System out println pa pa getX pa getY 示例 使用对象2 Date1 是构造方法 main 方法是类Date1中的方法publicclassDate1 intyear month day Date1 inty intm intd year y month m day d voidprint System out println year month day publicstaticvoidmain Stringargs Date1a newDate1 2004 9 20 a year 2005 a print 示例 使用对象3 main 方法是类UseDate2中的方法 main 使用类另一个类Date2的对象classDate2 intyear month day voidsetDate inty intm intd year y month m day d voidprint System out println year month day publicclassUseDate2 publicstaticvoidmain Stringargs Date2b newDate2 b setDate 2004 9 1 b print 对象的使用 对象作为类的成员 类的成员变量可以是对象注意 在使用前必须为该对象分配空间 classDate intyear month day Date inty intm intd year y month m day d voidshowDate System out println year month day publicclassStudent Stringno name Datebirth voidsetStu Strings1 Strings2 inty intm intd no s1 name s2 birth newDare y m d 为成员变量 对象分配空间 对象的使用 方法中使用对象 对象作为方法的参数和返回值注意 是引用传递 passObject java类对象作为方法参数 并且在方法中改变对象classA intx 5 voidchange Aa System out println a x a x a x 331 System out println a x a x classpassObject publicstaticvoidmain Stringargs Aaa newA aa change aa System out println aa x aa x 对象的使用 对象数组 数组中的每个元素是对象 publicclassObjectArray publicstaticvoidmain Dated newDate 2 d 0 newDate 1999 12 31 d 1 newDate 2000 1 1 d 0 showDate 对象的清除 定义对象时 必须用new分配空间 但使用后的释放是系统自动完成的 Java运行时系统通过垃圾收集 GarbageCollection 周期性地监测释放无用对象所使用的内存 完成对象的清除 除了自动垃圾收集外 通过调用方法System gc 要求进行垃圾收集时 当一个对象的内存空间被回收时 系统自动调用该对象的方法finalize 进行删除工作 包 包是类和接口的集合 提供一种高层访问保护和名空间管理包得作用 避免同名冲突包名本身又对应一个目录 用一个目录表示 包名可以有层次 以小数点分割 包名一般全小写 CompanyLogo 包 package packagepackagepk1 pk2 pk3 如packagefirst second third 则系统对应在磁盘上建立目录 根路径 first second third包名建议packagecn js ccit www 命名要注意唯一性 可使用WWW域名的倒写publicclassComplexNumber 如果package未指定 则所有的class都被组合到一个未命名的缺省defaultpackage包中 不能被其他包中的类引用package说明必须是非注释非空行的第一行 package语句后对应的是包的层次结构 包名之间是通过点号来分隔的 包 package 使用包使用import语句importpk1 pk2 pk3 类名或 注意 import语句要放在程序的最前面 使用前缀包名在每个要引入的类前 给出该类所在的包名 importjava applet Applet 引入包java applet中的类Appleimportjava io 引入包java applet中的类Apple java applet Appleta newjava applet Applet importjava applet Applet Appleta newApplet 使用其他包中的类 import语句将指定包中的类引入当前的程序中 即告诉编译到哪去找程序中使用的类 import语句必须出现在所有类定义之前 例 importjava util 该语句引入整个utility类库 标准Java库的一部分 例 importjava util Vector 该语句只引入Vector类 但utility类库中的其他类不可用 主要包介绍 再谈static static类 静态 成员变量类 静态 方法例子不正确的使用 CompanyLogo 类方法和类变量 static 类方法 静态方法 或类变量 静态变量 static用在变量或方法之前 表明它们是属于类的实例的方法和变量若无static修饰 则变量和方法分别是某个实例对象的 classABCD chardata staticintshare data classDemo ABCDa b c d 类方法和类变量 static static类变量生存期不依赖于对象 无需创建实例对象 可以直接通过类名访问 也可以通过该类的实例对象访问任何一个类的实例访问或操作这个成员 都是对这同一个内存单元的访问和操作类方法可以直接通过类名访问只能访问该类的类变量和类方法 不能直接访问实例的变量和方法 无static 若无static修饰 则变量和方法分别是实例的方法和变量实例 非static 方法可以访问该类的类变量和类方法遵循对象的生命周期 随着对象的创建而创建 随着对象的消亡而消亡 static示例 使用静态变量 publicclassStaticEx staticintgCount 0 publicstaticvoidmain String args StaticExe1 newStaticEx StaticExe2 newStaticEx e1 gCount e2 gCount System out println gCountofe1 e1 gCount System out println gCountofe2 e2 gCount System out println gCount StaticEx gCount static示例 实例计数器 classCount privateintserial privatestaticintcounter 0 staticintx 100 Count counter 实例计数器serial counter intgetSerial returnserial publicclassStaticTest publicstaticvoidmain Stringargs Countc1 newCount Countc2 newCount System out println c1 getSerial System out println c2 getSerial System out println Count x static示例 使用静态方法 publicclassStaticFun staticintx 3 publicstaticvoidmain Stringargs inty 5 System out println y addX y staticintaddX intyy 若无static 则main无法使用 returnx yy static 不正确的引用 classStaticError Stringmystring hello publicstaticvoidmain Stringargs System out println mystring 编译时错误信息 nonstaticvariablemystringcannotbereferencedfromastaticcontext System out println mystring static 解决办法 解决方法1 将变量改成类变量classStaticError staticStringmystring hello publicstaticvoidmain Stringargs System out println mystring 解决方法2 先创建一个类的实例classNoStaticError Stringmystring hello publicstaticvoidmain Stringargs NoStaticErrornoError noError newNoStaticError System out println noError mystring 任务学习 CompanyLogo 完成任务步骤分析定义Employee成员变量name salary和id值成员方法构造方法 get和set 输出和显示定义测试类在主方法中创建对象并调用对象的方法在主方法中创建对象数组 任务学习 CompanyLogo 任务解决编写程序递交 任务学习 CompanyLogo 总结类的基本组成和声明方法对象创建的过程和方法 构造函数的定义和执行过程 访问控制修饰符public private protected 关键字static abstract final的用法和特点 方法的重载包 课堂实训 课堂实践4 见文档类和对象解决简单问题 CompanyLogo 要求 类和对象类和对象比较重要多练习作业4 见文档 ThankYou
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!