面向对象的三大特性.doc_第1页
面向对象的三大特性.doc_第2页
面向对象的三大特性.doc_第3页
面向对象的三大特性.doc_第4页
面向对象的三大特性.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

回顾:类和对象类是个概念,对象是由类通过new 来产生的。如果使用对象就要通过一个变量指向生成的对象。Student s=new Student();实例变量 属性实例变量和局部变量区别1. 实例变量在类里面定义,局部变量实在方法里面定义2. 在局部变量和实例变量重名,局部变量优先3. 实例变量至少在本类的范围内有效方法方法的重载 -同名,参数不一样(参数的类型,参数的个数,参数的顺序)构造方法目标: 初始化对象名字要和class 的名字一样,然后没有返回值。如果类里面没有定义构造方法,默认会自动生成一个空的构造方法。String类两种构建对象方式 String str=new String(“ssss”);String str=”ssssss”;String 功能 equals(str)面向对象三大特性封装 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面(方法)。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装是一种信息隐藏技术。封装是分为两部分:属性的封装,方法的封装。封装起来就是为了对外隐藏。类本身和方法本身就是一种封装,体现的是装配的含义。在java中通过关键字private实现封装。什么是封装?封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 属性的封装通过private,同时还要提供可以访问该私有属性的方法。这个方法就要写在类里面。Java里面对私有属性提供了两个方法:Set和get1. 设置余额2. 查看余额。比如属性叫banlance修改余额public void setBalance(double yue)if(yue0)System.out.println(余额不能小于0!);else this.balance=yue;/查看余额public double getBalance()return this.balance; 继承 为了从父辈那里得到东西。使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,同时也拥有了父类的功能,使得复用以前的代码非常容易,减少重复代码的编写。能够大大缩短开发周期父类:(超类)被继承子类:(派生类)继承父类,并有自己新的特性。 什么时候适合设计成类之间的继承关系?1. 为了重复利用代码2. 着两个类之间有一种is a关系子类对象构建过程:定义子类对象时:分配空间 (父类对象空间,子类对象空间)递归构造父类对象初始化属性调用构造方法:先调用父类的构造方法再调用子类的构造方法 访问修饰符一共是四种:public ,protected为了继承,default,private 方法的重载(Overload)方法的覆盖(Override)前提是需要有继承关系。方法重写:1. 子类重新定义父类的同名方法,主要是重写定义方法体。2. 父类是共有的修饰符,子类一定是公有的。父类如果是protected,子类可以是protected,或者public子类比父类更开放。3.子类重写的方法的返回值类型可以是跟父类一样,或者是父类返回值类型的子类。 super关键字(this关键字 -当前对象)可以通过super.属性名调用从父类继承过来的属性通过super.方法名调用父类定义的方法通过super()调用父类的构造方法。 定义子类对象,调用父类的构造方法的时候,一定子类构造方法的第一行,并且不一定就是调用空参数的父类的构造方法,只要是调用父类随便一个构造方法都可以,但是,只能调用一次。public Dog()super(30);/首先调用父类的无参的构造方法System.out.println();Java继承的限制:1.继承只能是单继承,只能有一个直接父类。 只能有一个爹2.可以多层继承,父类有父类 爷爷3.私有的属性和方法不能被继承 私有就是为了自己类可用,子类当然不能用 多态 多态需要具备什么前提?1. 类之间有继承关系2. 多个子类需要对父类的某个方法进行重写。3.一个父类的引用指向一个子类的对象。 多个子类共同继承父类,定义时候用父类变量分别指向不同子类对象 注意:1. 父类的引用指向子类的对象,但是父类的引用只能访问到父类定义的方法声明。2. 他访问父类当中被重写的方法,最终是访问子类的方法。强制类型转换与instanceof关键字Instance of 就是代表某个对象是某个类的实例的意思 Instanceof表示是什么类型的实例。Dog d=new Dog();d instanceof Dog? True false 举例:各种动物睡觉时间多样性设计animal父类package com.yantai;public class Animal public Animal()public Animal(int age)this.age=age; protected int age; char sex;/0表示male,1表示female /* * 睡觉 */public void sleep()System.out.println(i sleep 8 hours);/* * 吃饭 */public void eat()System.out.println( i can eat);设计dog子类public class Dog extends Animalint age=100;public Dog()super(30);/首先调用父类的无参的构造方法System.out.println();/* * 发出叫声 */public void bark()System.out.println(wangwang);public void sleep()System.out.println(i sleep 6 hours!);public void printParentAge()System.out.println(super.age);public void printParentSleep() super.sleep();public static void main(String args) Dog d=new Dog();d.printParentSleep(); 设计cat子类package com.yantai;public class Cat extends Animalpublic void sleep()System.out.println(i sleep 12 hours!);设计pig子类package com.gs;import com.yantai.Animal;public class Pig extends Animalpublic void sleep()System.out.println(i sleep 16 hours!); 测试多态的类public class Test

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论