




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
所有的Java程序都是基于类的 类是Java中的一种重要的复合数据类型 是组成Java程序的基本要素 class 变量定义 方法定义 创建了一个新类也就意味着创建了一种新的数据类型 实例化一个类 就得到该类的一个对象 类是对象的模板 而对象是类的一个实例 将活动和属性与每一实体相关联 属性员工详细资料工资结算表票据凭证收据 活动计算工资支付工资支付帐单记帐银行交易 会计 每个部门的员工可对该部门的数据进行控制和操作 对象 类的基本形式classclassname TypeVar1 声明成员变量1TypeVar2 声明成员变量2TypeVar3 声明成员变量3TypeMethod1 Parameters 声明方法1 方法的主体1 TypeMethod2 Parameters 声明方法2 方法的主体2 TypeMethod3 Parameters 声明方法3 方法的主体3 TypeMethod4 Parameters 声明方法4 方法的主体4 类的变量classclassname TypeVar1 实例变量staticTypeVar2 类变量TypeMethod1 Parameters 声明方法1 方法的主体1 TypeMethod2 Parameters 声明方法2 方法的主体2 类的方法classclassname TypeVar1 声明成员变量1TypeVar2 声明成员变量2TypeMethod1 Parameters 实例方法 方法的主体1 staticTypeMethod2 Parameters 类方法 方法的主体2 只能对类变量进行操作 方法的重载classclassname TypeVar1 声明成员变量1TypeVar2 声明成员变量2TypeVar3 声明成员变量3TypeMethod1 Type1var4 Type1var5 声明方法1 方法的主体1 TypeMethod1 Type2var6 Type2var7 声明方法2 方法的主体2 TypeMethod1 Type3var8 声明方法3 方法的主体3 构造方法classclassname TypeVar1 声明成员变量1TypeVar2 声明成员变量2classname Parameters 构造方法 方法的主体1 TypeMethod2 Parameters 声明方法2 方法的主体2 构造方法的重载classclassname TypeVar1 声明成员变量1TypeVar2 声明成员变量2classname Type1var3 Type1var4 构造方法1 方法的主体1 classname Type2var3 构造方法2 方法的主体2 TypeMethod3 Parameters 声明方法3 方法的主体3 classA publicstaticvoidmain Stringargs aaa newaa 2f 4f System out println 自动调用构造函数后 a a a c a c floats a add ab 1f 2f System out println 调用加法运算后a a a c a c classaa floata c staticintb aa a 0 c 0 aa floatx floaty a x c y floatadd ab intx inty a x c y return a b floatadd ab floatx floaty a x c y return a b staticvoidabc intx b x 3 5对象 类是创建对象的模板 当使用一个类创建了一个对象时 可说给出了这个类的一个实例 即类的实例化 3 对象 创建对象对象的内存模型使用对象引用静态变量和静态方法的内存模型 创建对象 当创建一个类时 只是创建了一种新的数据类型 对象是类的一个实例 创建对象包括对象声明和分配内存两步 也可合二为一 对象声明 类名对象名表 如Studenta 分配内存空间 a newStudent 可带参数 可合二为一 Studenta newStudent 可带参数 关键字new通常称为创建运算符 用于分配对象内存 并将该内存初始化为缺省值 一旦new完成分配和初始化内存 它就将调用构造函数来执行对象初始化 classfruit 变量的定义 方法的定义 classFruitDemo publicstaticvoidmain Stringargs Fruitf newFruit big red 例3 7 使用new和默认构造方法 classPeople floatheight weight classA publicstaticvoidmain Stringargs Peoplelily 声明lily newPeople 为对象分配内存 使用new和默认构造方法 例3 8 使用new和构造方法 classPoint intx y Point x 2 y 6 System out println x x y y Point inta intb x a y b System out println x x y y publicclassA publicstaticvoidmain Stringargs Pointp1 p2 p1 newPoint p2 newpoint 3 5 对象的内存模型 创建对象时系统会做以下事情 在堆区为对象的各个变量分配内存单元 并将对象的引用返回根据构造函数完成各个变量的初始化若使用自定义构造函数 则按该构造函数初始化各变量若没有自定义构造函数 则初始化如下 缺省初始值 Java保证了在任何代码使用该内存之前 已至少将内存初始化为可预知的缺省值 举例 a java 对象的内存模型 student1 student1 height weight id sex Class grade 0f 0 0 0 false 0 ox23ab6 声明时 创建时 注意 一个类可以用new运算符创建多个不同的对象 这些对象被分配不同的内存空间 以例3 8说明 Pointp1 系统会令p1指向null p1 newPoint 3 5 3使用对象 使用运算符 可以访问对象的属性和方法1 对变量的引用对象名 变量名2 对方法的引用对象名 方法名 对象是引用型变量 引用 对象的别名 其工作原理类似于指针 不要将引用看成是对象的指针 引用即是对象它既不是对象的指针 也不是对象的副本 它就是对象 当 右边是对象时 它把其引用赋给左边 而不是建副本 举例 pointp1 newpoint pointp2 newpoint 6 18 p1 p2 其内存模型表示 对象是引用型变量 p1 ox125 x y o o p2 oxa75 6 18 x y oxa75 6 18 y x p1 p2 静态变量和静态方法的内存模型 静态变量和静态方法在内存中只有一个副本 3 6访问权限 访问修饰符 public 公有变量和公有方法 友好变量和友好方法protected 保护的变量和方法 private 私有变量和私有方法 public访问修饰符 只有在使用public访问修饰符时 类的成员才可被同一包或不同包中的所有类访问 也就是说 public访问修饰符可以使类的特性公用于任何类 缺省访问权限 protected访问修饰符 缺省的成员可以被同一包中的其他类访问 protected访问修饰符允许类本身 同一包中的所有类和不同包中的子类访问 如果希望一个成员在当前包外可见 但仅仅是成员所在类的子类直接可见 就要使用protected修饰该成员 private访问修饰符 private访问修饰符是限制性最大的一种访问修饰符 被声明为private的成员只能被此类中的其他成员访问 不能被类外看到 继承体系结构中最高级别的类决不会被声明为private类 高级访问控制总结1 高级访问控制总结2 public A 所有类 B 包中的类 E 包中的子类 C 所有子类 D 类本身 缺省 同一类中 classB1 publicinta 1 友好性 private protectedpublicvoidf System out println f publicstaticvoidmain Stringargs Bb newB System out println b a b f 同一包中 packageone classB1 privateinta 1 友好性 protected publicprivatevoidf System out println f publicstaticvoidmain Stringargs packageone publicclassB2 publicstaticvoidmain String args B1b newB1 System out println b a b f 不同包 packageone publicclassB1 privatefloatweight 10f privatevoidf System out println f packagetwo importone B1 publicclassB3 publicstaticvoidmain String args B1b newB1 System out println b a b f 不同包的继承关系中 packageone publicclassB1 privatefloatweight 10f privatevoidf System out println f packagetwo importone B1 publicclassB4extendsB1 publicstaticvoidmain String args B1b newB1 System out println b a b f 3 7继承 继承是一种由已有的类创建新类的机制 利用继承 可以先创建一个公有属性的一般类 根据该一般类再创建具有特殊性质的新类 新类继承一般类的属性和方法 并根据需要增加自己的新的属性和方法 由继承而得到的类称为子类 被继承的类称为父类 超类 Java不支持多重继承 子类只能有一个父类 3 7 1创建子类 格式 classStuextendsPeople Stu为子类 People为父类 1 在同一包中 子类自然的继承了其父类中不用private修饰的成员变量和方法 2 在不同的包中 子类只能继承其父类中public protected修饰的成员变量和方法 注意 一个类的声明中无extends关键字 这个类被系统默认认为是Object的子类 3 7 2成员变量的隐藏和方法的重写 1 当子类中定义的成员变量与父类中的成员变量重名时 则父类中的成员变量不能被继承 2 当子类中定义的方法和父类中的方法完全相同时 父类中的方法将被隐藏 即重写了父类的方法或置换了父类的方法 因此 子类通过成员变量的隐藏和方法的重写可以把父类的属性和方法改变为自身的属性和方法 例3 9 classMu1 floatf floatx floaty returnx y classAddextendsMu1 floatf floatx floaty 重写了父类的方法f returnx y publicclassMain publicstaticvoidmain Stringargs Addsum newAdd System out println sum f 2 5f 3f 3 7 3this和super关键字 null代表 空 在定义一个对象但尚未其分配内存单元时可以指定这个对象为null this代表当前类的对象 super父类对象 1 this this表示当前对象本身 通过this可以顺利的访问到当前类的方法和变量 例3 10 ClassA intb 8 A intb System out println b b 5System out println this b b 8 publicstaticvoidmain Stringargs Ac newA 5 2 super S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 我在未来等你(说课稿)2023-2024学年初三下学期教育主题班会
- 水利安全生产信息化建设与智能化监控系统
- 刮大白工种考试题及答案
- 生命教育中的家长作用与社区支持系统建设
- 工地井架考试题及答案大全
- 福州专升本考试题目及答案
- 放射技术考试题型及答案
- 2025联盟型合作协议模板
- 绿色建筑施工中碳排放管理的难点
- 电力工程建设项目质量风险管理与保障措施
- 卒中后认知障碍管理专家共识解读培训课件
- 新能源车用PTC液体加热器
- 农作物品种区域试验站建设实施方案
- 疫情防控 5.1普法教育培训记录表AQ-C1-18
- ISO9001:2015质量管理体系内审和管理评审全套资料
- 中国的世界文化遗产课件
- 万科企业股份有限公司员工职务行为准则
- 幼儿园教学课件《半条棉被》课件
- 一建市政记忆口诀
- 阀门系数Cv和KV值计算表格(带公式)
- PETS公共英语二级大纲词汇
评论
0/150
提交评论